fix(nx): fix migration script
This commit is contained in:
parent
11b92d0b9f
commit
f916379007
@ -73,8 +73,8 @@ export class Migrator {
|
|||||||
return Object.keys(migrationsJson.schematics)
|
return Object.keys(migrationsJson.schematics)
|
||||||
.filter(
|
.filter(
|
||||||
r =>
|
r =>
|
||||||
gt(migrationsJson.schematics[r].version, currentVersion) &
|
this.gt(migrationsJson.schematics[r].version, currentVersion) &
|
||||||
lte(migrationsJson.schematics[r].version, target.version)
|
this.lte(migrationsJson.schematics[r].version, target.version)
|
||||||
)
|
)
|
||||||
.map(r => ({
|
.map(r => ({
|
||||||
...migrationsJson.schematics[r],
|
...migrationsJson.schematics[r],
|
||||||
@ -132,7 +132,7 @@ export class Migrator {
|
|||||||
.filter(r => {
|
.filter(r => {
|
||||||
return (
|
return (
|
||||||
!collectedVersions[r] ||
|
!collectedVersions[r] ||
|
||||||
gt(packages[r].version, collectedVersions[r].version)
|
this.gt(packages[r].version, collectedVersions[r].version)
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
.map(u =>
|
.map(u =>
|
||||||
@ -145,7 +145,7 @@ export class Migrator {
|
|||||||
return childCalls.reduce(
|
return childCalls.reduce(
|
||||||
(m, c) => {
|
(m, c) => {
|
||||||
Object.keys(c).forEach(r => {
|
Object.keys(c).forEach(r => {
|
||||||
if (!m[r] || gt(c[r].version, m[r].version)) {
|
if (!m[r] || this.gt(c[r].version, m[r].version)) {
|
||||||
m[r] = c[r];
|
m[r] = c[r];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -189,19 +189,21 @@ export class Migrator {
|
|||||||
].reduce(
|
].reduce(
|
||||||
(m, c) => ({
|
(m, c) => ({
|
||||||
...m,
|
...m,
|
||||||
[c]: { verson: targetVersion, alwaysAddToPackageJson: false }
|
[c]: { version: targetVersion, alwaysAddToPackageJson: false }
|
||||||
}),
|
}),
|
||||||
{}
|
{}
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (!m.packageJsonUpdates) return {};
|
if (!m.packageJsonUpdates || !this.versions(packageName)) return {};
|
||||||
|
|
||||||
return Object.keys(m.packageJsonUpdates)
|
return Object.keys(m.packageJsonUpdates)
|
||||||
.filter(r => {
|
.filter(r => {
|
||||||
return (
|
return (
|
||||||
gt(m.packageJsonUpdates[r].version, this.versions(packageName)) &&
|
this.gt(
|
||||||
lte(m.packageJsonUpdates[r].version, targetVersion)
|
m.packageJsonUpdates[r].version,
|
||||||
|
this.versions(packageName)
|
||||||
|
) && this.lte(m.packageJsonUpdates[r].version, targetVersion)
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
.map(r => m.packageJsonUpdates[r].packages)
|
.map(r => m.packageJsonUpdates[r].packages)
|
||||||
@ -227,6 +229,22 @@ export class Migrator {
|
|||||||
})
|
})
|
||||||
.reduce((m, c) => ({ ...m, ...c }), {});
|
.reduce((m, c) => ({ ...m, ...c }), {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private gt(v1: string, v2: string) {
|
||||||
|
return gt(this.normalizeVersion(v1), this.normalizeVersion(v2));
|
||||||
|
}
|
||||||
|
|
||||||
|
private lte(v1: string, v2: string) {
|
||||||
|
return lte(this.normalizeVersion(v1), this.normalizeVersion(v2));
|
||||||
|
}
|
||||||
|
|
||||||
|
private normalizeVersion(v: string) {
|
||||||
|
if (v.startsWith('8-')) return '8.0.0-beta.1';
|
||||||
|
if (v.startsWith('9-')) return '9.0.0-beta.1';
|
||||||
|
if (v.startsWith('10-')) return '9.0.0-beta.1';
|
||||||
|
if (v.startsWith('11-')) return '9.0.0-beta.1';
|
||||||
|
return v;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type GenerateMigrations = {
|
type GenerateMigrations = {
|
||||||
@ -294,9 +312,12 @@ function parseMigrationsOptions(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function versions(root: string) {
|
function versions(root: string, from: { [p: string]: string }) {
|
||||||
return (packageName: string) => {
|
return (packageName: string) => {
|
||||||
try {
|
try {
|
||||||
|
if (from[packageName]) {
|
||||||
|
return from[packageName];
|
||||||
|
}
|
||||||
const content = readFileSync(
|
const content = readFileSync(
|
||||||
path.join(root, `./node_modules/${packageName}/package.json`)
|
path.join(root, `./node_modules/${packageName}/package.json`)
|
||||||
);
|
);
|
||||||
@ -337,20 +358,29 @@ function createFetcher(logger: logging.Logger) {
|
|||||||
// packageVersion can be a tag, resolvedVersion works with semver
|
// packageVersion can be a tag, resolvedVersion works with semver
|
||||||
const resolvedVersion = json.version;
|
const resolvedVersion = json.version;
|
||||||
|
|
||||||
if (migrationsFile) {
|
try {
|
||||||
const json = JSON.parse(
|
if (migrationsFile && typeof migrationsFile === 'string') {
|
||||||
stripJsonComments(
|
const json = JSON.parse(
|
||||||
readFileSync(
|
stripJsonComments(
|
||||||
path.join(dir, 'node_modules', packageName, migrationsFile)
|
readFileSync(
|
||||||
).toString()
|
path.join(dir, 'node_modules', packageName, migrationsFile)
|
||||||
)
|
).toString()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
cache[`${packageName}-${packageVersion}`] = {
|
||||||
|
version: resolvedVersion,
|
||||||
|
schematics: json.schematics,
|
||||||
|
packageJsonUpdates: json.packageJsonUpdates
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
cache[`${packageName}-${packageVersion}`] = {
|
||||||
|
version: resolvedVersion
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
logger.warn(
|
||||||
|
`Could not find '${migrationsFile}' in '${packageName}'. Skipping it`
|
||||||
);
|
);
|
||||||
cache[`${packageName}-${packageVersion}`] = {
|
|
||||||
version: resolvedVersion,
|
|
||||||
schematics: json.schematics,
|
|
||||||
packageJsonUpdates: json.packageJsonUpdates
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
cache[`${packageName}-${packageVersion}`] = {
|
cache[`${packageName}-${packageVersion}`] = {
|
||||||
version: resolvedVersion
|
version: resolvedVersion
|
||||||
};
|
};
|
||||||
@ -404,7 +434,7 @@ async function generateMigrationsJsonAndUpdatePackageJson(
|
|||||||
logger.info(`Fetching meta data about packages.`);
|
logger.info(`Fetching meta data about packages.`);
|
||||||
logger.info(`It may take a few minutes.`);
|
logger.info(`It may take a few minutes.`);
|
||||||
const migrator = new Migrator({
|
const migrator = new Migrator({
|
||||||
versions: versions(root),
|
versions: versions(root, opts.from),
|
||||||
fetch: createFetcher(logger),
|
fetch: createFetcher(logger),
|
||||||
from: opts.from,
|
from: opts.from,
|
||||||
to: opts.to
|
to: opts.to
|
||||||
|
|||||||
@ -194,54 +194,6 @@
|
|||||||
"880": {
|
"880": {
|
||||||
"version": "8.8.0",
|
"version": "8.8.0",
|
||||||
"packages": {
|
"packages": {
|
||||||
"@nrwl/angular": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/cypress": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/eslint-plugin-nx": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/express": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/jest": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/linter": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/nest": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/next": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/node": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/react": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/tao": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@nrwl/web": {
|
|
||||||
"version": "8.8.0",
|
|
||||||
"alwaysAddToPackageJson": false
|
|
||||||
},
|
|
||||||
"@ngrx/store": {
|
"@ngrx/store": {
|
||||||
"version": "8.5.0",
|
"version": "8.5.0",
|
||||||
"alwaysAddToPackageJson": false
|
"alwaysAddToPackageJson": false
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user