@nx/js 16.8.0-beta.3 → 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/babel.js +7 -8
- package/package.json +5 -5
- package/src/executors/node/lib/kill-tree.js +42 -45
- package/src/executors/node/node.impl.js +190 -189
- package/src/executors/node/schema.json +1 -1
- package/src/executors/swc/swc.impl.js +82 -70
- package/src/executors/tsc/lib/batch/build-task-info-per-tsconfig-map.js +7 -4
- package/src/executors/tsc/lib/batch/watch.js +42 -49
- package/src/executors/tsc/lib/get-task-options.js +8 -6
- package/src/executors/tsc/lib/get-tsconfig.js +16 -5
- package/src/executors/tsc/lib/normalize-options.js +9 -2
- package/src/executors/tsc/lib/typescript-compilation.js +21 -24
- package/src/executors/tsc/tsc.batch-impl.js +133 -132
- package/src/executors/tsc/tsc.impl.js +54 -50
- package/src/executors/verdaccio/verdaccio.impl.js +64 -55
- package/src/generators/convert-to-swc/convert-to-swc.js +6 -9
- package/src/generators/init/init.js +86 -92
- package/src/generators/library/library.d.ts +1 -1
- package/src/generators/library/library.js +290 -203
- package/src/generators/setup-build/generator.js +120 -113
- package/src/generators/setup-verdaccio/generator.js +45 -50
- package/src/migrations/update-13-8-5/update-node-executor.js +17 -21
- package/src/migrations/update-13-8-5/update-swcrc.js +23 -27
- package/src/migrations/update-14-1-5/update-swcrc-path.js +17 -20
- package/src/migrations/update-15-8-0/rename-swcrc-config.js +57 -60
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +3 -6
- package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.js +19 -24
- package/src/plugins/jest/start-local-registry.js +4 -6
- package/src/plugins/rollup/type-definitions.js +21 -24
- package/src/utils/add-babel-inputs.js +1 -2
- package/src/utils/assets/assets.js +1 -2
- package/src/utils/assets/copy-assets-handler.js +48 -59
- package/src/utils/assets/index.js +20 -23
- package/src/utils/buildable-libs-utils.js +9 -13
- package/src/utils/find-npm-dependencies.d.ts +1 -0
- package/src/utils/find-npm-dependencies.js +25 -15
- package/src/utils/generate-globs.js +3 -3
- package/src/utils/inline.js +5 -10
- package/src/utils/package-json/get-npm-scope.js +2 -2
- package/src/utils/package-json/index.js +22 -25
- package/src/utils/package-json/update-package-json.js +26 -23
- package/src/utils/prettier.js +21 -24
- package/src/utils/swc/compile-swc.js +101 -106
- package/src/utils/typescript/compile-typescript-files.js +7 -8
- package/src/utils/typescript/print-diagnostics.js +13 -16
- package/src/utils/typescript/run-type-check.js +62 -59
- package/src/utils/typescript/ts-config.js +3 -5
- package/src/utils/typescript/tsnode-register.js +1 -1
- package/src/utils/watch-for-single-file-changes.js +13 -17
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertToSwcSchematic = exports.convertToSwcGenerator = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
6
5
|
const path_1 = require("path");
|
|
7
6
|
const add_swc_config_1 = require("../../utils/swc/add-swc-config");
|
|
8
7
|
const add_swc_dependencies_1 = require("../../utils/swc/add-swc-dependencies");
|
|
9
8
|
const versions_1 = require("../../utils/versions");
|
|
10
|
-
function convertToSwcGenerator(tree, schema) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return checkSwcDependencies(tree, projectConfiguration);
|
|
16
|
-
});
|
|
9
|
+
async function convertToSwcGenerator(tree, schema) {
|
|
10
|
+
const options = normalizeOptions(schema);
|
|
11
|
+
const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, options.project);
|
|
12
|
+
updateProjectBuildTargets(tree, projectConfiguration, options.project, options.targets);
|
|
13
|
+
return checkSwcDependencies(tree, projectConfiguration);
|
|
17
14
|
}
|
|
18
15
|
exports.convertToSwcGenerator = convertToSwcGenerator;
|
|
19
16
|
function normalizeOptions(schema) {
|
|
20
|
-
const options =
|
|
17
|
+
const options = { ...schema };
|
|
21
18
|
if (!options.targets) {
|
|
22
19
|
options.targets = ['build'];
|
|
23
20
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.initSchematic = exports.initGenerator = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
6
5
|
const semver_1 = require("@nx/devkit/src/utils/semver");
|
|
7
6
|
const package_json_1 = require("nx/src/utils/package-json");
|
|
@@ -9,106 +8,101 @@ const semver_2 = require("semver");
|
|
|
9
8
|
const ts_config_1 = require("../../utils/typescript/ts-config");
|
|
10
9
|
const versions_1 = require("../../utils/versions");
|
|
11
10
|
const path_1 = require("path");
|
|
12
|
-
function getInstalledTypescriptVersion(tree) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
async function getInstalledTypescriptVersion(tree) {
|
|
12
|
+
const rootPackageJson = (0, devkit_1.readJson)(tree, 'package.json');
|
|
13
|
+
const tsVersionInRootPackageJson = rootPackageJson.devDependencies?.['typescript'] ??
|
|
14
|
+
rootPackageJson.dependencies?.['typescript'];
|
|
15
|
+
if (!tsVersionInRootPackageJson) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
if ((0, semver_2.valid)(tsVersionInRootPackageJson)) {
|
|
19
|
+
// it's a pinned version, return it
|
|
20
|
+
return tsVersionInRootPackageJson;
|
|
21
|
+
}
|
|
22
|
+
// it's a version range, check whether the installed version matches it
|
|
23
|
+
try {
|
|
24
|
+
const tsPackageJson = (0, package_json_1.readModulePackageJson)('typescript').packageJson;
|
|
25
|
+
const installedTsVersion = tsPackageJson.devDependencies?.['typescript'] ??
|
|
26
|
+
tsPackageJson.dependencies?.['typescript'];
|
|
27
|
+
// the installed version matches the package.json version range
|
|
28
|
+
if (installedTsVersion &&
|
|
29
|
+
(0, semver_2.satisfies)(installedTsVersion, tsVersionInRootPackageJson)) {
|
|
30
|
+
return installedTsVersion;
|
|
19
31
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// it's a version range, check whether the installed version matches it
|
|
25
|
-
try {
|
|
26
|
-
const tsPackageJson = (0, package_json_1.readModulePackageJson)('typescript').packageJson;
|
|
27
|
-
const installedTsVersion = (_e = (_d = tsPackageJson.devDependencies) === null || _d === void 0 ? void 0 : _d['typescript']) !== null && _e !== void 0 ? _e : (_f = tsPackageJson.dependencies) === null || _f === void 0 ? void 0 : _f['typescript'];
|
|
28
|
-
// the installed version matches the package.json version range
|
|
29
|
-
if (installedTsVersion &&
|
|
30
|
-
(0, semver_2.satisfies)(installedTsVersion, tsVersionInRootPackageJson)) {
|
|
31
|
-
return installedTsVersion;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
finally {
|
|
35
|
-
return (0, semver_1.checkAndCleanWithSemver)('typescript', tsVersionInRootPackageJson);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
return (0, semver_1.checkAndCleanWithSemver)('typescript', tsVersionInRootPackageJson);
|
|
35
|
+
}
|
|
38
36
|
}
|
|
39
|
-
function initGenerator(tree, schema) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (!
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
})) {
|
|
59
|
-
devDependencies['typescript'] = versions_1.typescriptVersion;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// https://prettier.io/docs/en/configuration.html
|
|
63
|
-
const prettierrcNameOptions = [
|
|
64
|
-
'.prettierrc',
|
|
65
|
-
'.prettierrc.json',
|
|
66
|
-
'.prettierrc.yml',
|
|
67
|
-
'.prettierrc.yaml',
|
|
68
|
-
'.prettierrc.json5',
|
|
69
|
-
'.prettierrc.js',
|
|
70
|
-
'.prettierrc.cjs',
|
|
71
|
-
'prettier.config.js',
|
|
72
|
-
'prettier.config.cjs',
|
|
73
|
-
'.prettierrc.toml',
|
|
74
|
-
];
|
|
75
|
-
if (prettierrcNameOptions.every((name) => !tree.exists(name))) {
|
|
76
|
-
(0, devkit_1.writeJson)(tree, '.prettierrc', {
|
|
77
|
-
singleQuote: true,
|
|
78
|
-
});
|
|
37
|
+
async function initGenerator(tree, schema) {
|
|
38
|
+
const tasks = [];
|
|
39
|
+
// add tsconfig.base.json
|
|
40
|
+
if (!(0, ts_config_1.getRootTsConfigFileName)(tree)) {
|
|
41
|
+
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, './files'), '.', {
|
|
42
|
+
fileName: schema.tsConfigName ?? 'tsconfig.base.json',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const devDependencies = {
|
|
46
|
+
'@nx/js': versions_1.nxVersion,
|
|
47
|
+
prettier: versions_1.prettierVersion,
|
|
48
|
+
};
|
|
49
|
+
if (!schema.js) {
|
|
50
|
+
const installedTsVersion = await getInstalledTypescriptVersion(tree);
|
|
51
|
+
if (!installedTsVersion ||
|
|
52
|
+
!(0, semver_2.satisfies)(installedTsVersion, versions_1.supportedTypescriptVersions, {
|
|
53
|
+
includePrerelease: true,
|
|
54
|
+
})) {
|
|
55
|
+
devDependencies['typescript'] = versions_1.typescriptVersion;
|
|
79
56
|
}
|
|
80
|
-
|
|
81
|
-
|
|
57
|
+
}
|
|
58
|
+
// https://prettier.io/docs/en/configuration.html
|
|
59
|
+
const prettierrcNameOptions = [
|
|
60
|
+
'.prettierrc',
|
|
61
|
+
'.prettierrc.json',
|
|
62
|
+
'.prettierrc.yml',
|
|
63
|
+
'.prettierrc.yaml',
|
|
64
|
+
'.prettierrc.json5',
|
|
65
|
+
'.prettierrc.js',
|
|
66
|
+
'.prettierrc.cjs',
|
|
67
|
+
'prettier.config.js',
|
|
68
|
+
'prettier.config.cjs',
|
|
69
|
+
'.prettierrc.toml',
|
|
70
|
+
];
|
|
71
|
+
if (prettierrcNameOptions.every((name) => !tree.exists(name))) {
|
|
72
|
+
(0, devkit_1.writeJson)(tree, '.prettierrc', {
|
|
73
|
+
singleQuote: true,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
if (!tree.exists(`.prettierignore`)) {
|
|
77
|
+
tree.write('.prettierignore', (0, devkit_1.stripIndents) `
|
|
82
78
|
# Add files here to ignore them from prettier formatting
|
|
83
79
|
/dist
|
|
84
80
|
/coverage
|
|
85
81
|
`);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
json.recommendations.push(extension);
|
|
94
|
-
}
|
|
95
|
-
return json;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
const installTask = !schema.skipPackageJson
|
|
99
|
-
? (0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies)
|
|
100
|
-
: () => { };
|
|
101
|
-
tasks.push(installTask);
|
|
102
|
-
(0, devkit_1.ensurePackage)('prettier', versions_1.prettierVersion);
|
|
103
|
-
if (!schema.skipFormat) {
|
|
104
|
-
yield (0, devkit_1.formatFiles)(tree);
|
|
105
|
-
}
|
|
106
|
-
return () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
107
|
-
for (const task of tasks) {
|
|
108
|
-
yield task();
|
|
82
|
+
}
|
|
83
|
+
if (tree.exists('.vscode/extensions.json')) {
|
|
84
|
+
(0, devkit_1.updateJson)(tree, '.vscode/extensions.json', (json) => {
|
|
85
|
+
json.recommendations ??= [];
|
|
86
|
+
const extension = 'esbenp.prettier-vscode';
|
|
87
|
+
if (!json.recommendations.includes(extension)) {
|
|
88
|
+
json.recommendations.push(extension);
|
|
109
89
|
}
|
|
90
|
+
return json;
|
|
110
91
|
});
|
|
111
|
-
}
|
|
92
|
+
}
|
|
93
|
+
const installTask = !schema.skipPackageJson
|
|
94
|
+
? (0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies)
|
|
95
|
+
: () => { };
|
|
96
|
+
tasks.push(installTask);
|
|
97
|
+
(0, devkit_1.ensurePackage)('prettier', versions_1.prettierVersion);
|
|
98
|
+
if (!schema.skipFormat) {
|
|
99
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
100
|
+
}
|
|
101
|
+
return async () => {
|
|
102
|
+
for (const task of tasks) {
|
|
103
|
+
await task();
|
|
104
|
+
}
|
|
105
|
+
};
|
|
112
106
|
}
|
|
113
107
|
exports.initGenerator = initGenerator;
|
|
114
108
|
exports.default = initGenerator;
|
|
@@ -11,7 +11,7 @@ export interface NormalizedSchema extends LibraryGeneratorSchema {
|
|
|
11
11
|
parsedTags: string[];
|
|
12
12
|
importPath?: string;
|
|
13
13
|
}
|
|
14
|
-
export type AddLintOptions = Pick<NormalizedSchema, 'name' | 'linter' | 'projectRoot' | 'unitTestRunner' | 'js' | 'setParserOptionsProject' | 'rootProject'>;
|
|
14
|
+
export type AddLintOptions = Pick<NormalizedSchema, 'name' | 'linter' | 'projectRoot' | 'unitTestRunner' | 'js' | 'setParserOptionsProject' | 'rootProject' | 'bundler'>;
|
|
15
15
|
export declare function addLint(tree: Tree, options: AddLintOptions): Promise<GeneratorCallback>;
|
|
16
16
|
export default libraryGenerator;
|
|
17
17
|
export declare const librarySchematic: (generatorOptions: LibraryGeneratorSchema) => (tree: any, context: any) => Promise<any>;
|