@aws/nx-plugin 0.63.0 → 0.64.0
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/generators.json +7 -0
- package/package.json +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +14 -2
- package/src/preset/generator.js +7 -0
- package/src/preset/generator.js.map +1 -1
- package/src/ts/sync/generator.d.ts +11 -0
- package/src/ts/sync/generator.js +100 -0
- package/src/ts/sync/generator.js.map +1 -0
- package/src/ts/sync/schema.json +8 -0
package/generators.json
CHANGED
|
@@ -196,6 +196,13 @@
|
|
|
196
196
|
"description": "provides React integration to a React website",
|
|
197
197
|
"metric": "g10",
|
|
198
198
|
"hidden": true
|
|
199
|
+
},
|
|
200
|
+
"ts#sync": {
|
|
201
|
+
"factory": "./src/ts/sync/generator",
|
|
202
|
+
"schema": "./src/ts/sync/schema.json",
|
|
203
|
+
"description": "TypeScript path alias sync generator",
|
|
204
|
+
"metric": "g29",
|
|
205
|
+
"hidden": true
|
|
199
206
|
}
|
|
200
207
|
}
|
|
201
208
|
}
|
package/package.json
CHANGED
|
@@ -166,8 +166,20 @@ export default {
|
|
|
166
166
|
|
|
167
167
|
exports[`preset generator > should run successfully > nx.json 1`] = `
|
|
168
168
|
"{
|
|
169
|
-
"affected": {
|
|
170
|
-
|
|
169
|
+
"affected": {
|
|
170
|
+
"defaultBase": "main"
|
|
171
|
+
},
|
|
172
|
+
"targetDefaults": {
|
|
173
|
+
"build": {
|
|
174
|
+
"cache": true
|
|
175
|
+
},
|
|
176
|
+
"lint": {
|
|
177
|
+
"cache": true
|
|
178
|
+
},
|
|
179
|
+
"compile": {
|
|
180
|
+
"syncGenerators": ["@aws/nx-plugin:ts#sync"]
|
|
181
|
+
}
|
|
182
|
+
}
|
|
171
183
|
}
|
|
172
184
|
"
|
|
173
185
|
`;
|
package/src/preset/generator.js
CHANGED
|
@@ -18,6 +18,7 @@ const generators_json_1 = tslib_1.__importDefault(require("../../generators.json
|
|
|
18
18
|
const child_process_1 = require("child_process");
|
|
19
19
|
const enquirer = tslib_1.__importStar(require("enquirer"));
|
|
20
20
|
const utils_1 = require("../utils/config/utils");
|
|
21
|
+
const generator_1 = require("../ts/sync/generator");
|
|
21
22
|
const WORKSPACES = ['packages/*'];
|
|
22
23
|
exports.PRESET_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
23
24
|
const setUpWorkspaces = (tree) => {
|
|
@@ -82,6 +83,7 @@ function isAmazonian() {
|
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
const presetGenerator = (tree_1, _a) => tslib_1.__awaiter(void 0, [tree_1, _a], void 0, function* (tree, { addTsPlugin, iacProvider }) {
|
|
86
|
+
var _b, _c, _d, _e;
|
|
85
87
|
if (isAmazonian() &&
|
|
86
88
|
!process.env.VITEST &&
|
|
87
89
|
!process.env.CI &&
|
|
@@ -110,6 +112,11 @@ const presetGenerator = (tree_1, _a) => tslib_1.__awaiter(void 0, [tree_1, _a],
|
|
|
110
112
|
tree.delete('libs/.gitkeep');
|
|
111
113
|
tree.write('packages/.gitkeep', '');
|
|
112
114
|
setUpWorkspaces(tree);
|
|
115
|
+
const nxJson = (0, devkit_1.readNxJson)(tree);
|
|
116
|
+
(0, devkit_1.updateNxJson)(tree, Object.assign(Object.assign({}, nxJson), { targetDefaults: Object.assign(Object.assign({}, nxJson.targetDefaults), { compile: Object.assign(Object.assign({}, (_b = nxJson.targetDefaults) === null || _b === void 0 ? void 0 : _b.compile), { syncGenerators: [
|
|
117
|
+
...((_e = (_d = (_c = nxJson.targetDefaults) === null || _c === void 0 ? void 0 : _c.compile) === null || _d === void 0 ? void 0 : _d.syncGenerators) !== null && _e !== void 0 ? _e : []).filter((g) => g !== generator_1.SYNC_GENERATOR_NAME),
|
|
118
|
+
generator_1.SYNC_GENERATOR_NAME,
|
|
119
|
+
] }) }) }));
|
|
113
120
|
(0, devkit_1.updateJson)(tree, 'package.json', (packageJson) => (Object.assign(Object.assign({}, packageJson), { type: 'module', scripts: Object.assign(Object.assign({}, packageJson.scripts), { 'build:all': 'nx run-many --target build --all', 'affected:all': 'nx affected --target build' }) })));
|
|
114
121
|
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
|
|
115
122
|
'@nx/workspace': (0, package_json_1.readModulePackageJson)('@nx/js').packageJson.version,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/preset/generator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/preset/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Tree } from '@nx/devkit';
|
|
6
|
+
import { NxGeneratorInfo } from '../../utils/nx';
|
|
7
|
+
import { SyncGeneratorResult } from 'nx/src/utils/sync-generators';
|
|
8
|
+
export declare const TS_SYNC_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
|
+
export declare const SYNC_GENERATOR_NAME: string;
|
|
10
|
+
export declare const tsSyncGeneratorGenerator: (tree: Tree) => Promise<SyncGeneratorResult>;
|
|
11
|
+
export default tsSyncGeneratorGenerator;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.tsSyncGeneratorGenerator = exports.SYNC_GENERATOR_NAME = exports.TS_SYNC_GENERATOR_INFO = void 0;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
const devkit_1 = require("@nx/devkit");
|
|
10
|
+
const nx_1 = require("../../utils/nx");
|
|
11
|
+
const format_1 = require("../../utils/format");
|
|
12
|
+
const package_json_1 = tslib_1.__importDefault(require("../../../package.json"));
|
|
13
|
+
exports.TS_SYNC_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
14
|
+
exports.SYNC_GENERATOR_NAME = `${package_json_1.default.name}:${exports.TS_SYNC_GENERATOR_INFO.id}`;
|
|
15
|
+
const tsSyncGeneratorGenerator = (tree) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
const basePaths = readBaseTsConfigPaths(tree);
|
|
17
|
+
if (!basePaths) {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
const changesByConfigFile = {};
|
|
21
|
+
for (const project of (0, devkit_1.getProjects)(tree).values()) {
|
|
22
|
+
for (const tsConfigFileName of [
|
|
23
|
+
'tsconfig.json',
|
|
24
|
+
'tsconfig.lib.json',
|
|
25
|
+
'tsconfig.app.json',
|
|
26
|
+
]) {
|
|
27
|
+
const tsConfigPath = (0, devkit_1.joinPathFragments)(project.root, tsConfigFileName);
|
|
28
|
+
if (!tree.exists(tsConfigPath)) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
const { changes, updated } = syncPathsWithBase(tree, tsConfigPath, basePaths);
|
|
32
|
+
if (updated) {
|
|
33
|
+
changesByConfigFile[tsConfigPath] = changes;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (Object.keys(changesByConfigFile).length === 0) {
|
|
38
|
+
return {};
|
|
39
|
+
}
|
|
40
|
+
yield (0, format_1.formatFilesInSubtree)(tree);
|
|
41
|
+
return {
|
|
42
|
+
outOfSyncMessage: buildOutOfSyncMessage(changesByConfigFile),
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
exports.tsSyncGeneratorGenerator = tsSyncGeneratorGenerator;
|
|
46
|
+
exports.default = exports.tsSyncGeneratorGenerator;
|
|
47
|
+
const readBaseTsConfigPaths = (tree) => {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
const baseConfigPath = ['tsconfig.base.json', 'tsconfig.json'].find((path) => tree.exists(path));
|
|
50
|
+
if (!baseConfigPath) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
const baseConfigJson = (0, devkit_1.readJson)(tree, baseConfigPath);
|
|
54
|
+
return (_b = (_a = baseConfigJson === null || baseConfigJson === void 0 ? void 0 : baseConfigJson.compilerOptions) === null || _a === void 0 ? void 0 : _a.paths) !== null && _b !== void 0 ? _b : {};
|
|
55
|
+
};
|
|
56
|
+
const arePathArraysEqual = (first, second) => {
|
|
57
|
+
if (first.length !== second.length) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
return first.every((value, index) => value === second[index]);
|
|
61
|
+
};
|
|
62
|
+
const syncPathsWithBase = (tree, tsConfigPath, basePaths) => {
|
|
63
|
+
var _a, _b, _c;
|
|
64
|
+
const changes = [];
|
|
65
|
+
const tsConfigJson = (0, devkit_1.readJson)(tree, tsConfigPath);
|
|
66
|
+
const paths = (_a = tsConfigJson === null || tsConfigJson === void 0 ? void 0 : tsConfigJson.compilerOptions) === null || _a === void 0 ? void 0 : _a.paths;
|
|
67
|
+
if (!paths) {
|
|
68
|
+
return { updated: false, changes };
|
|
69
|
+
}
|
|
70
|
+
const updatedAliases = Object.assign({}, ((_c = (_b = tsConfigJson.compilerOptions) === null || _b === void 0 ? void 0 : _b.paths) !== null && _c !== void 0 ? _c : {}));
|
|
71
|
+
let updated = false;
|
|
72
|
+
// Add or update aliases that exist in the base config
|
|
73
|
+
for (const [alias, baseValue] of Object.entries(basePaths)) {
|
|
74
|
+
const existingValue = updatedAliases[alias];
|
|
75
|
+
if (!existingValue) {
|
|
76
|
+
changes.push({ alias, type: 'added' });
|
|
77
|
+
updated = true;
|
|
78
|
+
}
|
|
79
|
+
else if (!arePathArraysEqual(existingValue, baseValue)) {
|
|
80
|
+
changes.push({ alias, type: 'updated' });
|
|
81
|
+
updated = true;
|
|
82
|
+
}
|
|
83
|
+
updatedAliases[alias] = baseValue;
|
|
84
|
+
}
|
|
85
|
+
if (updated) {
|
|
86
|
+
(0, devkit_1.updateJson)(tree, tsConfigPath, (json) => (Object.assign(Object.assign({}, json), { compilerOptions: Object.assign(Object.assign({}, json.compilerOptions), { paths: updatedAliases }) })));
|
|
87
|
+
}
|
|
88
|
+
return { updated, changes };
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Build the message to display when the sync generator would make changes to the tree
|
|
92
|
+
*/
|
|
93
|
+
const buildOutOfSyncMessage = (changesByConfig) => `TypeScript path aliases are out of sync with the base tsconfig. The following configs will be updated:\n${Object.entries(changesByConfig)
|
|
94
|
+
.map(([config, changes]) => `${config}:\n${changes
|
|
95
|
+
.slice()
|
|
96
|
+
.sort((left, right) => left.alias.localeCompare(right.alias))
|
|
97
|
+
.map(({ alias, type }) => `- ${alias} (${type})`)
|
|
98
|
+
.join('\n')}`)
|
|
99
|
+
.join('\n\n')}`;
|
|
100
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/sync/generator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,uCAMoB;AACpB,uCAAmE;AACnE,+CAA0D;AAE1D,iFAAgD;AAEnC,QAAA,sBAAsB,GACjC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAElB,QAAA,mBAAmB,GAAG,GAAG,sBAAW,CAAC,IAAI,IAAI,8BAAsB,CAAC,EAAE,EAAE,CAAC;AAE/E,MAAM,wBAAwB,GAAG,CACtC,IAAU,EACoB,EAAE;IAChC,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,mBAAmB,GAAiC,EAAE,CAAC;IAE7D,KAAK,MAAM,OAAO,IAAI,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACjD,KAAK,MAAM,gBAAgB,IAAI;YAC7B,eAAe;YACf,mBAAmB;YACnB,mBAAmB;SACpB,EAAE,CAAC;YACF,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAC5C,IAAI,EACJ,YAAY,EACZ,SAAS,CACV,CAAC;YAEF,IAAI,OAAO,EAAE,CAAC;gBACZ,mBAAmB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IAEjC,OAAO;QACL,gBAAgB,EAAE,qBAAqB,CAAC,mBAAmB,CAAC;KAC7D,CAAC;AACJ,CAAC,CAAA,CAAC;AA3CW,QAAA,wBAAwB,4BA2CnC;AAEF,kBAAe,gCAAwB,CAAC;AAExC,MAAM,qBAAqB,GAAG,CAC5B,IAAU,EAC4B,EAAE;;IACxC,MAAM,cAAc,GAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,cAAc,GAAG,IAAA,iBAAQ,EAAsB,IAAI,EAAE,cAAc,CAAC,CAAC;IAC3E,OAAO,MAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,0CAAE,KAAK,mCAAI,EAAE,CAAC;AACtD,CAAC,CAAC;AASF,MAAM,kBAAkB,GAAG,CAAC,KAAe,EAAE,MAAgB,EAAW,EAAE;IACxE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,IAAU,EACV,YAAoB,EACpB,SAAmC,EACU,EAAE;;IAC/C,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,MAAM,YAAY,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,eAAe,0CAAE,KAAK,CAAC;IAEnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,cAAc,qBACf,CAAC,MAAA,MAAA,YAAY,CAAC,eAAe,0CAAE,KAAK,mCAAI,EAAE,CAAC,CAC/C,CAAC;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,sDAAsD;IACtD,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3D,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACvC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACzC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAA,mBAAU,EAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iCACpC,IAAI,KACP,eAAe,kCACV,IAAI,CAAC,eAAe,KACvB,KAAK,EAAE,cAAc,OAEvB,CAAC,CAAC;IACN,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAC5B,eAA6C,EACrC,EAAE,CACV,2GAA2G,MAAM,CAAC,OAAO,CACvH,eAAe,CAChB;KACE,GAAG,CACF,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CACpB,GAAG,MAAM,MAAM,OAAO;KACnB,KAAK,EAAE;KACP,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC5D,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC;KAChD,IAAI,CAAC,IAAI,CAAC,EAAE,CAClB;KACA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC"}
|