Skip to content

Commit

Permalink
Migration: Add migration for v1.37.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mathieudutour committed Jun 29, 2022
1 parent dfe68b2 commit d53462d
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 19 deletions.
7 changes: 7 additions & 0 deletions migrations/1.37.0/command.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# First update them
npm install --save react@18.1.0 react-reconciler@0.28.0 --force
npm install --save-dev @types/react@18.0.9 @types/node@16.10.3 --force
# then remove them from package.json
node -e "var package = require('./package.json'); delete package.dependencies.react; delete package.dependencies['react-reconciler']; delete package.devDependencies['@types/react']; delete package.devDependencies['@types/node'];require('fs').writeFileSync('./package.json', JSON.stringify(package, null, ' '))"
# and update the lock
npm install
61 changes: 44 additions & 17 deletions migrations/bin/migrate.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,10 @@ const migrationsToApply = migrations.filter((x) =>
semver.gt(x, currentVersion.version)
);

const realMigrations = migrationsToApply.filter((x) =>
fs.existsSync(path.join(migrationToolFolder, x, "index.ts"))
const realMigrations = migrationsToApply.filter(
(x) =>
fs.existsSync(path.join(migrationToolFolder, x, "index.ts")) ||
fs.existsSync(path.join(migrationToolFolder, x, "command.sh"))
);

if (migrationsToApply.length === 0) {
Expand Down Expand Up @@ -114,21 +116,46 @@ new Promise((resolve, reject) => {
console.log(`🚀 Applying the migration to ${migration}...`);
console.log("");

return new Promise((resolve, reject) => {
let stream = exec(
`find "${extensionPath}" \\( -name '*.js' -o -name '*.jsx' -o -name '*.ts' -o -name '*.tsx' \\) -not -path "*/node_modules/*" | xargs "${jscodeshift}" --verbose=2 --extensions=tsx,ts,jsx,js --parser=tsx -t ./${migration}/index.ts`,
{ cwd: migrationToolFolder },
(err, stdout, stderr) => {
if (err) {
reject(stderr);
} else {
resolve();
}
}
);

stream.stdout.pipe(process.stdout);
});
return Promise.all([
fs.existsSync(path.join(migrationToolFolder, migration, "index.ts"))
? new Promise((resolve, reject) => {
let stream = exec(
`find "${extensionPath}" \\( -name '*.js' -o -name '*.jsx' -o -name '*.ts' -o -name '*.tsx' \\) -not -path "*/node_modules/*" | xargs "${jscodeshift}" --verbose=2 --extensions=tsx,ts,jsx,js --parser=tsx -t ./${migration}/index.ts`,
{ cwd: migrationToolFolder },
(err, stdout, stderr) => {
if (err) {
reject(stderr);
} else {
resolve();
}
}
);

stream.stdout.pipe(process.stdout);
})
: Promise.resolve(),
fs.existsSync(path.join(migrationToolFolder, migration, "command.sh"))
? new Promise((resolve, reject) => {
let stream = exec(
`bash "${path.join(
migrationToolFolder,
migration,
"command.sh"
)}"`,
{ cwd: extensionPath },
(err, stdout, stderr) => {
if (err) {
reject(stderr);
} else {
resolve();
}
}
);

stream.stdout.pipe(process.stdout);
})
: Promise.resolve(),
]);
});
}, Promise.resolve());
})
Expand Down
4 changes: 2 additions & 2 deletions migrations/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@raycast/migration",
"version": "1.36.0",
"description": "",
"version": "1.37.0",
"description": "Tool to automate the migration to a newer version of the @raycast/api",
"main": "index.js",
"bin": "./bin/migrate.js",
"scripts": {
Expand Down

0 comments on commit d53462d

Please sign in to comment.