@nrwl/workspace 15.8.6 → 15.9.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
- package/index.d.ts +3 -8
- package/index.js +2 -36
- package/index.js.map +1 -1
- package/package.json +30 -39
- package/src/generators/library/library.js +1 -2
- package/src/generators/library/library.js.map +1 -1
- package/src/generators/move/lib/update-cypress-config.js +8 -2
- package/src/generators/move/lib/update-cypress-config.js.map +1 -1
- package/src/generators/new/files-integrated-repo/package.json__tmpl__ +1 -2
- package/src/generators/new/files-package-based-repo/__dot__vscode/extensions.json__tmpl__ +1 -2
- package/src/generators/new/files-package-based-repo/package.json__tmpl__ +1 -2
- package/src/generators/new/files-root-app/__dot__vscode/extensions.json__tmpl__ +1 -2
- package/src/generators/new/files-root-app/package.json__tmpl__ +1 -2
- package/src/generators/new/generate-preset.js +32 -8
- package/src/generators/new/generate-preset.js.map +1 -1
- package/src/generators/new/generate-workspace-files.d.ts +0 -3
- package/src/generators/new/generate-workspace-files.js +4 -10
- package/src/generators/new/generate-workspace-files.js.map +1 -1
- package/src/generators/new/new.d.ts +2 -1
- package/src/generators/new/new.js +10 -10
- package/src/generators/new/new.js.map +1 -1
- package/src/generators/new/schema.json +1 -1
- package/src/generators/preset/preset.d.ts +1 -1
- package/src/generators/preset/preset.js +18 -15
- package/src/generators/preset/preset.js.map +1 -1
- package/src/generators/preset/schema.json +1 -1
- package/src/generators/remove/lib/check-project-is-safe-to-remove.js +1 -1
- package/src/generators/remove/lib/check-project-is-safe-to-remove.js.map +1 -1
- package/src/migrations/update-14-0-0/change-npm-script-executor.js +1 -1
- package/src/migrations/update-14-0-0/change-npm-script-executor.js.map +1 -1
- package/src/migrations/update-14-8-0/change-run-commands-executor.js +1 -1
- package/src/migrations/update-14-8-0/change-run-commands-executor.js.map +1 -1
- package/src/utilities/buildable-libs-utils.d.ts +17 -6
- package/src/utilities/buildable-libs-utils.js +17 -8
- package/src/utilities/buildable-libs-utils.js.map +1 -1
- package/src/utilities/run-tasks-in-serial.d.ts +6 -0
- package/src/utilities/run-tasks-in-serial.js +6 -0
- package/src/utilities/run-tasks-in-serial.js.map +1 -1
- package/src/utilities/typescript/get-source-nodes.d.ts +3 -0
- package/src/utilities/typescript/get-source-nodes.js +3 -0
- package/src/utilities/typescript/get-source-nodes.js.map +1 -1
- package/src/utilities/version-utils.d.ts +3 -0
- package/src/utilities/version-utils.js +7 -12
- package/src/utilities/version-utils.js.map +1 -1
- package/src/utils/ast-utils.d.ts +0 -118
- package/src/utils/ast-utils.js +3 -543
- package/src/utils/ast-utils.js.map +1 -1
- package/src/utils/cli-config-utils.d.ts +0 -2
- package/src/utils/cli-config-utils.js +1 -47
- package/src/utils/cli-config-utils.js.map +1 -1
- package/src/utils/lint.d.ts +0 -22
- package/src/utils/lint.js +0 -164
- package/src/utils/lint.js.map +1 -1
- package/src/utils/project-type.d.ts +1 -3
- package/src/utils/project-type.js +1 -8
- package/src/utils/project-type.js.map +1 -1
- package/src/utils/strings.d.ts +12 -0
- package/src/utils/strings.js +12 -0
- package/src/utils/strings.js.map +1 -1
- package/src/utils/versions.d.ts +2 -2
- package/src/utils/versions.js +5 -3
- package/src/utils/versions.js.map +1 -1
- package/src/generators/new/files-integrated-repo/__dot__prettierignore +0 -4
- package/src/generators/new/files-package-based-repo/__dot__prettierignore +0 -4
- package/src/generators/new/files-root-app/__dot__prettierignore +0 -4
- package/src/utilities/ast-utils.d.ts +0 -22
- package/src/utilities/ast-utils.js +0 -197
- package/src/utilities/ast-utils.js.map +0 -1
- package/src/utilities/executor-options-utils.d.ts +0 -20
- package/src/utilities/executor-options-utils.js +0 -49
- package/src/utilities/executor-options-utils.js.map +0 -1
- package/src/utilities/generate-globs.d.ts +0 -6
- package/src/utilities/generate-globs.js +0 -81
- package/src/utilities/generate-globs.js.map +0 -1
- package/src/utilities/prettier.d.ts +0 -6
- package/src/utilities/prettier.js +0 -38
- package/src/utilities/prettier.js.map +0 -1
- package/src/utils/rules/move-npm-packages.d.ts +0 -11
- package/src/utils/rules/move-npm-packages.js +0 -76
- package/src/utils/rules/move-npm-packages.js.map +0 -1
- package/src/utils/rules/to-js.d.ts +0 -8
- package/src/utils/rules/to-js.js +0 -82
- package/src/utils/rules/to-js.js.map +0 -1
- package/src/utils/rules/update-karma-conf.d.ts +0 -8
- package/src/utils/rules/update-karma-conf.js +0 -36
- package/src/utils/rules/update-karma-conf.js.map +0 -1
- package/src/utils/update-packages-in-package-json.d.ts +0 -3
- package/src/utils/update-packages-in-package-json.js +0 -56
- package/src/utils/update-packages-in-package-json.js.map +0 -1
- package/src/utils/update-task.d.ts +0 -2
- package/src/utils/update-task.js +0 -83
- package/src/utils/update-task.js.map +0 -1
@@ -1,36 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.updateKarmaConf = void 0;
|
4
|
-
const ast_utils_1 = require("../ast-utils");
|
5
|
-
const devkit_1 = require("@nrwl/devkit");
|
6
|
-
/**
|
7
|
-
* This returns a Rule which changes the default Angular CLI Generated karma.conf.js
|
8
|
-
* @param options Object containing projectROot
|
9
|
-
*/
|
10
|
-
function updateKarmaConf(options) {
|
11
|
-
return (host) => {
|
12
|
-
const project = (0, ast_utils_1.getProjectConfig)(host, options.projectName);
|
13
|
-
const projectRoot = project.root.replace(/\/$/, '');
|
14
|
-
const karmaPath = project.architect.test.options.karmaConfig;
|
15
|
-
(0, ast_utils_1.createOrUpdate)(host, karmaPath, `// Karma configuration file, see link for more information
|
16
|
-
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
17
|
-
|
18
|
-
const { join } = require('path');
|
19
|
-
const getBaseKarmaConfig = require('${(0, devkit_1.offsetFromRoot)(projectRoot)}karma.conf');
|
20
|
-
|
21
|
-
module.exports = function(config) {
|
22
|
-
const baseConfig = getBaseKarmaConfig();
|
23
|
-
config.set({
|
24
|
-
...baseConfig,
|
25
|
-
coverageIstanbulReporter: {
|
26
|
-
...baseConfig.coverageIstanbulReporter,
|
27
|
-
dir: join(__dirname, '${(0, devkit_1.offsetFromRoot)(projectRoot)}coverage/${projectRoot}')
|
28
|
-
}
|
29
|
-
});
|
30
|
-
};
|
31
|
-
`);
|
32
|
-
return host;
|
33
|
-
};
|
34
|
-
}
|
35
|
-
exports.updateKarmaConf = updateKarmaConf;
|
36
|
-
//# sourceMappingURL=update-karma-conf.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"update-karma-conf.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/utils/rules/update-karma-conf.ts"],"names":[],"mappings":";;;AACA,4CAAgE;AAChE,yCAA8C;AAE9C;;;GAGG;AACH,SAAgB,eAAe,CAAC,OAAgC;IAC9D,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG,IAAA,4BAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE7D,IAAA,0BAAc,EACZ,IAAI,EACJ,SAAS,EACT;;;;sCAIgC,IAAA,uBAAc,EAAC,WAAW,CAAC;;;;;;;;8BAQnC,IAAA,uBAAc,EACpC,WAAW,CACZ,YAAY,WAAW;;;;CAI7B,CACI,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AA/BD,0CA+BC"}
|
@@ -1,56 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.updatePackagesInPackageJson = void 0;
|
4
|
-
const schematics_1 = require("@angular-devkit/schematics");
|
5
|
-
const ast_utils_1 = require("./ast-utils");
|
6
|
-
const fs_1 = require("fs");
|
7
|
-
const version_utils_1 = require("./version-utils");
|
8
|
-
const semver_1 = require("semver");
|
9
|
-
const add_install_task_1 = require("./rules/add-install-task");
|
10
|
-
function updatePackagesInPackageJson(migrationFilePath, versionName, options = { skipInstall: false }) {
|
11
|
-
const migrations = JSON.parse((0, fs_1.readFileSync)(migrationFilePath).toString());
|
12
|
-
const packageJsonUpdates = migrations.packageJsonUpdates[versionName];
|
13
|
-
// should never happen
|
14
|
-
if (!packageJsonUpdates) {
|
15
|
-
throw new Error(`Cannot find ${versionName} in migrations.json`);
|
16
|
-
}
|
17
|
-
const updatedPackages = packageJsonUpdates.packages;
|
18
|
-
let needsInstall = false;
|
19
|
-
return (0, schematics_1.chain)([
|
20
|
-
(0, ast_utils_1.updateJsonInTree)('package.json', (json) => {
|
21
|
-
Object.keys(updatedPackages).forEach((p) => {
|
22
|
-
/**
|
23
|
-
* Check the updated version against semver
|
24
|
-
*/
|
25
|
-
const cleanUpdatedVersion = (0, version_utils_1.checkAndCleanWithSemver)(p, updatedPackages[p].version);
|
26
|
-
if (json.devDependencies && json.devDependencies[p]) {
|
27
|
-
const cleanDevVersion = (0, version_utils_1.checkAndCleanWithSemver)(p, json.devDependencies[p]);
|
28
|
-
if ((0, semver_1.lt)(cleanDevVersion, cleanUpdatedVersion)) {
|
29
|
-
json.devDependencies[p] = updatedPackages[p].version;
|
30
|
-
needsInstall = true;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
else if (json.dependencies && json.dependencies[p]) {
|
34
|
-
const cleanVersion = (0, version_utils_1.checkAndCleanWithSemver)(p, json.dependencies[p]);
|
35
|
-
if ((0, semver_1.lt)(cleanVersion, cleanUpdatedVersion)) {
|
36
|
-
json.dependencies[p] = updatedPackages[p].version;
|
37
|
-
needsInstall = true;
|
38
|
-
}
|
39
|
-
}
|
40
|
-
else if (updatedPackages[p].alwaysAddToPackageJson) {
|
41
|
-
const cleanVersion = (0, version_utils_1.checkAndCleanWithSemver)(p, json.dependencies[p]);
|
42
|
-
if ((0, semver_1.lt)(cleanVersion, cleanUpdatedVersion)) {
|
43
|
-
if (!json.dependencies)
|
44
|
-
json.dependencies = {};
|
45
|
-
json.dependencies[p] = updatedPackages[p].version;
|
46
|
-
needsInstall = true;
|
47
|
-
}
|
48
|
-
}
|
49
|
-
});
|
50
|
-
return json;
|
51
|
-
}),
|
52
|
-
needsInstall ? (0, add_install_task_1.addInstallTask)(options) : (0, schematics_1.noop)(),
|
53
|
-
]);
|
54
|
-
}
|
55
|
-
exports.updatePackagesInPackageJson = updatePackagesInPackageJson;
|
56
|
-
//# sourceMappingURL=update-packages-in-package-json.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"update-packages-in-package-json.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/utils/update-packages-in-package-json.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AACzD,2CAA+C;AAC/C,2BAAkC;AAClC,mDAA0D;AAC1D,mCAA4B;AAC5B,+DAA0D;AAE1D,SAAgB,2BAA2B,CACzC,iBAAyB,EACzB,WAAmB,EACnB,UAAoC,EAAE,WAAW,EAAE,KAAK,EAAE;IAE1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEtE,sBAAsB;IACtB,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,eAAe,WAAW,qBAAqB,CAAC,CAAC;KAClE;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IACpD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,OAAO,IAAA,kBAAK,EAAC;QACX,IAAA,4BAAgB,EAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzC;;mBAEG;gBACH,MAAM,mBAAmB,GAAG,IAAA,uCAAuB,EACjD,CAAC,EACD,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAC3B,CAAC;gBAEF,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;oBACnD,MAAM,eAAe,GAAG,IAAA,uCAAuB,EAC7C,CAAC,EACD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CACxB,CAAC;oBAEF,IAAI,IAAA,WAAE,EAAC,eAAe,EAAE,mBAAmB,CAAC,EAAE;wBAC5C,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBACrD,YAAY,GAAG,IAAI,CAAC;qBACrB;iBACF;qBAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;oBACpD,MAAM,YAAY,GAAG,IAAA,uCAAuB,EAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEtE,IAAI,IAAA,WAAE,EAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE;wBACzC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAClD,YAAY,GAAG,IAAI,CAAC;qBACrB;iBACF;qBAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE;oBACpD,MAAM,YAAY,GAAG,IAAA,uCAAuB,EAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEtE,IAAI,IAAA,WAAE,EAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE;wBACzC,IAAI,CAAC,IAAI,CAAC,YAAY;4BAAE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBAC/C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAClD,YAAY,GAAG,IAAI,CAAC;qBACrB;iBACF;YACH,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,YAAY,CAAC,CAAC,CAAC,IAAA,iCAAc,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAI,GAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAzDD,kEAyDC"}
|
package/src/utils/update-task.js
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.addUpdateTask = void 0;
|
4
|
-
const Observable_1 = require("rxjs/internal/Observable");
|
5
|
-
const child_process_1 = require("child_process");
|
6
|
-
const path_1 = require("path");
|
7
|
-
const ast_utils_1 = require("./ast-utils");
|
8
|
-
let taskRegistered = false;
|
9
|
-
function addUpdateTask(pkg, to, dependencies = []) {
|
10
|
-
return (host, context) => {
|
11
|
-
// Workflow should always be there during ng update but not during tests.
|
12
|
-
if (!context.engine.workflow) {
|
13
|
-
return;
|
14
|
-
}
|
15
|
-
const packageJson = (0, ast_utils_1.readJsonInTree)(host, 'package.json');
|
16
|
-
if (!packageJson.dependencies[pkg] && !packageJson.devDependencies[pkg]) {
|
17
|
-
return;
|
18
|
-
}
|
19
|
-
if (!taskRegistered) {
|
20
|
-
const engineHost = context.engine.workflow._engineHost;
|
21
|
-
engineHost.registerTaskExecutor(createRunUpdateTask());
|
22
|
-
taskRegistered = true;
|
23
|
-
}
|
24
|
-
context.engine._taskSchedulers.forEach((scheduler) => {
|
25
|
-
if (scheduler._queue.peek() &&
|
26
|
-
scheduler._queue.peek().configuration.name === 'RunUpdate' &&
|
27
|
-
scheduler._queue.peek().configuration.options.package === pkg) {
|
28
|
-
scheduler._queue.pop();
|
29
|
-
}
|
30
|
-
});
|
31
|
-
context.addTask(new RunUpdateTask(pkg, to), dependencies);
|
32
|
-
};
|
33
|
-
}
|
34
|
-
exports.addUpdateTask = addUpdateTask;
|
35
|
-
class RunUpdateTask {
|
36
|
-
constructor(_pkg, _to) {
|
37
|
-
this._pkg = _pkg;
|
38
|
-
this._to = _to;
|
39
|
-
}
|
40
|
-
toConfiguration() {
|
41
|
-
return {
|
42
|
-
name: 'RunUpdate',
|
43
|
-
options: {
|
44
|
-
package: this._pkg,
|
45
|
-
to: this._to,
|
46
|
-
},
|
47
|
-
};
|
48
|
-
}
|
49
|
-
}
|
50
|
-
function createRunUpdateTask() {
|
51
|
-
return {
|
52
|
-
name: 'RunUpdate',
|
53
|
-
create: () => {
|
54
|
-
return Promise.resolve((options, context) => {
|
55
|
-
context.logger.info(`Updating ${options.package} to ${options.to}`);
|
56
|
-
const forkOptions = {
|
57
|
-
stdio: [process.stdin, process.stdout, process.stderr, 'ipc'],
|
58
|
-
shell: true,
|
59
|
-
};
|
60
|
-
const ng = (0, path_1.join)('./node_modules', '@angular/cli', 'bin/ng');
|
61
|
-
const args = [
|
62
|
-
'update',
|
63
|
-
`${options.package}@${options.to}`,
|
64
|
-
'--force',
|
65
|
-
'--allow-dirty',
|
66
|
-
].filter((e) => !!e);
|
67
|
-
return new Observable_1.Observable((obs) => {
|
68
|
-
(0, child_process_1.fork)(ng, args, forkOptions).on('close', (code) => {
|
69
|
-
if (code === 0) {
|
70
|
-
obs.next();
|
71
|
-
obs.complete();
|
72
|
-
}
|
73
|
-
else {
|
74
|
-
const message = `${options.package} migration failed, see above.`;
|
75
|
-
obs.error(new Error(message));
|
76
|
-
}
|
77
|
-
});
|
78
|
-
});
|
79
|
-
});
|
80
|
-
},
|
81
|
-
};
|
82
|
-
}
|
83
|
-
//# sourceMappingURL=update-task.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"update-task.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/utils/update-task.ts"],"names":[],"mappings":"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"}
|