@nx/workspace 16.8.0-beta.4 → 16.8.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +29 -29
- package/src/executors/counter/counter.impl.js +29 -36
- package/src/generators/ci-workflow/ci-workflow.js +22 -21
- package/src/generators/convert-to-monorepo/convert-to-monorepo.js +29 -32
- package/src/generators/convert-to-nx-project/convert-to-nx-project.js +59 -64
- package/src/generators/move/lib/create-project-configuration-in-new-destination.js +6 -5
- package/src/generators/move/lib/extract-base-configs.js +13 -16
- package/src/generators/move/lib/normalize-schema.js +9 -3
- package/src/generators/move/lib/update-eslint-config.js +1 -1
- package/src/generators/move/lib/update-imports.js +4 -5
- package/src/generators/move/move.js +28 -31
- package/src/generators/new/generate-preset.js +4 -8
- package/src/generators/new/generate-workspace-files.js +47 -41
- package/src/generators/new/new.js +24 -30
- package/src/generators/npm-package/npm-package.js +27 -27
- package/src/generators/preset/preset.js +182 -188
- package/src/generators/remove/lib/check-dependencies.js +12 -15
- package/src/generators/remove/lib/check-targets.js +31 -34
- package/src/generators/remove/lib/update-tsconfig.js +16 -19
- package/src/generators/remove/remove.js +12 -15
- package/src/generators/run-commands/run-commands.js +18 -21
- package/src/generators/utils/get-npm-package-version.js +1 -1
- package/src/generators/utils/presets.d.ts +4 -0
- package/src/generators/utils/presets.js +5 -0
- package/src/generators/workspace-generator/workspace-generator.js +3 -6
- package/src/migrations/update-12-5-0/add-target-dependencies.js +26 -28
- package/src/migrations/update-13-0-0/config-locations/config-locations.js +16 -19
- package/src/migrations/update-13-0-0/set-default-base-if-not-set.js +16 -21
- package/src/migrations/update-13-10-0/update-decorate-cli.js +1 -2
- package/src/migrations/update-13-10-0/update-tasks-runner.js +2 -3
- package/src/migrations/update-13-2-0/set-parallel-default.js +14 -18
- package/src/migrations/update-13-3-0/update-tsc-executor-location.js +17 -20
- package/src/migrations/update-13-6-0/remove-old-task-runner-options.js +1 -2
- package/src/migrations/update-13-9-0/replace-tao-with-nx.js +2 -3
- package/src/migrations/update-13-9-0/update-decorate-cli.js +1 -2
- package/src/migrations/update-14-0-0/change-npm-script-executor.js +7 -10
- package/src/migrations/update-14-0-0/change-nx-json-presets.js +13 -13
- package/src/migrations/update-14-2-0/enable-source-analysis.js +14 -18
- package/src/migrations/update-14-8-0/change-run-commands-executor.js +7 -10
- package/src/migrations/update-15-7-0/split-configuration-into-project-json-files.js +3 -6
- package/src/migrations/update-16-0-0/fix-invalid-babelrc.js +2 -3
- package/src/migrations/update-16-0-0/move-workspace-generators-to-local-plugin.js +51 -60
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +3 -6
- package/src/utilities/buildable-libs-utils.js +3 -6
- package/src/utilities/default-base.js +1 -1
- package/src/utilities/get-import-path.js +1 -1
- package/src/utilities/run-tasks-in-serial.js +3 -4
- package/src/utilities/typescript/compilation.js +14 -13
- package/src/utils/rules/format-files.js +9 -7
- package/src/utils/rules/visit-not-ignored-files.js +2 -2
- package/src/utils/testing-utils.js +7 -14
- package/src/utils/workspace.js +26 -37
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
3
|
const devkit_1 = require("@nx/devkit");
|
|
5
4
|
// nx-ignore-next-line
|
|
6
5
|
const path = require("path");
|
|
@@ -9,39 +8,35 @@ const versions_1 = require("../../utils/versions");
|
|
|
9
8
|
const path_1 = require("path");
|
|
10
9
|
const PROJECT_NAME = 'workspace-plugin';
|
|
11
10
|
const DESTINATION = `tools/${PROJECT_NAME}`;
|
|
12
|
-
function default_1(tree) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
async function default_1(tree) {
|
|
12
|
+
if (!tree.exists('tools/generators')) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const tasks = [];
|
|
16
|
+
if (hasWorkspaceGenerators(tree)) {
|
|
17
|
+
tasks.push(...(await moveWorkspaceGeneratorsToLocalPlugin(tree)));
|
|
18
|
+
}
|
|
19
|
+
removeToolsGeneratorsIfEmpty(tree);
|
|
20
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
21
|
+
return () => {
|
|
22
|
+
for (const task of tasks) {
|
|
23
|
+
task();
|
|
20
24
|
}
|
|
21
|
-
|
|
22
|
-
yield (0, devkit_1.formatFiles)(tree);
|
|
23
|
-
return () => {
|
|
24
|
-
for (const task of tasks) {
|
|
25
|
-
task();
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
});
|
|
25
|
+
};
|
|
29
26
|
}
|
|
30
27
|
exports.default = default_1;
|
|
31
|
-
function moveWorkspaceGeneratorsToLocalPlugin(tree) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return tasks;
|
|
44
|
-
});
|
|
28
|
+
async function moveWorkspaceGeneratorsToLocalPlugin(tree) {
|
|
29
|
+
const tasks = [];
|
|
30
|
+
let project = (0, devkit_1.getProjects)(tree).get(PROJECT_NAME);
|
|
31
|
+
if (!project) {
|
|
32
|
+
await createNewPlugin(tree);
|
|
33
|
+
tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
|
|
34
|
+
'@nx/plugin': versions_1.nxVersion,
|
|
35
|
+
}));
|
|
36
|
+
project = (0, devkit_1.readProjectConfiguration)(tree, PROJECT_NAME);
|
|
37
|
+
}
|
|
38
|
+
await updateExistingPlugin(tree, project);
|
|
39
|
+
return tasks;
|
|
45
40
|
}
|
|
46
41
|
function hasWorkspaceGenerators(tree) {
|
|
47
42
|
const children = tree.children('tools/generators');
|
|
@@ -55,7 +50,6 @@ function removeToolsGeneratorsIfEmpty(tree) {
|
|
|
55
50
|
}
|
|
56
51
|
// Inspired by packages/nx/src/command-line/workspace-generators.ts
|
|
57
52
|
function collectAndMoveGenerators(tree, destinationProjectRoot) {
|
|
58
|
-
var _a;
|
|
59
53
|
const generators = {};
|
|
60
54
|
const generatorsDir = 'tools/generators';
|
|
61
55
|
const destinationDir = (0, devkit_1.joinPathFragments)(destinationProjectRoot, 'src', 'generators');
|
|
@@ -67,7 +61,7 @@ function collectAndMoveGenerators(tree, destinationProjectRoot) {
|
|
|
67
61
|
generators[c] = {
|
|
68
62
|
implementation: `./src/generators/${c}`,
|
|
69
63
|
schema: `./src/generators/${(0, devkit_1.joinPathFragments)(c, 'schema.json')}`,
|
|
70
|
-
description:
|
|
64
|
+
description: schema.description ?? `Generator ${c}`,
|
|
71
65
|
};
|
|
72
66
|
moveFilesInDirectory(tree, childDir, (0, devkit_1.joinPathFragments)(destinationDir, c));
|
|
73
67
|
}
|
|
@@ -113,32 +107,30 @@ function moveFilesInDirectory(tree, source, destination) {
|
|
|
113
107
|
tree.rename((0, devkit_1.joinPathFragments)(source, c), (0, devkit_1.joinPathFragments)(destination, c));
|
|
114
108
|
}
|
|
115
109
|
}
|
|
116
|
-
function createNewPlugin(tree) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
publishable: false,
|
|
138
|
-
});
|
|
139
|
-
getCreateGeneratorsJson()(tree, (0, devkit_1.readProjectConfiguration)(tree, PROJECT_NAME).root, PROJECT_NAME);
|
|
140
|
-
yield moveGeneratedPlugin(tree, DESTINATION, importPath);
|
|
110
|
+
async function createNewPlugin(tree) {
|
|
111
|
+
(0, devkit_1.ensurePackage)('@nx/plugin', versions_1.nxVersion);
|
|
112
|
+
const { pluginGenerator } =
|
|
113
|
+
// nx-ignore-next-line
|
|
114
|
+
require('@nx/plugin/src/generators/plugin/plugin');
|
|
115
|
+
// nx-ignore-next-line
|
|
116
|
+
const { Linter } = (0, devkit_1.ensurePackage)('@nx/linter', versions_1.nxVersion);
|
|
117
|
+
const { npmScope } = (0, devkit_1.getWorkspaceLayout)(tree);
|
|
118
|
+
const importPath = npmScope ? `@${npmScope}/${PROJECT_NAME}` : PROJECT_NAME;
|
|
119
|
+
await pluginGenerator(tree, {
|
|
120
|
+
minimal: true,
|
|
121
|
+
name: PROJECT_NAME,
|
|
122
|
+
importPath: importPath,
|
|
123
|
+
skipTsConfig: false,
|
|
124
|
+
compiler: 'tsc',
|
|
125
|
+
linter: Linter.EsLint,
|
|
126
|
+
skipFormat: true,
|
|
127
|
+
skipLintChecks: false,
|
|
128
|
+
unitTestRunner: 'jest',
|
|
129
|
+
e2eTestRunner: 'none',
|
|
130
|
+
publishable: false,
|
|
141
131
|
});
|
|
132
|
+
getCreateGeneratorsJson()(tree, (0, devkit_1.readProjectConfiguration)(tree, PROJECT_NAME).root, PROJECT_NAME);
|
|
133
|
+
await moveGeneratedPlugin(tree, DESTINATION, importPath);
|
|
142
134
|
}
|
|
143
135
|
function moveGeneratedPlugin(tree, destination, importPath) {
|
|
144
136
|
const config = (0, devkit_1.readProjectConfiguration)(tree, PROJECT_NAME);
|
|
@@ -166,9 +158,8 @@ function updateExistingPlugin(tree, project) {
|
|
|
166
158
|
generatorsJsonPath = defaultGeneratorsPath;
|
|
167
159
|
}
|
|
168
160
|
(0, devkit_1.updateJson)(tree, generatorsJsonPath, (json) => {
|
|
169
|
-
var _a;
|
|
170
161
|
const generators = collectAndMoveGenerators(tree, project.root);
|
|
171
|
-
|
|
162
|
+
json.generators ??= {};
|
|
172
163
|
for (const generator in generators) {
|
|
173
164
|
if (json.generators[generator]) {
|
|
174
165
|
devkit_1.output.warn({
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
3
|
const devkit_1 = require("@nx/devkit");
|
|
5
4
|
const replace_package_1 = require("@nx/devkit/src/utils/replace-package");
|
|
6
|
-
function replacePackage(tree) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
yield (0, devkit_1.formatFiles)(tree);
|
|
10
|
-
});
|
|
5
|
+
async function replacePackage(tree) {
|
|
6
|
+
await (0, replace_package_1.replaceNrwlPackageWithNxPackage)(tree, '@nrwl/workspace', '@nx/workspace');
|
|
7
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
11
8
|
}
|
|
12
9
|
exports.default = replacePackage;
|
|
@@ -121,7 +121,6 @@ function computeCompilerOptionsPaths(tsConfig, dependencies) {
|
|
|
121
121
|
return paths;
|
|
122
122
|
}
|
|
123
123
|
function readPaths(tsConfig) {
|
|
124
|
-
var _a;
|
|
125
124
|
if (!tsModule) {
|
|
126
125
|
tsModule = (0, typescript_1.ensureTypescript)();
|
|
127
126
|
}
|
|
@@ -134,7 +133,7 @@ function readPaths(tsConfig) {
|
|
|
134
133
|
else {
|
|
135
134
|
config = tsConfig;
|
|
136
135
|
}
|
|
137
|
-
if (
|
|
136
|
+
if (config.options?.paths) {
|
|
138
137
|
return config.options.paths;
|
|
139
138
|
}
|
|
140
139
|
else {
|
|
@@ -209,7 +208,6 @@ function updatePaths(dependencies, paths) {
|
|
|
209
208
|
const pathsKeys = Object.keys(paths);
|
|
210
209
|
// For each registered dependency
|
|
211
210
|
dependencies.forEach((dep) => {
|
|
212
|
-
var _a;
|
|
213
211
|
// If there are outputs
|
|
214
212
|
if (dep.outputs && dep.outputs.length > 0) {
|
|
215
213
|
// Directly map the dependency name to the output paths (dist/packages/..., etc.)
|
|
@@ -224,7 +222,7 @@ function updatePaths(dependencies, paths) {
|
|
|
224
222
|
// Bind secondary endpoints for ng-packagr projects
|
|
225
223
|
let mappedPaths = dep.outputs.map((output) => `${output}/${nestedPart}`);
|
|
226
224
|
// Get the dependency's package name
|
|
227
|
-
const { root } = (
|
|
225
|
+
const { root } = (dep.node?.data || {});
|
|
228
226
|
if (root) {
|
|
229
227
|
// Update nested mappings to point to the dependency's output paths
|
|
230
228
|
mappedPaths = mappedPaths.concat(paths[path].flatMap((path) => dep.outputs.map((output) => path.replace(root, output))));
|
|
@@ -265,7 +263,6 @@ function updateBuildableProjectPackageJsonDependencies(root, projectName, target
|
|
|
265
263
|
packageJson.peerDependencies = packageJson.peerDependencies || {};
|
|
266
264
|
let updatePackageJson = false;
|
|
267
265
|
dependencies.forEach((entry) => {
|
|
268
|
-
var _a;
|
|
269
266
|
const packageName = (0, operators_1.isNpmProject)(entry.node)
|
|
270
267
|
? entry.node.data.packageName
|
|
271
268
|
: entry.name;
|
|
@@ -289,7 +286,7 @@ function updateBuildableProjectPackageJsonDependencies(root, projectName, target
|
|
|
289
286
|
}
|
|
290
287
|
else if ((0, operators_1.isNpmProject)(entry.node)) {
|
|
291
288
|
// If an npm dep is part of the workspace devDependencies, do not include it the library
|
|
292
|
-
if (!!
|
|
289
|
+
if (!!workspacePackageJson.devDependencies?.[entry.node.data.packageName]) {
|
|
293
290
|
return;
|
|
294
291
|
}
|
|
295
292
|
depVersion = entry.node.data.version;
|
|
@@ -19,7 +19,7 @@ function getNpmScope(tree) {
|
|
|
19
19
|
const { name } = tree.exists('package.json')
|
|
20
20
|
? (0, json_1.readJson)(tree, 'package.json')
|
|
21
21
|
: { name: null };
|
|
22
|
-
if (name
|
|
22
|
+
if (name?.startsWith('@')) {
|
|
23
23
|
return name.split('/')[0].substring(1);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runTasksInSerial = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
/**
|
|
6
5
|
* Run tasks in serial
|
|
7
6
|
*
|
|
@@ -9,10 +8,10 @@ const tslib_1 = require("tslib");
|
|
|
9
8
|
* @param tasks The tasks to run in serial.
|
|
10
9
|
*/
|
|
11
10
|
function runTasksInSerial(...tasks) {
|
|
12
|
-
return () =>
|
|
11
|
+
return async () => {
|
|
13
12
|
for (const task of tasks) {
|
|
14
|
-
|
|
13
|
+
await task();
|
|
15
14
|
}
|
|
16
|
-
}
|
|
15
|
+
};
|
|
17
16
|
}
|
|
18
17
|
exports.runTasksInSerial = runTasksInSerial;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.compileTypeScriptWatcher = exports.compileTypeScript = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
6
5
|
const fs_1 = require("fs");
|
|
7
6
|
const ts_config_1 = require("../ts-config");
|
|
@@ -30,8 +29,7 @@ function compileTypeScriptWatcher(options, callback) {
|
|
|
30
29
|
host.afterProgramCreate = (builderProgram) => {
|
|
31
30
|
const originalProgramEmit = builderProgram.emit;
|
|
32
31
|
builderProgram.emit = (targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, customTransformers) => {
|
|
33
|
-
|
|
34
|
-
const consumerCustomTransformers = (_a = options.getCustomTransformers) === null || _a === void 0 ? void 0 : _a.call(options, builderProgram.getProgram());
|
|
32
|
+
const consumerCustomTransformers = options.getCustomTransformers?.(builderProgram.getProgram());
|
|
35
33
|
const mergedCustomTransformers = mergeCustomTransformers(customTransformers, consumerCustomTransformers);
|
|
36
34
|
return originalProgramEmit(targetSourceFile, writeFile, cancellationToken, emitOnlyDtsFiles, mergedCustomTransformers);
|
|
37
35
|
};
|
|
@@ -39,10 +37,10 @@ function compileTypeScriptWatcher(options, callback) {
|
|
|
39
37
|
originalAfterProgramCreate(builderProgram);
|
|
40
38
|
};
|
|
41
39
|
const originalOnWatchStatusChange = host.onWatchStatusChange;
|
|
42
|
-
host.onWatchStatusChange = (a, b, c, d) =>
|
|
43
|
-
originalOnWatchStatusChange
|
|
44
|
-
|
|
45
|
-
}
|
|
40
|
+
host.onWatchStatusChange = async (a, b, c, d) => {
|
|
41
|
+
originalOnWatchStatusChange?.(a, b, c, d);
|
|
42
|
+
await callback?.(a, b, c, d);
|
|
43
|
+
};
|
|
46
44
|
return tsModule.createWatchProgram(host);
|
|
47
45
|
}
|
|
48
46
|
exports.compileTypeScriptWatcher = compileTypeScriptWatcher;
|
|
@@ -51,7 +49,7 @@ function mergeCustomTransformers(originalCustomTransformers, consumerCustomTrans
|
|
|
51
49
|
return originalCustomTransformers;
|
|
52
50
|
const mergedCustomTransformers = {};
|
|
53
51
|
if (consumerCustomTransformers.before) {
|
|
54
|
-
mergedCustomTransformers.before =
|
|
52
|
+
mergedCustomTransformers.before = originalCustomTransformers?.before
|
|
55
53
|
? [
|
|
56
54
|
...originalCustomTransformers.before,
|
|
57
55
|
...consumerCustomTransformers.before,
|
|
@@ -59,7 +57,7 @@ function mergeCustomTransformers(originalCustomTransformers, consumerCustomTrans
|
|
|
59
57
|
: consumerCustomTransformers.before;
|
|
60
58
|
}
|
|
61
59
|
if (consumerCustomTransformers.after) {
|
|
62
|
-
mergedCustomTransformers.after =
|
|
60
|
+
mergedCustomTransformers.after = originalCustomTransformers?.after
|
|
63
61
|
? [
|
|
64
62
|
...originalCustomTransformers.after,
|
|
65
63
|
...consumerCustomTransformers.after,
|
|
@@ -68,7 +66,7 @@ function mergeCustomTransformers(originalCustomTransformers, consumerCustomTrans
|
|
|
68
66
|
}
|
|
69
67
|
if (consumerCustomTransformers.afterDeclarations) {
|
|
70
68
|
mergedCustomTransformers.afterDeclarations =
|
|
71
|
-
|
|
69
|
+
originalCustomTransformers?.afterDeclarations
|
|
72
70
|
? [
|
|
73
71
|
...originalCustomTransformers.afterDeclarations,
|
|
74
72
|
...consumerCustomTransformers.afterDeclarations,
|
|
@@ -98,7 +96,7 @@ function createProgram(tsconfig, { projectName, getCustomTransformers }) {
|
|
|
98
96
|
host,
|
|
99
97
|
});
|
|
100
98
|
devkit_1.logger.info(`Compiling TypeScript files for project "${projectName}"...`);
|
|
101
|
-
const results = program.emit(undefined, undefined, undefined, undefined, getCustomTransformers
|
|
99
|
+
const results = program.emit(undefined, undefined, undefined, undefined, getCustomTransformers?.(program));
|
|
102
100
|
if (results.emitSkipped) {
|
|
103
101
|
const diagnostics = tsModule.formatDiagnosticsWithColorAndContext(results.diagnostics, {
|
|
104
102
|
getCurrentDirectory: () => tsModule.sys.getCurrentDirectory(),
|
|
@@ -114,6 +112,9 @@ function createProgram(tsconfig, { projectName, getCustomTransformers }) {
|
|
|
114
112
|
}
|
|
115
113
|
}
|
|
116
114
|
function normalizeOptions(options) {
|
|
117
|
-
|
|
118
|
-
|
|
115
|
+
return {
|
|
116
|
+
...options,
|
|
117
|
+
deleteOutputPath: options.deleteOutputPath ?? true,
|
|
118
|
+
rootDir: options.rootDir ?? options.projectRoot,
|
|
119
|
+
};
|
|
119
120
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formatFiles = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
6
5
|
const rxjs_1 = require("rxjs");
|
|
7
6
|
const operators_1 = require("rxjs/operators");
|
|
@@ -32,28 +31,31 @@ function formatFiles(options = { skipFormat: false }, directory = '') {
|
|
|
32
31
|
if (files.size === 0) {
|
|
33
32
|
return host;
|
|
34
33
|
}
|
|
35
|
-
return (0, rxjs_1.from)(files).pipe((0, operators_1.filter)((file) => host.exists(file.path)), (0, operators_1.mergeMap)((file) =>
|
|
34
|
+
return (0, rxjs_1.from)(files).pipe((0, operators_1.filter)((file) => host.exists(file.path)), (0, operators_1.mergeMap)(async (file) => {
|
|
36
35
|
const systemPath = path.join(devkit_1.workspaceRoot, file.path);
|
|
37
36
|
let options = {
|
|
38
37
|
filepath: systemPath,
|
|
39
38
|
};
|
|
40
|
-
const resolvedOptions =
|
|
39
|
+
const resolvedOptions = await prettier.resolveConfig(systemPath);
|
|
41
40
|
if (resolvedOptions) {
|
|
42
|
-
options =
|
|
41
|
+
options = {
|
|
42
|
+
...options,
|
|
43
|
+
...resolvedOptions,
|
|
44
|
+
};
|
|
43
45
|
}
|
|
44
|
-
const support =
|
|
46
|
+
const support = await prettier.getFileInfo(systemPath, options);
|
|
45
47
|
if (support.ignored || !support.inferredParser) {
|
|
46
48
|
return;
|
|
47
49
|
}
|
|
48
50
|
try {
|
|
49
51
|
host.overwrite(file.path,
|
|
50
52
|
// In prettier v3 the format result is a promise
|
|
51
|
-
|
|
53
|
+
await prettier.format(file.content, options));
|
|
52
54
|
}
|
|
53
55
|
catch (e) {
|
|
54
56
|
context.logger.warn(`Could not format ${file.path} because ${e.message}`);
|
|
55
57
|
}
|
|
56
|
-
})
|
|
58
|
+
}), (0, operators_1.map)(() => host));
|
|
57
59
|
};
|
|
58
60
|
}
|
|
59
61
|
exports.formatFiles = formatFiles;
|
|
@@ -15,12 +15,12 @@ function visitNotIgnoredFiles(visitor, dir = (0, core_1.normalize)('')) {
|
|
|
15
15
|
ig.add(host.read('.gitignore').toString());
|
|
16
16
|
}
|
|
17
17
|
function visit(_dir) {
|
|
18
|
-
if (_dir &&
|
|
18
|
+
if (_dir && ig?.ignores(_dir)) {
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
const dirEntry = host.getDir(_dir);
|
|
22
22
|
dirEntry.subfiles.forEach((file) => {
|
|
23
|
-
if (ig
|
|
23
|
+
if (ig?.ignores((0, core_1.join)(_dir, file))) {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
const maybeRule = visitor((0, core_1.join)(_dir, file), host, context);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MockBuilderContext = exports.createEmptyWorkspace = exports.getFileContent = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const core_1 = require("@angular-devkit/core/src/workspace/core");
|
|
6
5
|
/**
|
|
7
6
|
* @deprecated This will be removed in v17. Prefer writing Nx Generators with @nx/devkit. Use tree.read(filePath, 'utf-8') instead.
|
|
@@ -107,15 +106,11 @@ class MockBuilderContext {
|
|
|
107
106
|
};
|
|
108
107
|
this.logger = new NoopLogger();
|
|
109
108
|
}
|
|
110
|
-
addBuilderFromPackage(path) {
|
|
111
|
-
return
|
|
112
|
-
return yield this.architectHost.addBuilderFromPackage(path);
|
|
113
|
-
});
|
|
109
|
+
async addBuilderFromPackage(path) {
|
|
110
|
+
return await this.architectHost.addBuilderFromPackage(path);
|
|
114
111
|
}
|
|
115
|
-
addTarget(target, builderName) {
|
|
116
|
-
return
|
|
117
|
-
return this.architectHost.addTarget(target, builderName);
|
|
118
|
-
});
|
|
112
|
+
async addTarget(target, builderName) {
|
|
113
|
+
return this.architectHost.addTarget(target, builderName);
|
|
119
114
|
}
|
|
120
115
|
getBuilderNameForTarget(target) {
|
|
121
116
|
return this.architectHost.getBuilderNameForTarget(target);
|
|
@@ -136,11 +131,9 @@ class MockBuilderContext {
|
|
|
136
131
|
reportStatus(status) { }
|
|
137
132
|
reportProgress(current, total, status) { }
|
|
138
133
|
addTeardown(teardown) { }
|
|
139
|
-
getProjectMetadata(target) {
|
|
140
|
-
return
|
|
141
|
-
|
|
142
|
-
this.architectHost.getProjectMetadata(target));
|
|
143
|
-
});
|
|
134
|
+
async getProjectMetadata(target) {
|
|
135
|
+
return (this.architectHost &&
|
|
136
|
+
this.architectHost.getProjectMetadata(target));
|
|
144
137
|
}
|
|
145
138
|
}
|
|
146
139
|
exports.MockBuilderContext = MockBuilderContext;
|
package/src/utils/workspace.js
CHANGED
|
@@ -1,69 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.updateBuilderConfig = exports.updateWorkspace = exports.getWorkspace = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const core_1 = require("@angular-devkit/core");
|
|
6
5
|
function createHost(tree) {
|
|
7
6
|
return {
|
|
8
|
-
readFile(path) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return data.toString();
|
|
15
|
-
});
|
|
7
|
+
async readFile(path) {
|
|
8
|
+
const data = tree.read(path);
|
|
9
|
+
if (!data) {
|
|
10
|
+
throw new Error('File not found.');
|
|
11
|
+
}
|
|
12
|
+
return data.toString();
|
|
16
13
|
},
|
|
17
|
-
writeFile(path, data) {
|
|
18
|
-
return
|
|
19
|
-
return tree.overwrite(path, data);
|
|
20
|
-
});
|
|
14
|
+
async writeFile(path, data) {
|
|
15
|
+
return tree.overwrite(path, data);
|
|
21
16
|
},
|
|
22
|
-
isDirectory(path) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return !tree.exists(path) && tree.getDir(path).subfiles.length > 0;
|
|
29
|
-
});
|
|
17
|
+
async isDirectory(path) {
|
|
18
|
+
// approximate a directory check
|
|
19
|
+
// special case needed when testing wrapped schematics
|
|
20
|
+
if (path === '/')
|
|
21
|
+
return true;
|
|
22
|
+
return !tree.exists(path) && tree.getDir(path).subfiles.length > 0;
|
|
30
23
|
},
|
|
31
|
-
isFile(path) {
|
|
32
|
-
return
|
|
33
|
-
return tree.exists(path);
|
|
34
|
-
});
|
|
24
|
+
async isFile(path) {
|
|
25
|
+
return tree.exists(path);
|
|
35
26
|
},
|
|
36
27
|
};
|
|
37
28
|
}
|
|
38
29
|
/**
|
|
39
30
|
* @deprecated This will be removed in v17. Prefer writing Nx Generators with @nx/devkit. This function can be replaced with 'getProjects' with Nx Devkit.
|
|
40
31
|
*/
|
|
41
|
-
function getWorkspace(tree, path = '/') {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return workspace;
|
|
46
|
-
});
|
|
32
|
+
async function getWorkspace(tree, path = '/') {
|
|
33
|
+
const host = createHost(tree);
|
|
34
|
+
const { workspace } = await core_1.workspaces.readWorkspace(path, host);
|
|
35
|
+
return workspace;
|
|
47
36
|
}
|
|
48
37
|
exports.getWorkspace = getWorkspace;
|
|
49
38
|
/**
|
|
50
39
|
* @deprecated This will be removed in v17. Prefer writing Nx Generators with @nx/devkit. This function can be replaced with 'updateProjectConfiguration' with Nx Devkit.
|
|
51
40
|
*/
|
|
52
41
|
function updateWorkspace(updaterOrWorkspace) {
|
|
53
|
-
return (tree) =>
|
|
42
|
+
return async (tree) => {
|
|
54
43
|
const host = createHost(tree);
|
|
55
44
|
if (typeof updaterOrWorkspace === 'function') {
|
|
56
|
-
const { workspace } =
|
|
45
|
+
const { workspace } = await core_1.workspaces.readWorkspace('/', host);
|
|
57
46
|
const result = updaterOrWorkspace(workspace);
|
|
58
47
|
if (result !== undefined) {
|
|
59
|
-
|
|
48
|
+
await result;
|
|
60
49
|
}
|
|
61
|
-
|
|
50
|
+
await core_1.workspaces.writeWorkspace(workspace, host);
|
|
62
51
|
}
|
|
63
52
|
else {
|
|
64
|
-
|
|
53
|
+
await core_1.workspaces.writeWorkspace(updaterOrWorkspace, host);
|
|
65
54
|
}
|
|
66
|
-
}
|
|
55
|
+
};
|
|
67
56
|
}
|
|
68
57
|
exports.updateWorkspace = updateWorkspace;
|
|
69
58
|
/**
|