@nrwl/workspace 14.8.8 → 14.9.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +1 -1
- package/LICENSE +22 -22
- package/README.md +5 -26
- package/executors.json +4 -2
- package/generators.json +7 -52
- package/index.d.ts +4 -10
- package/index.js +4 -42
- package/index.js.map +1 -1
- package/migrations.json +20 -1
- package/package.json +33 -44
- package/presets/core.json +4 -9
- package/presets/npm.json +4 -12
- package/src/executors/counter/schema.json +1 -0
- package/src/executors/run-commands/schema.json +9 -1
- package/src/executors/run-script/schema.json +1 -0
- package/src/generators/ci-workflow/ci-workflow.d.ts +1 -1
- package/src/generators/ci-workflow/ci-workflow.js +13 -0
- package/src/generators/ci-workflow/ci-workflow.js.map +1 -1
- package/src/generators/ci-workflow/files/azure/azure-pipelines.yml__tmpl__ +0 -2
- package/src/generators/ci-workflow/files/bitbucket-pipelines/bitbucket-pipelines.yml__tmpl__ +36 -0
- package/src/generators/ci-workflow/files/circleci/.circleci/config.yml__tmpl__ +1 -4
- package/src/generators/ci-workflow/files/github/.github/workflows/__workflowFileName__.yml__tmpl__ +3 -3
- package/src/generators/ci-workflow/files/gitlab/.gitlab-ci.yml__tmpl__ +47 -0
- package/src/generators/ci-workflow/schema.json +5 -3
- package/src/generators/convert-to-nx-project/convert-to-nx-project.d.ts +1 -2
- package/src/generators/convert-to-nx-project/convert-to-nx-project.js +62 -38
- package/src/generators/convert-to-nx-project/convert-to-nx-project.js.map +1 -1
- package/src/generators/convert-to-nx-project/schema.d.ts +2 -0
- package/src/generators/convert-to-nx-project/schema.json +11 -6
- package/src/generators/library/files/lib/__dot__babelrc__tmpl__ +1 -1
- package/src/generators/library/files/lib/tsconfig.lib.json +2 -2
- package/src/generators/library/library.d.ts +2 -1
- package/src/generators/library/library.js +44 -33
- package/src/generators/library/library.js.map +1 -1
- package/src/generators/library/schema.d.ts +1 -1
- package/src/generators/library/schema.json +9 -4
- package/src/generators/move/lib/create-project-configuration-in-new-destination.d.ts +3 -0
- package/src/generators/move/lib/{move-project-configuration.js → create-project-configuration-in-new-destination.js} +6 -9
- package/src/generators/move/lib/create-project-configuration-in-new-destination.js.map +1 -0
- package/src/generators/move/lib/{move-project.d.ts → move-project-files.d.ts} +1 -1
- package/src/generators/move/lib/{move-project.js → move-project-files.js} +4 -4
- package/src/generators/move/lib/move-project-files.js.map +1 -0
- 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/move/lib/update-default-project.js +4 -5
- package/src/generators/move/lib/update-default-project.js.map +1 -1
- package/src/generators/move/lib/update-implicit-dependencies.d.ts +0 -2
- package/src/generators/move/lib/update-implicit-dependencies.js +0 -2
- package/src/generators/move/lib/update-implicit-dependencies.js.map +1 -1
- package/src/generators/move/lib/update-imports.js +28 -18
- package/src/generators/move/lib/update-imports.js.map +1 -1
- package/src/generators/move/move.js +5 -4
- package/src/generators/move/move.js.map +1 -1
- package/src/generators/move/schema.json +2 -1
- package/src/generators/{workspace/files → new/files-integrated-repo}/__dot__gitignore +2 -2
- package/src/generators/{workspace/files → new/files-integrated-repo}/__dot__vscode/extensions.json__tmpl__ +1 -1
- package/src/generators/new/files-integrated-repo/package.json__tmpl__ +14 -0
- package/src/generators/new/files-package-based-repo/__dot__gitignore +39 -0
- package/src/generators/new/files-package-based-repo/__dot__vscode/extensions.json__tmpl__ +8 -0
- package/src/generators/new/files-package-based-repo/package.json__tmpl__ +13 -0
- package/src/generators/new/files-readme/README.md.template +21 -0
- package/src/generators/new/files-root-app/__dot__gitignore +39 -0
- package/src/generators/new/files-root-app/__dot__vscode/extensions.json__tmpl__ +6 -0
- package/src/generators/new/files-root-app/package.json__tmpl__ +14 -0
- package/src/generators/new/generate-preset.d.ts +4 -0
- package/src/generators/new/generate-preset.js +131 -0
- package/src/generators/new/generate-preset.js.map +1 -0
- package/src/generators/new/generate-workspace-files.d.ts +3 -0
- package/src/generators/{workspace/workspace.js → new/generate-workspace-files.js} +81 -72
- package/src/generators/new/generate-workspace-files.js.map +1 -0
- package/src/generators/new/new.d.ts +11 -6
- package/src/generators/new/new.js +41 -212
- package/src/generators/new/new.js.map +1 -1
- package/src/generators/new/schema.json +16 -7
- package/src/generators/npm-package/npm-package.js +3 -6
- package/src/generators/npm-package/npm-package.js.map +1 -1
- package/src/generators/preset/preset.d.ts +1 -2
- package/src/generators/preset/preset.js +57 -255
- package/src/generators/preset/preset.js.map +1 -1
- package/src/generators/preset/schema.d.ts +5 -1
- package/src/generators/preset/schema.json +34 -7
- package/src/generators/remove/lib/check-project-is-safe-to-remove.d.ts +3 -0
- package/src/generators/remove/lib/check-project-is-safe-to-remove.js +26 -0
- package/src/generators/remove/lib/check-project-is-safe-to-remove.js.map +1 -0
- package/src/generators/remove/lib/check-targets.d.ts +1 -1
- package/src/generators/remove/lib/check-targets.js +33 -29
- package/src/generators/remove/lib/check-targets.js.map +1 -1
- package/src/generators/remove/lib/remove-project-references-in-config.d.ts +3 -0
- package/src/generators/remove/lib/remove-project-references-in-config.js +22 -0
- package/src/generators/remove/lib/remove-project-references-in-config.js.map +1 -0
- package/src/generators/remove/lib/update-jest-config.js +10 -5
- package/src/generators/remove/lib/update-jest-config.js.map +1 -1
- package/src/generators/remove/lib/update-tsconfig.d.ts +2 -2
- package/src/generators/remove/lib/update-tsconfig.js +23 -15
- package/src/generators/remove/lib/update-tsconfig.js.map +1 -1
- package/src/generators/remove/remove.js +6 -4
- package/src/generators/remove/remove.js.map +1 -1
- package/src/generators/remove/schema.json +2 -1
- package/src/generators/run-commands/run-commands.js +3 -1
- package/src/generators/run-commands/run-commands.js.map +1 -1
- package/src/generators/run-commands/schema.json +2 -1
- package/src/generators/utils/insert-import.js +10 -5
- package/src/generators/utils/insert-import.js.map +1 -1
- package/src/generators/utils/insert-statement.js +8 -3
- package/src/generators/utils/insert-statement.js.map +1 -1
- package/src/generators/utils/presets.d.ts +6 -5
- package/src/generators/utils/presets.js +5 -4
- package/src/generators/utils/presets.js.map +1 -1
- package/src/generators/workspace-generator/schema.json +3 -2
- package/src/migrations/update-12-5-0/add-target-dependencies.js +2 -2
- package/src/migrations/update-12-5-0/add-target-dependencies.js.map +1 -1
- package/src/migrations/update-13-0-0/config-locations/config-locations.d.ts +1 -1
- package/src/migrations/update-13-0-0/config-locations/config-locations.js +19 -9
- package/src/migrations/update-13-0-0/config-locations/config-locations.js.map +1 -1
- package/src/migrations/update-13-0-0/set-default-base-if-not-set.js +2 -2
- package/src/migrations/update-13-0-0/set-default-base-if-not-set.js.map +1 -1
- package/src/migrations/update-13-10-0/update-tasks-runner.js +4 -3
- package/src/migrations/update-13-10-0/update-tasks-runner.js.map +1 -1
- package/src/migrations/update-13-2-0/set-parallel-default.js +2 -2
- package/src/migrations/update-13-2-0/set-parallel-default.js.map +1 -1
- package/src/migrations/update-13-6-0/remove-old-task-runner-options.js +3 -3
- package/src/migrations/update-13-6-0/remove-old-task-runner-options.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-0-0/change-nx-json-presets.js +3 -3
- package/src/migrations/update-14-0-0/change-nx-json-presets.js.map +1 -1
- package/src/migrations/update-14-2-0/enable-source-analysis.js +14 -13
- package/src/migrations/update-14-2-0/enable-source-analysis.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/migrations/update-15-7-0/split-configuration-into-project-json-files.d.ts +3 -0
- package/src/migrations/update-15-7-0/split-configuration-into-project-json-files.js +15 -0
- package/src/migrations/update-15-7-0/split-configuration-into-project-json-files.js.map +1 -0
- package/src/utilities/assets.d.ts +2 -2
- package/src/utilities/buildable-libs-utils.d.ts +18 -7
- package/src/utilities/buildable-libs-utils.js +28 -13
- package/src/utilities/buildable-libs-utils.js.map +1 -1
- package/src/utilities/plugins/plugin-capabilities.d.ts +1 -3
- package/src/utilities/plugins/plugin-capabilities.js +2 -75
- package/src/utilities/plugins/plugin-capabilities.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/set-default-collection.js +5 -5
- package/src/utilities/set-default-collection.js.map +1 -1
- package/src/utilities/ts-config.d.ts +5 -0
- package/src/utilities/ts-config.js +40 -0
- package/src/utilities/ts-config.js.map +1 -0
- package/src/utilities/typescript/compilation.d.ts +1 -1
- package/src/utilities/typescript/compilation.js +22 -12
- package/src/utilities/typescript/compilation.js.map +1 -1
- package/src/utilities/typescript/find-nodes.d.ts +5 -2
- package/src/utilities/typescript/find-nodes.js +7 -25
- package/src/utilities/typescript/find-nodes.js.map +1 -1
- package/src/utilities/typescript/get-source-nodes.d.ts +4 -1
- package/src/utilities/typescript/get-source-nodes.js +3 -0
- package/src/utilities/typescript/get-source-nodes.js.map +1 -1
- package/src/utilities/typescript.d.ts +8 -4
- package/src/utilities/typescript.js +21 -38
- package/src/utilities/typescript.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 -123
- package/src/utils/ast-utils.js +5 -546
- package/src/utils/ast-utils.js.map +1 -1
- package/src/utils/cli-config-utils.d.ts +4 -3
- package/src/utils/cli-config-utils.js +4 -45
- package/src/utils/cli-config-utils.js.map +1 -1
- package/src/utils/lint.d.ts +0 -32
- package/src/utils/lint.js +0 -262
- 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/rules/add-install-task.d.ts +1 -1
- package/src/utils/rules/add-install-task.js +2 -2
- package/src/utils/rules/add-install-task.js.map +1 -1
- package/src/utils/rules/deleteFile.d.ts +1 -1
- package/src/utils/rules/format-files.js +0 -19
- package/src/utils/rules/format-files.js.map +1 -1
- package/src/utils/rules/workspace.d.ts +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/testing-utils.d.ts +1 -1
- package/src/utils/testing-utils.js +6 -6
- package/src/utils/testing-utils.js.map +1 -1
- package/src/utils/testing.d.ts +1 -1
- package/src/utils/versions.d.ts +3 -4
- package/src/utils/versions.js +6 -5
- package/src/utils/versions.js.map +1 -1
- package/src/utils/workspace.d.ts +1 -1
- package/src/generators/convert-to-nx-project/utils/get-project-configuration-path.d.ts +0 -2
- package/src/generators/convert-to-nx-project/utils/get-project-configuration-path.js +0 -9
- package/src/generators/convert-to-nx-project/utils/get-project-configuration-path.js.map +0 -1
- package/src/generators/move/lib/move-project-configuration.d.ts +0 -3
- package/src/generators/move/lib/move-project-configuration.js.map +0 -1
- package/src/generators/move/lib/move-project.js.map +0 -1
- package/src/generators/preset/files/pnpm-workspace/pnpm-workspace.yaml +0 -2
- package/src/generators/remove/lib/remove-project-config.d.ts +0 -8
- package/src/generators/remove/lib/remove-project-config.js +0 -32
- package/src/generators/remove/lib/remove-project-config.js.map +0 -1
- package/src/generators/utils/decorate-angular-cli.js__tmpl__ +0 -69
- package/src/generators/workspace/files/README.md__tmpl__ +0 -186
- package/src/generators/workspace/files/__dot__prettierignore +0 -4
- package/src/generators/workspace/files/package.json__tmpl__ +0 -18
- package/src/generators/workspace/schema.d.ts +0 -15
- package/src/generators/workspace/schema.json +0 -77
- package/src/generators/workspace/workspace.d.ts +0 -7
- package/src/generators/workspace/workspace.js.map +0 -1
- package/src/tslint/nxEnforceModuleBoundariesRule.d.ts +0 -14
- package/src/tslint/nxEnforceModuleBoundariesRule.js +0 -177
- package/src/tslint/nxEnforceModuleBoundariesRule.js.map +0 -1
- package/src/utilities/ast-utils.d.ts +0 -22
- package/src/utilities/ast-utils.js +0 -182
- package/src/utilities/ast-utils.js.map +0 -1
- package/src/utilities/create-package-json.d.ts +0 -10
- package/src/utilities/create-package-json.js +0 -87
- package/src/utilities/create-package-json.js.map +0 -1
- package/src/utilities/executor-options-utils.d.ts +0 -13
- package/src/utilities/executor-options-utils.js +0 -36
- 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 -75
- 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/app-root.d.ts +0 -1
- package/src/utils/app-root.js +0 -8
- package/src/utils/app-root.js.map +0 -1
- package/src/utils/graph-utils.d.ts +0 -5
- package/src/utils/graph-utils.js +0 -116
- package/src/utils/graph-utils.js.map +0 -1
- package/src/utils/rules/check-project-exists.d.ts +0 -10
- package/src/utils/rules/check-project-exists.js +0 -24
- package/src/utils/rules/check-project-exists.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/rename-npm-packages.d.ts +0 -10
- package/src/utils/rules/rename-npm-packages.js +0 -81
- package/src/utils/rules/rename-npm-packages.js.map +0 -1
- package/src/utils/rules/rename-package-imports.d.ts +0 -10
- package/src/utils/rules/rename-package-imports.js +0 -58
- package/src/utils/rules/rename-package-imports.js.map +0 -1
- package/src/utils/rules/to-js.d.ts +0 -8
- package/src/utils/rules/to-js.js +0 -77
- 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/runtime-lint-utils.d.ts +0 -80
- package/src/utils/runtime-lint-utils.js +0 -307
- package/src/utils/runtime-lint-utils.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
- /package/src/generators/{workspace/files → library/files/root}/tsconfig.base.json +0 -0
- /package/src/generators/{workspace/files → new/files-integrated-repo}/__dot__editorconfig +0 -0
- /package/src/generators/{workspace/files → new/files-integrated-repo}/tools/generators/.gitkeep +0 -0
- /package/src/generators/{workspace/files → new/files-integrated-repo}/tools/tsconfig.tools.json +0 -0
@@ -1,4 +1,5 @@
|
|
1
1
|
{
|
2
|
+
"version": 2,
|
2
3
|
"title": "Run Commands",
|
3
4
|
"description": "Run any custom commands with Nx.",
|
4
5
|
"type": "object",
|
@@ -137,6 +138,13 @@
|
|
137
138
|
}
|
138
139
|
},
|
139
140
|
"additionalProperties": true,
|
140
|
-
"
|
141
|
+
"oneOf": [
|
142
|
+
{
|
143
|
+
"required": ["commands"]
|
144
|
+
},
|
145
|
+
{
|
146
|
+
"required": ["command"]
|
147
|
+
}
|
148
|
+
],
|
141
149
|
"examplesFile": "../../../docs/run-commands-examples.md"
|
142
150
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Tree } from '@nrwl/devkit';
|
2
2
|
export interface Schema {
|
3
3
|
name?: string;
|
4
|
-
ci: 'github' | 'azure' | 'circleci';
|
4
|
+
ci: 'github' | 'azure' | 'circleci' | 'bitbucket-pipelines' | 'gitlab';
|
5
5
|
}
|
6
6
|
export declare function ciWorkflowGenerator(host: Tree, schema: Schema): Promise<void>;
|
@@ -13,6 +13,9 @@ function ciWorkflowGenerator(host, schema) {
|
|
13
13
|
if (!nxCloudUsed) {
|
14
14
|
throw new Error('This workspace is not connected to Nx Cloud.');
|
15
15
|
}
|
16
|
+
if (ci === 'bitbucket-pipelines' && defaultBranchNeedsOriginPrefix(nxJson)) {
|
17
|
+
(0, devkit_1.writeJson)(host, 'nx.json', appendOriginPrefix(nxJson));
|
18
|
+
}
|
16
19
|
(0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, 'files', ci), '', options);
|
17
20
|
yield (0, devkit_1.formatFiles)(host);
|
18
21
|
});
|
@@ -30,4 +33,14 @@ function normalizeOptions(options) {
|
|
30
33
|
tmpl: '',
|
31
34
|
};
|
32
35
|
}
|
36
|
+
function defaultBranchNeedsOriginPrefix(nxJson) {
|
37
|
+
var _a, _b;
|
38
|
+
return !((_b = (_a = nxJson.affected) === null || _a === void 0 ? void 0 : _a.defaultBase) === null || _b === void 0 ? void 0 : _b.startsWith('origin/'));
|
39
|
+
}
|
40
|
+
function appendOriginPrefix(nxJson) {
|
41
|
+
var _a, _b;
|
42
|
+
return Object.assign(Object.assign({}, nxJson), { affected: Object.assign(Object.assign({}, ((_a = nxJson.affected) !== null && _a !== void 0 ? _a : {})), { defaultBase: ((_b = nxJson.affected) === null || _b === void 0 ? void 0 : _b.defaultBase)
|
43
|
+
? `origin/${nxJson.affected.defaultBase}`
|
44
|
+
: 'origin/main' }) });
|
45
|
+
}
|
33
46
|
//# sourceMappingURL=ci-workflow.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ci-workflow.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/generators/ci-workflow/ci-workflow.ts"],"names":[],"mappings":";;;;AAAA,
|
1
|
+
{"version":3,"file":"ci-workflow.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/generators/ci-workflow/ci-workflow.ts"],"names":[],"mappings":";;;;AAAA,yCAUsB;AACtB,+DAAiE;AAOjE,SAAsB,mBAAmB,CAAC,IAAU,EAAE,MAAc;;QAClE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAwB,IAAA,iBAAQ,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAC/D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,gBAAgB,CACpC,CAAC;QACF,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QAED,IAAI,EAAE,KAAK,qBAAqB,IAAI,8BAA8B,CAAC,MAAM,CAAC,EAAE;YAC1E,IAAA,kBAAS,EAAC,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;SACxD;QAED,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAlBD,kDAkBC;AAWD,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAA,cAAK,EAC9D,OAAO,CAAC,IAAI,IAAI,IAAI,CACrB,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,qBAAqB,EAAE,GACpE,IAAA,iCAAwB,GAAE,CAAC;IAC7B,OAAO;QACL,YAAY;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,UAAU,EAAE,IAAA,gCAAiB,GAAE;QAC/B,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,MAA2B;;IACjE,OAAO,CAAC,CAAA,MAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,WAAW,0CAAE,UAAU,CAAC,SAAS,CAAC,CAAA,CAAC;AAC9D,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA2B;;IACrD,uCACK,MAAM,KACT,QAAQ,kCACH,CAAC,MAAA,MAAM,CAAC,QAAQ,mCAAI,EAAE,CAAC,KAC1B,WAAW,EAAE,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,WAAW;gBACvC,CAAC,CAAC,UAAU,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;gBACzC,CAAC,CAAC,aAAa,OAEnB;AACJ,CAAC"}
|
@@ -45,8 +45,6 @@ jobs:
|
|
45
45
|
displayName: NPM Install Dependencies
|
46
46
|
- script: <%= packageManagerPrefix %> nx-cloud start-ci-run --stop-agents-after="build" --agent-count=3
|
47
47
|
displayName: Start CI run
|
48
|
-
- script: <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx workspace-lint
|
49
|
-
displayName: Run workspace lint
|
50
48
|
- script: <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx format:check --base=$(BASE_SHA) --head=$(HEAD_SHA)
|
51
49
|
displayName: Check format
|
52
50
|
- script: <%= packageManagerPrefix %> nx affected --base=$(BASE_SHA) --head=$(HEAD_SHA) --target=lint --parallel=3
|
@@ -0,0 +1,36 @@
|
|
1
|
+
image: node:16.18
|
2
|
+
|
3
|
+
clone:
|
4
|
+
depth: full
|
5
|
+
|
6
|
+
definitions:
|
7
|
+
steps:
|
8
|
+
- step: &agent
|
9
|
+
name: Agent
|
10
|
+
script:
|
11
|
+
- export NX_BRANCH=$BITBUCKET_PR_ID
|
12
|
+
<% if(packageManagerPrefix == 'pnpm exec'){ %>
|
13
|
+
- npm install --prefix=$HOME/.local -g pnpm@6.32.4
|
14
|
+
<% } %>
|
15
|
+
- <%= packageManagerInstall %>
|
16
|
+
- <%= packageManagerPrefix %> nx-cloud start-agent
|
17
|
+
|
18
|
+
pipelines:
|
19
|
+
pull-requests:
|
20
|
+
'**':
|
21
|
+
- parallel:
|
22
|
+
- step:
|
23
|
+
name: <%= workflowName %>
|
24
|
+
script:
|
25
|
+
- export NX_BRANCH=$BITBUCKET_PR_ID
|
26
|
+
<% if(packageManagerPrefix == 'pnpm exec'){ %>
|
27
|
+
- npm install --prefix=$HOME/.local -g pnpm@6.32.4
|
28
|
+
<% } %>
|
29
|
+
- <%= packageManagerInstall %>
|
30
|
+
- <%= packageManagerPrefix %> nx-cloud start-ci-run --stop-agents-after="build" --agent-count=3
|
31
|
+
- <%= packageManagerPrefix %> nx-cloud record -- yarn nx format:check
|
32
|
+
- <%= packageManagerPrefix %> nx affected --target=lint & <%= packageManagerPrefix %> nx affected --target=test & <%= packageManagerPrefix %> nx affected --target=build
|
33
|
+
- <%= packageManagerPrefix %> nx-cloud stop-all-agents
|
34
|
+
- step: *agent
|
35
|
+
- step: *agent
|
36
|
+
- step: *agent
|
@@ -1,7 +1,7 @@
|
|
1
1
|
version: 2.1
|
2
2
|
|
3
3
|
orbs:
|
4
|
-
nx: nrwl/nx@1.
|
4
|
+
nx: nrwl/nx@1.6.1
|
5
5
|
|
6
6
|
jobs:
|
7
7
|
agent:
|
@@ -42,9 +42,6 @@ jobs:
|
|
42
42
|
- run:
|
43
43
|
name: Initialize the Nx Cloud distributed CI run
|
44
44
|
command: <%= packageManagerPrefix %> nx-cloud start-ci-run --stop-agents-after="build" --agent-count=3
|
45
|
-
- run:
|
46
|
-
name: Run workspace lint
|
47
|
-
command: <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx workspace-lint
|
48
45
|
- run:
|
49
46
|
name: Check format
|
50
47
|
command: <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx format:check --base=$NX_BASE --head=$NX_HEAD
|
package/src/generators/ci-workflow/files/github/.github/workflows/__workflowFileName__.yml__tmpl__
CHANGED
@@ -9,13 +9,13 @@ on:
|
|
9
9
|
jobs:
|
10
10
|
main:
|
11
11
|
name: Nx Cloud - Main Job
|
12
|
-
uses: nrwl/ci/.github/workflows/nx-cloud-main.yml@v0.
|
12
|
+
uses: nrwl/ci/.github/workflows/nx-cloud-main.yml@v0.11.3
|
13
13
|
with:
|
14
|
+
main-branch-name: <%= mainBranch %>
|
14
15
|
number-of-agents: 3
|
15
16
|
init-commands: |
|
16
17
|
<%= packageManagerPrefix %> nx-cloud start-ci-run --stop-agents-after="build" --agent-count=3
|
17
18
|
parallel-commands: |
|
18
|
-
<%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx workspace-lint
|
19
19
|
<%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx format:check
|
20
20
|
parallel-commands-on-agents: |
|
21
21
|
<%= packageManagerPrefix %> nx affected --target=lint --parallel=3
|
@@ -24,6 +24,6 @@ jobs:
|
|
24
24
|
|
25
25
|
agents:
|
26
26
|
name: Nx Cloud - Agents
|
27
|
-
uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.
|
27
|
+
uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.11.3
|
28
28
|
with:
|
29
29
|
number-of-agents: 3
|
@@ -0,0 +1,47 @@
|
|
1
|
+
image: node:18
|
2
|
+
variables:
|
3
|
+
CI: 'true'
|
4
|
+
|
5
|
+
# Creating template for DTE agents
|
6
|
+
.dte-agent:
|
7
|
+
interruptible: true
|
8
|
+
script:
|
9
|
+
<% if(packageManagerPrefix == 'pnpm exec'){ %>
|
10
|
+
- npm install --prefix=$HOME/.local -g pnpm@6.32.4
|
11
|
+
<% } %>
|
12
|
+
- <%= packageManagerInstall %>
|
13
|
+
- <%= packageManagerPrefix %> nx-cloud start-agent
|
14
|
+
|
15
|
+
# Creating template for a job running DTE (orchestrator)
|
16
|
+
.base-pipeline:
|
17
|
+
interruptible: true
|
18
|
+
only:
|
19
|
+
- main
|
20
|
+
- merge_requests
|
21
|
+
before_script:
|
22
|
+
<% if(packageManagerPrefix == 'pnpm exec'){ %>
|
23
|
+
- npm install --prefix=$HOME/.local -g pnpm@6.32.4
|
24
|
+
<% } %>
|
25
|
+
- <%= packageManagerInstall %>
|
26
|
+
- NX_HEAD=$CI_COMMIT_SHA
|
27
|
+
- NX_BASE=${CI_MERGE_REQUEST_DIFF_BASE_SHA:-$CI_COMMIT_BEFORE_SHA}
|
28
|
+
|
29
|
+
# Main job running DTE
|
30
|
+
<%= workflowName %>:
|
31
|
+
stage: affected
|
32
|
+
extends: .base-pipeline
|
33
|
+
script:
|
34
|
+
- <%= packageManagerPrefix %> nx-cloud start-ci-run --stop-agents-after="build"
|
35
|
+
- <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx format:check --base=$NX_BASE --head=$NX_HEAD
|
36
|
+
- <%= packageManagerPrefix %> nx affected --base=$NX_BASE --head=$NX_HEAD --target=lint --parallel=3 & <%= packageManagerPrefix %> nx affected --base=$NX_BASE --head=$NX_HEAD --target=test --parallel=3 --ci --code-coverage & <%= packageManagerPrefix %> nx affected --base=$NX_BASE --head=$NX_HEAD --target=e2e --parallel=3 --ci --code-coverage & <%= packageManagerPrefix %> nx affected --base=$NX_BASE --head=$NX_HEAD --target=build --parallel=3
|
37
|
+
|
38
|
+
# Create as many agents as you want
|
39
|
+
nx-dte-agent1:
|
40
|
+
extends: .dte-agent
|
41
|
+
stage: affected
|
42
|
+
nx-dte-agent2:
|
43
|
+
extends: .dte-agent
|
44
|
+
stage: affected
|
45
|
+
nx-dte-agent3:
|
46
|
+
extends: .dte-agent
|
47
|
+
stage: affected
|
@@ -9,14 +9,16 @@
|
|
9
9
|
"ci": {
|
10
10
|
"type": "string",
|
11
11
|
"description": "CI provider.",
|
12
|
-
"enum": ["github", "circleci", "azure"],
|
12
|
+
"enum": ["github", "circleci", "azure", "bitbucket-pipelines", "gitlab"],
|
13
13
|
"x-prompt": {
|
14
14
|
"message": "What is your target CI provider?",
|
15
15
|
"type": "list",
|
16
16
|
"items": [
|
17
|
-
{ "value": "github", "label": "
|
17
|
+
{ "value": "github", "label": "GitHub Actions" },
|
18
18
|
{ "value": "circleci", "label": "Circle CI" },
|
19
|
-
{ "value": "azure", "label": "Azure DevOps" }
|
19
|
+
{ "value": "azure", "label": "Azure DevOps" },
|
20
|
+
{ "value": "bitbucket-pipelines", "label": "BitBucket Pipelines" },
|
21
|
+
{ "value": "gitlab", "label": "Gitlab" }
|
20
22
|
]
|
21
23
|
}
|
22
24
|
},
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { Tree } from '@nrwl/devkit';
|
2
2
|
import { Schema } from './schema';
|
3
|
-
export declare
|
4
|
-
export declare function validateSchema(schema: Schema): Promise<void>;
|
3
|
+
export declare function validateSchema(schema: Schema, configName: string): Promise<void>;
|
5
4
|
export declare function convertToNxProjectGenerator(host: Tree, schema: Schema): Promise<void>;
|
6
5
|
export default convertToNxProjectGenerator;
|
7
6
|
export declare const convertToNxProjectSchematic: (generatorOptions: Schema) => (tree: any, context: any) => Promise<any>;
|
@@ -1,59 +1,83 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.convertToNxProjectSchematic = exports.convertToNxProjectGenerator = exports.validateSchema =
|
3
|
+
exports.convertToNxProjectSchematic = exports.convertToNxProjectGenerator = exports.validateSchema = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
|
-
const path_1 = require("path");
|
6
|
-
const enquirer_1 = require("enquirer");
|
7
5
|
const devkit_1 = require("@nrwl/devkit");
|
8
|
-
const
|
9
|
-
|
10
|
-
|
6
|
+
const path_1 = require("path");
|
7
|
+
const angular_json_1 = require("nx/src/adapter/angular-json");
|
8
|
+
const output_1 = require("../../utils/output");
|
9
|
+
function validateSchema(schema, configName) {
|
11
10
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
12
11
|
if (schema.project && schema.all) {
|
13
|
-
throw
|
12
|
+
throw new Error('--project and --all are mutually exclusive');
|
13
|
+
}
|
14
|
+
if (schema.project && schema.reformat) {
|
15
|
+
throw new Error('--project and --reformat are mutually exclusive');
|
16
|
+
}
|
17
|
+
if (schema.all && schema.reformat) {
|
18
|
+
throw new Error('--all and --reformat are mutually exclusive');
|
14
19
|
}
|
15
|
-
if (
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
},
|
22
|
-
])).project;
|
20
|
+
if ((configName === 'workspace.json' && schema.project) ||
|
21
|
+
(configName === 'workspace.json' && schema.reformat)) {
|
22
|
+
throw new Error('workspace.json is no longer supported. Please pass --all to convert all projects and remove workspace.json.');
|
23
|
+
}
|
24
|
+
if (!schema.project && !schema.all && !schema.reformat) {
|
25
|
+
schema.all = true;
|
23
26
|
}
|
24
27
|
});
|
25
28
|
}
|
26
29
|
exports.validateSchema = validateSchema;
|
27
30
|
function convertToNxProjectGenerator(host, schema) {
|
28
31
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
29
|
-
const
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
}
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
32
|
+
const configName = host.exists('angular.json')
|
33
|
+
? 'angular.json'
|
34
|
+
: 'workspace.json';
|
35
|
+
if (!host.exists(configName))
|
36
|
+
return;
|
37
|
+
yield validateSchema(schema, configName);
|
38
|
+
const projects = (0, angular_json_1.toNewFormat)((0, devkit_1.readJson)(host, configName)).projects;
|
39
|
+
const leftOverProjects = {};
|
40
|
+
for (const projectName of Object.keys(projects)) {
|
41
|
+
const config = projects[projectName];
|
42
|
+
if ((!schema.project || schema.project === projectName) &&
|
43
|
+
!schema.reformat) {
|
44
|
+
if (typeof config === 'string') {
|
45
|
+
// configuration is in project.json
|
46
|
+
const projectConfig = (0, devkit_1.readJson)(host, (0, path_1.join)(config, 'project.json'));
|
47
|
+
if (projectConfig.name !== projectName) {
|
48
|
+
projectConfig.name = projectName;
|
49
|
+
projectConfig.root = config;
|
50
|
+
(0, devkit_1.updateProjectConfiguration)(host, projectName, projectConfig);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
else {
|
54
|
+
// configuration is an object in workspace.json
|
55
|
+
const path = (0, path_1.join)(config.root, 'project.json');
|
56
|
+
if (!host.exists(path)) {
|
57
|
+
projects[projectName].name = projectName;
|
58
|
+
(0, devkit_1.addProjectConfiguration)(host, path, projects[projectName]);
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
else {
|
63
|
+
leftOverProjects[projectName] = config;
|
46
64
|
}
|
47
|
-
|
48
|
-
|
49
|
-
(0, devkit_1.
|
50
|
-
|
51
|
-
|
52
|
-
|
65
|
+
}
|
66
|
+
if (Object.keys(leftOverProjects).length > 0) {
|
67
|
+
(0, devkit_1.writeJson)(host, 'angular.json', (0, angular_json_1.toOldFormat)({ version: 1, projects: leftOverProjects }));
|
68
|
+
}
|
69
|
+
else {
|
70
|
+
host.delete(configName);
|
53
71
|
}
|
54
72
|
if (!schema.skipFormat) {
|
55
73
|
yield (0, devkit_1.formatFiles)(host);
|
56
74
|
}
|
75
|
+
output_1.output.note({
|
76
|
+
title: 'Use "nx show projects" to read the list of projects.',
|
77
|
+
bodyLines: [
|
78
|
+
`If you read the list of projects from ${configName}, use "nx show projects" instead.`,
|
79
|
+
],
|
80
|
+
});
|
57
81
|
});
|
58
82
|
}
|
59
83
|
exports.convertToNxProjectGenerator = convertToNxProjectGenerator;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"convert-to-nx-project.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.ts"],"names":[],"mappings":";;;;AAAA
|
1
|
+
{"version":3,"file":"convert-to-nx-project.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/generators/convert-to-nx-project/convert-to-nx-project.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
{
|
2
2
|
"$schema": "http://json-schema.org/schema",
|
3
3
|
"$id": "SchematicsConvertToNxProject",
|
4
|
-
"title": "
|
5
|
-
"description": "
|
4
|
+
"title": "@nrwl/workspace:fix-configuration",
|
5
|
+
"description": "Migrates v1 config to v2 standalone configuration.",
|
6
6
|
"type": "object",
|
7
7
|
"cli": "nx",
|
8
8
|
"examples": [
|
@@ -17,17 +17,22 @@
|
|
17
17
|
],
|
18
18
|
"properties": {
|
19
19
|
"project": {
|
20
|
-
"description": "
|
20
|
+
"description": "Convert a single project",
|
21
21
|
"type": "string"
|
22
22
|
},
|
23
23
|
"all": {
|
24
|
-
"description": "
|
24
|
+
"description": "Convert all projects",
|
25
|
+
"type": "boolean"
|
26
|
+
},
|
27
|
+
"reformat": {
|
28
|
+
"description": "Just reformats the configuration",
|
25
29
|
"type": "boolean"
|
26
30
|
},
|
27
31
|
"skipFormat": {
|
28
|
-
"description": "Skip formatting files
|
32
|
+
"description": "Skip formatting files",
|
29
33
|
"type": "boolean",
|
30
|
-
"default": false
|
34
|
+
"default": false,
|
35
|
+
"x-priority": "internal"
|
31
36
|
}
|
32
37
|
}
|
33
38
|
}
|
@@ -5,6 +5,6 @@
|
|
5
5
|
"declaration": true,
|
6
6
|
"types": []
|
7
7
|
},
|
8
|
-
"include": ["
|
9
|
-
"exclude": ["jest.config.ts","
|
8
|
+
"include": ["src/**/*.ts"<% if (js) { %>, "src/**/*.js"<% } %>],
|
9
|
+
"exclude": ["jest.config.ts","src/**/*.spec.ts"<% if (js) { %>, "src/**/*.spec.js"<% } %>]
|
10
10
|
}
|
@@ -1,10 +1,11 @@
|
|
1
|
-
import {
|
1
|
+
import { GeneratorCallback, Tree } from '@nrwl/devkit';
|
2
2
|
import { Schema } from './schema';
|
3
3
|
export interface NormalizedSchema extends Schema {
|
4
4
|
name: string;
|
5
5
|
fileName: string;
|
6
6
|
projectRoot: string;
|
7
7
|
projectDirectory: string;
|
8
|
+
libsDir: string;
|
8
9
|
parsedTags: string[];
|
9
10
|
importPath?: string;
|
10
11
|
}
|
@@ -5,13 +5,8 @@ const tslib_1 = require("tslib");
|
|
5
5
|
const devkit_1 = require("@nrwl/devkit");
|
6
6
|
const path_1 = require("nx/src/utils/path");
|
7
7
|
const path_2 = require("path");
|
8
|
-
const
|
9
|
-
const typescript_1 = require("../../utilities/typescript");
|
8
|
+
const ts_config_1 = require("../../utilities/ts-config");
|
10
9
|
const versions_1 = require("../../utils/versions");
|
11
|
-
// nx-ignore-next-line
|
12
|
-
const { jestProjectGenerator } = require('@nrwl/jest');
|
13
|
-
// nx-ignore-next-line
|
14
|
-
const { lintProjectGenerator, Linter } = require('@nrwl/linter');
|
15
10
|
function addProject(tree, options) {
|
16
11
|
const projectConfiguration = {
|
17
12
|
root: options.projectRoot,
|
@@ -21,34 +16,38 @@ function addProject(tree, options) {
|
|
21
16
|
tags: options.parsedTags,
|
22
17
|
};
|
23
18
|
if (options.buildable) {
|
24
|
-
const { libsDir } = (0, devkit_1.getWorkspaceLayout)(tree);
|
25
19
|
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@nrwl/js': versions_1.nxVersion });
|
26
20
|
projectConfiguration.targets.build = {
|
27
21
|
executor: '@nrwl/js:tsc',
|
28
22
|
outputs: ['{options.outputPath}'],
|
29
23
|
options: {
|
30
|
-
outputPath:
|
24
|
+
outputPath: options.libsDir != '.'
|
25
|
+
? `dist/${options.libsDir}/${options.projectDirectory}`
|
26
|
+
: `dist/${options.projectDirectory}`,
|
31
27
|
main: `${options.projectRoot}/src/index` + (options.js ? '.js' : '.ts'),
|
32
28
|
tsConfig: `${options.projectRoot}/tsconfig.lib.json`,
|
33
29
|
assets: [`${options.projectRoot}/*.md`],
|
34
30
|
},
|
35
31
|
};
|
36
32
|
}
|
37
|
-
(0, devkit_1.addProjectConfiguration)(tree, options.name, projectConfiguration
|
33
|
+
(0, devkit_1.addProjectConfiguration)(tree, options.name, projectConfiguration);
|
38
34
|
}
|
39
35
|
function addLint(tree, options) {
|
40
|
-
return
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
36
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
37
|
+
const { lintProjectGenerator } = (0, devkit_1.ensurePackage)('@nrwl/linter', versions_1.nxVersion);
|
38
|
+
return lintProjectGenerator(tree, {
|
39
|
+
project: options.name,
|
40
|
+
linter: options.linter,
|
41
|
+
skipFormat: true,
|
42
|
+
tsConfigPaths: [
|
43
|
+
(0, devkit_1.joinPathFragments)(options.projectRoot, 'tsconfig.lib.json'),
|
44
|
+
],
|
45
|
+
unitTestRunner: options.unitTestRunner,
|
46
|
+
eslintFilePatterns: [
|
47
|
+
`${options.projectRoot}/**/*.${options.js ? 'js' : 'ts'}`,
|
48
|
+
],
|
49
|
+
setParserOptionsProject: options.setParserOptionsProject,
|
50
|
+
});
|
52
51
|
});
|
53
52
|
}
|
54
53
|
exports.addLint = addLint;
|
@@ -61,7 +60,7 @@ function updateTsConfig(tree, options) {
|
|
61
60
|
});
|
62
61
|
}
|
63
62
|
function updateRootTsConfig(host, options) {
|
64
|
-
(0, devkit_1.updateJson)(host, (0,
|
63
|
+
(0, devkit_1.updateJson)(host, (0, ts_config_1.getRootTsConfigPathInTree)(host), (json) => {
|
65
64
|
const c = json.compilerOptions;
|
66
65
|
c.paths = c.paths || {};
|
67
66
|
delete c.paths[options.name];
|
@@ -79,7 +78,7 @@ function createFiles(tree, options) {
|
|
79
78
|
const rootOffset = (0, devkit_1.offsetFromRoot)(options.projectRoot);
|
80
79
|
(0, devkit_1.generateFiles)(tree, (0, path_2.join)(__dirname, './files/lib'), options.projectRoot, Object.assign(Object.assign({}, options), { dot: '.', className,
|
81
80
|
name,
|
82
|
-
propertyName, js: !!options.js, cliCommand: 'nx', strict: undefined, tmpl: '', offsetFromRoot: rootOffset, rootTsConfigPath: (0,
|
81
|
+
propertyName, js: !!options.js, cliCommand: 'nx', strict: undefined, tmpl: '', offsetFromRoot: rootOffset, rootTsConfigPath: (0, ts_config_1.getRelativePathToRootTsConfig)(tree, options.projectRoot), hasUnitTestRunner: options.unitTestRunner !== 'none', hasLinter: options.linter !== 'none' }));
|
83
82
|
if (options.unitTestRunner === 'none') {
|
84
83
|
tree.delete((0, path_2.join)(options.projectRoot, 'src/lib', `${options.fileName}.spec.ts`));
|
85
84
|
}
|
@@ -96,18 +95,26 @@ function createFiles(tree, options) {
|
|
96
95
|
}
|
97
96
|
function addJest(tree, options) {
|
98
97
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
98
|
+
const { jestProjectGenerator } = (0, devkit_1.ensurePackage)('@nrwl/jest', versions_1.nxVersion);
|
99
99
|
return yield jestProjectGenerator(tree, Object.assign(Object.assign({}, options), { project: options.name, setupFile: 'none', supportTsx: true, babelJest: options.babelJest, skipSerializers: true, testEnvironment: options.testEnvironment, skipFormat: true }));
|
100
100
|
});
|
101
101
|
}
|
102
|
+
function addTypescript(tree, options) {
|
103
|
+
// add tsconfig.base.json
|
104
|
+
if (!options.skipTsConfig && !(0, ts_config_1.getRootTsConfigFileName)()) {
|
105
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, './files/root'), '.', {});
|
106
|
+
}
|
107
|
+
return !options.js
|
108
|
+
? (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { typescript: versions_1.typescriptVersion })
|
109
|
+
: () => { };
|
110
|
+
}
|
102
111
|
function libraryGenerator(tree, schema) {
|
103
112
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
104
113
|
const options = normalizeOptions(tree, schema);
|
114
|
+
const tasks = [];
|
115
|
+
addTypescript(tree, options);
|
105
116
|
createFiles(tree, options);
|
106
|
-
if (!options.skipTsConfig) {
|
107
|
-
updateRootTsConfig(tree, options);
|
108
|
-
}
|
109
117
|
addProject(tree, options);
|
110
|
-
const tasks = [];
|
111
118
|
if (options.linter !== 'none') {
|
112
119
|
const lintCallback = yield addLint(tree, options);
|
113
120
|
tasks.push(lintCallback);
|
@@ -116,10 +123,13 @@ function libraryGenerator(tree, schema) {
|
|
116
123
|
const jestCallback = yield addJest(tree, options);
|
117
124
|
tasks.push(jestCallback);
|
118
125
|
}
|
126
|
+
if (!options.skipTsConfig) {
|
127
|
+
updateRootTsConfig(tree, options);
|
128
|
+
}
|
119
129
|
if (!options.skipFormat) {
|
120
130
|
yield (0, devkit_1.formatFiles)(tree);
|
121
131
|
}
|
122
|
-
return (0,
|
132
|
+
return (0, devkit_1.runTasksInSerial)(...tasks);
|
123
133
|
});
|
124
134
|
}
|
125
135
|
exports.libraryGenerator = libraryGenerator;
|
@@ -127,13 +137,12 @@ exports.default = libraryGenerator;
|
|
127
137
|
exports.librarySchematic = (0, devkit_1.convertNxGenerator)(libraryGenerator);
|
128
138
|
function normalizeOptions(tree, options) {
|
129
139
|
const name = (0, devkit_1.names)(options.name).fileName;
|
130
|
-
const projectDirectory = options.directory
|
131
|
-
? `${(0, devkit_1.names)(options.directory).fileName}/${name}`
|
132
|
-
: name;
|
140
|
+
const { layoutDirectory, projectDirectory } = (0, devkit_1.extractLayoutDirectory)(options.directory ? `${(0, devkit_1.names)(options.directory).fileName}/${name}` : name);
|
133
141
|
if (!options.unitTestRunner) {
|
134
142
|
options.unitTestRunner = 'jest';
|
135
143
|
}
|
136
144
|
if (!options.linter) {
|
145
|
+
const { Linter } = require('@nrwl/linter');
|
137
146
|
options.linter = Linter.EsLint;
|
138
147
|
}
|
139
148
|
const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-');
|
@@ -141,7 +150,8 @@ function normalizeOptions(tree, options) {
|
|
141
150
|
fileName: options.simpleModuleName ? name : projectName,
|
142
151
|
pascalCaseFiles: options.pascalCaseFiles,
|
143
152
|
});
|
144
|
-
const { libsDir, npmScope } = (0, devkit_1.getWorkspaceLayout)(tree);
|
153
|
+
const { libsDir: defaultLibsDir, npmScope } = (0, devkit_1.getWorkspaceLayout)(tree);
|
154
|
+
const libsDir = layoutDirectory !== null && layoutDirectory !== void 0 ? layoutDirectory : defaultLibsDir;
|
145
155
|
const projectRoot = (0, devkit_1.joinPathFragments)(libsDir, projectDirectory);
|
146
156
|
const parsedTags = options.tags
|
147
157
|
? options.tags.split(',').map((s) => s.trim())
|
@@ -150,7 +160,8 @@ function normalizeOptions(tree, options) {
|
|
150
160
|
return Object.assign(Object.assign({}, options), { fileName, name: projectName, projectRoot,
|
151
161
|
projectDirectory,
|
152
162
|
parsedTags,
|
153
|
-
importPath
|
163
|
+
importPath,
|
164
|
+
libsDir });
|
154
165
|
}
|
155
166
|
function getCaseAwareFileName(options) {
|
156
167
|
const normalized = (0, devkit_1.names)(options.fileName);
|