@aws/nx-plugin 0.2.1 → 0.3.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.
Files changed (45) hide show
  1. package/LICENSE-THIRD-PARTY +22 -1
  2. package/generators.json +11 -0
  3. package/package.json +5 -2
  4. package/src/index.d.ts +1 -0
  5. package/src/index.js +4 -0
  6. package/src/index.js.map +1 -1
  7. package/src/license/README.md +255 -0
  8. package/src/license/__snapshots__/config.spec.ts.snap +89 -0
  9. package/src/license/config-types.d.ts +107 -0
  10. package/src/license/config-types.js +3 -0
  11. package/src/license/config-types.js.map +1 -0
  12. package/src/license/config.d.ts +25 -0
  13. package/src/license/config.js +174 -0
  14. package/src/license/config.js.map +1 -0
  15. package/src/license/files/licenses/ASL/LICENSE.template +96 -0
  16. package/src/license/files/licenses/Apache-2.0/LICENSE.template +175 -0
  17. package/src/license/files/licenses/MIT/LICENSE.template +21 -0
  18. package/src/license/generator.d.ts +8 -0
  19. package/src/license/generator.js +32 -0
  20. package/src/license/generator.js.map +1 -0
  21. package/src/license/schema.d.ts +17 -0
  22. package/src/license/schema.json +23 -0
  23. package/src/license/sync/generator.d.ts +9 -0
  24. package/src/license/sync/generator.js +307 -0
  25. package/src/license/sync/generator.js.map +1 -0
  26. package/src/license/sync/schema.json +9 -0
  27. package/src/ts/lib/eslint.js +4 -8
  28. package/src/ts/lib/eslint.js.map +1 -1
  29. package/src/utils/ast.d.ts +5 -1
  30. package/src/utils/ast.js +35 -1
  31. package/src/utils/ast.js.map +1 -1
  32. package/src/utils/config/__snapshots__/utils.spec.ts.snap +16 -0
  33. package/src/utils/config/files/aws-nx-plugin.config.mts.template +5 -0
  34. package/src/utils/config/index.d.ts +15 -0
  35. package/src/utils/config/index.js +5 -0
  36. package/src/utils/config/index.js.map +1 -0
  37. package/src/utils/config/utils.d.ts +20 -0
  38. package/src/utils/config/utils.js +71 -0
  39. package/src/utils/config/utils.js.map +1 -0
  40. package/src/utils/git.d.ts +9 -0
  41. package/src/utils/git.js +27 -0
  42. package/src/utils/git.js.map +1 -0
  43. package/src/utils/js.d.ts +8 -0
  44. package/src/utils/js.js +34 -0
  45. package/src/utils/js.js.map +1 -0
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SYNC_GENERATOR_NAME = void 0;
4
+ exports.licenseSyncGenerator = licenseSyncGenerator;
5
+ const tslib_1 = require("tslib");
6
+ /**
7
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ const devkit_1 = require("@nx/devkit");
11
+ const config_1 = require("../config");
12
+ const path_1 = require("path");
13
+ const fast_glob_1 = require("fast-glob");
14
+ const minimatch_1 = require("minimatch");
15
+ const git_1 = require("../../utils/git");
16
+ const utils_1 = require("../../utils/config/utils");
17
+ exports.SYNC_GENERATOR_NAME = '@aws/nx-plugin:license#sync';
18
+ function licenseSyncGenerator(tree) {
19
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
20
+ var _a, _b;
21
+ const config = yield (0, config_1.readLicenseConfig)(tree);
22
+ if (!config) {
23
+ // Nothing to do when not configured
24
+ return {};
25
+ }
26
+ const licenseHeadersUpdated = [];
27
+ if (config.header) {
28
+ // Get all candidate project files for header
29
+ const candidateProjectFiles = yield getCandidateProjectFilesForHeader(tree, config.header);
30
+ const headerContentLines = loadHeaderContentLines(tree, config.header);
31
+ // Add headers to project files which match the include pattern
32
+ for (const [includePattern, format] of Object.entries(config.header.format)) {
33
+ const files = minimatch_1.minimatch.match(candidateProjectFiles, includePattern);
34
+ files.forEach((file) => {
35
+ const didAdd = addHeader(tree, file, headerContentLines, config.header, format);
36
+ if (didAdd) {
37
+ licenseHeadersUpdated.push(file);
38
+ }
39
+ });
40
+ }
41
+ }
42
+ const licenseFilesAdded = [];
43
+ const licenseFilesUpdated = [];
44
+ if (tree.exists('LICENSE')) {
45
+ const rootLicense = tree.read('LICENSE', 'utf-8');
46
+ // Sync subproject license files
47
+ for (const project of (0, devkit_1.getProjects)(tree).values()) {
48
+ const projectLicensePath = (0, devkit_1.joinPathFragments)(project.root, 'LICENSE');
49
+ // Check that this project is not excluded in config
50
+ if (!((_b = (_a = config === null || config === void 0 ? void 0 : config.files) === null || _a === void 0 ? void 0 : _a.exclude) !== null && _b !== void 0 ? _b : []).some((excludePattern) => (0, minimatch_1.minimatch)(projectLicensePath, excludePattern) ||
51
+ (0, minimatch_1.minimatch)(project.root, excludePattern))) {
52
+ // Write the license if it doesn't exist, or if it doesn't match the root license
53
+ let shouldWrite = false;
54
+ if (!tree.exists(projectLicensePath)) {
55
+ licenseFilesAdded.push(projectLicensePath);
56
+ shouldWrite = true;
57
+ }
58
+ else if (tree.read(projectLicensePath, 'utf-8') !== rootLicense) {
59
+ licenseFilesUpdated.push(projectLicensePath);
60
+ shouldWrite = true;
61
+ }
62
+ if (shouldWrite) {
63
+ tree.write(projectLicensePath, rootLicense);
64
+ }
65
+ }
66
+ }
67
+ }
68
+ return {
69
+ outOfSyncMessage: buildOutOfSyncMessage({
70
+ licenseHeadersUpdated,
71
+ licenseFilesAdded,
72
+ licenseFilesUpdated,
73
+ }),
74
+ };
75
+ });
76
+ }
77
+ /**
78
+ * Build the message to display when the sync generator would make changes to the tree
79
+ */
80
+ const buildOutOfSyncMessage = (updates) => {
81
+ let outOfSyncMessage = '';
82
+ if (updates.licenseFilesAdded.length > 0) {
83
+ outOfSyncMessage += `Project license files are missing:\n${updates.licenseFilesAdded.map((p) => `- ${p}`).join('\n')}\n\n`;
84
+ }
85
+ if (updates.licenseFilesUpdated.length > 0) {
86
+ outOfSyncMessage += `Project license files are out of sync:\n${updates.licenseFilesUpdated.map((p) => `- ${p}`).join('\n')}\n\n`;
87
+ }
88
+ if (updates.licenseHeadersUpdated.length > 0) {
89
+ outOfSyncMessage += `License headers are out of sync in the following source files:\n${updates.licenseHeadersUpdated.map((p) => `- ${p}`).join('\n')}\n\n`;
90
+ }
91
+ return outOfSyncMessage.trim();
92
+ };
93
+ /**
94
+ * Load the license header content lines
95
+ */
96
+ const loadHeaderContentLines = (tree, config) => {
97
+ // Load the license header content
98
+ let headerContentLines = [];
99
+ if ('lines' in config.content) {
100
+ headerContentLines = config.content.lines;
101
+ }
102
+ else {
103
+ if (!tree.exists(config.content.filePath)) {
104
+ throw new Error(`Could not find license header content file ${config.content.filePath}`);
105
+ }
106
+ headerContentLines = tree
107
+ .read(config.content.filePath, 'utf-8')
108
+ .split('\n');
109
+ }
110
+ return headerContentLines;
111
+ };
112
+ /**
113
+ * Returns all files in the given tree - both in-memory only and in the filesystem under the tree root
114
+ */
115
+ const getAllFilesInTree = (tree) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
116
+ return [
117
+ ...new Set([
118
+ // Get all files in memory in the tree
119
+ ...(yield (0, devkit_1.globAsync)(tree, ['*'])),
120
+ // Find all files on the filesystem that may not be in memory in the tree
121
+ ...(yield (0, fast_glob_1.glob)(['*'], { cwd: tree.root, dot: true })),
122
+ ]),
123
+ ].filter((f) => tree.exists(f));
124
+ });
125
+ /**
126
+ * Returns the list of project files
127
+ */
128
+ const getCandidateProjectFilesForHeader = (tree, config) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
129
+ var _a;
130
+ // Prefer, if possible, to treat all non gitignored files as our candidate set such that we honour users .gitignore files
131
+ // If we're not in a git repo, fall back to everything and rely on the user configuring exclusions below
132
+ const projectFiles = tree.exists('.git')
133
+ ? (0, git_1.getGitIncludedFiles)(tree)
134
+ : yield getAllFilesInTree(tree);
135
+ // Remove any files that were excluded in the config
136
+ const ignoredProjectFiles = new Set(((_a = config.exclude) !== null && _a !== void 0 ? _a : []).flatMap((pattern) => minimatch_1.minimatch.match(projectFiles, pattern)));
137
+ return projectFiles.filter((file) => !ignoredProjectFiles.has(file));
138
+ });
139
+ /**
140
+ * Renders a header with the given format
141
+ */
142
+ const renderHeader = (contentLines, format) => {
143
+ return `${format.blockStart ? `${format.blockStart}\n` : ''}${contentLines.map((line) => { var _a, _b; return `${(_a = format.lineStart) !== null && _a !== void 0 ? _a : ''}${line}${(_b = format.lineEnd) !== null && _b !== void 0 ? _b : ''}`; }).join('\n')}${format.blockEnd ? `\n${format.blockEnd}` : ''}`;
144
+ };
145
+ /**
146
+ * Validates header format to ensure it produces a valid comment
147
+ */
148
+ const validateFormat = (fileExtension, syntax, format, contentLines) => {
149
+ const blockStartOpensBlockComment = format.blockStart &&
150
+ syntax.block &&
151
+ format.blockStart.startsWith(syntax.block.start);
152
+ const blockEndClosesBlockComment = format.blockEnd &&
153
+ syntax.block &&
154
+ format.blockEnd.endsWith(syntax.block.end);
155
+ // Block start must start with the block start or line comment
156
+ const validBlockStart = !format.blockStart ||
157
+ blockStartOpensBlockComment ||
158
+ (syntax.line && format.blockStart.startsWith(syntax.line));
159
+ // Block end must end with the block end, or begin with the line comment
160
+ const validBlockEnd = !format.blockEnd ||
161
+ blockEndClosesBlockComment ||
162
+ (syntax.line && format.blockEnd.startsWith(syntax.line));
163
+ // Lines must start with the line comment syntax, unless within a block comment
164
+ const validLineStart = !format.lineStart ||
165
+ (syntax.line && format.lineStart.startsWith(syntax.line)) ||
166
+ (blockStartOpensBlockComment && blockEndClosesBlockComment);
167
+ if (!validLineStart || !validBlockStart || !validBlockEnd) {
168
+ throw new Error(`Provided format for ${fileExtension} file would generate invalid comment syntax. Configured syntax for ${fileExtension} is ${JSON.stringify(syntax, null, 2)}.`);
169
+ }
170
+ if (blockStartOpensBlockComment && !blockEndClosesBlockComment) {
171
+ throw new Error(`Provided format for ${fileExtension} file opens a block comment with "${syntax.block.start}" in blockStart but does not close it with "${syntax.block.end}" in blockEnd`);
172
+ }
173
+ if (blockStartOpensBlockComment &&
174
+ contentLines.some((line) => line.includes(syntax.block.end))) {
175
+ throw new Error(`Provided license content would close a block comment early and cause a syntax error! Please remove "${syntax.block.end}" from your license text.`);
176
+ }
177
+ if (blockStartOpensBlockComment && blockEndClosesBlockComment) {
178
+ if (format.blockEnd.lastIndexOf(syntax.block.end) !==
179
+ format.blockEnd.indexOf(syntax.block.end)) {
180
+ throw new Error(`Provided format for ${fileExtension} file may cause syntax errors due to closing a block comment multiple times with "${syntax.block.end}" in blockEnd`);
181
+ }
182
+ if (format.blockStart.includes(syntax.block.end)) {
183
+ throw new Error(`Provided format for ${fileExtension} file may cause syntax errors since it closes the block comment with "${syntax.block.end}" in blockStart`);
184
+ }
185
+ }
186
+ };
187
+ /**
188
+ * Parse the hashbang, header and body from a file.
189
+ * The header is the first block comment, or consecutive series of line comments found in the file, after the hashbang
190
+ */
191
+ const parseFile = (content, syntax) => {
192
+ const lines = content.split('\n');
193
+ let i = 0;
194
+ // Hashbangs must always go first, so extract this if it exists
195
+ const hashbangLines = [];
196
+ for (; i < lines.length; i++) {
197
+ if (hashbangLines.length === 0) {
198
+ if (lines[i].startsWith('#!')) {
199
+ hashbangLines.push(lines[i]);
200
+ }
201
+ else {
202
+ break;
203
+ }
204
+ }
205
+ else {
206
+ if (lines[i].trim().length === 0) {
207
+ // Preserve any empty lines following the hashbang
208
+ hashbangLines.push(lines[i]);
209
+ }
210
+ else {
211
+ break;
212
+ }
213
+ }
214
+ }
215
+ // After the hashbang, consume the next comment which follows.
216
+ // This could either be all lines of a block comment, or all consecutive line comments until a non line-comment is seen
217
+ const headerLines = [];
218
+ let withinBlockComment = false;
219
+ let withinLineCommentSeries = false;
220
+ for (; i < lines.length; i++) {
221
+ const trimmedLine = lines[i].trim();
222
+ if (syntax.block &&
223
+ trimmedLine.endsWith(syntax.block.end) &&
224
+ !withinLineCommentSeries) {
225
+ // Comment ends with the block end, so we've completed the header and therefore break out of the loop
226
+ headerLines.push(lines[i]);
227
+ i++; // Increment here to ensure we point to the next line for the body
228
+ break;
229
+ }
230
+ else if (syntax.block &&
231
+ trimmedLine.startsWith(syntax.block.start) &&
232
+ !withinLineCommentSeries) {
233
+ // Line begins a comment block (without also ending it on the same line), so start consuming the block
234
+ withinBlockComment = true;
235
+ headerLines.push(lines[i]);
236
+ }
237
+ else if (withinBlockComment) {
238
+ // We haven't yet closed the block comment, so consume this line
239
+ headerLines.push(lines[i]);
240
+ }
241
+ else if (syntax.line && trimmedLine.startsWith(syntax.line)) {
242
+ // Line starts with the line comment syntax, so consume it
243
+ withinLineCommentSeries = true;
244
+ headerLines.push(lines[i]);
245
+ }
246
+ else {
247
+ break;
248
+ }
249
+ }
250
+ // Body of the file is the rest
251
+ const bodyLines = lines.slice(i);
252
+ return {
253
+ hashbang: hashbangLines.join('\n'),
254
+ header: headerLines.join('\n'),
255
+ body: bodyLines.join('\n'),
256
+ };
257
+ };
258
+ /**
259
+ * Add a header to the given file according to the header content and license config
260
+ * Returns true if the header was added/updated, and false otherwise.
261
+ */
262
+ const addHeader = (tree, file, contentLines, config, format) => {
263
+ var _a, _b;
264
+ const fileName = (0, path_1.basename)(file);
265
+ const fileNameParts = fileName.split('.');
266
+ const fileExtension = fileNameParts[fileNameParts.length - 1];
267
+ const syntax = (_b = ((_a = config.commentSyntax) !== null && _a !== void 0 ? _a : {})[fileExtension]) !== null && _b !== void 0 ? _b : config_1.LANGUAGE_COMMENT_SYNTAX[fileExtension];
268
+ if (!syntax) {
269
+ throw new Error(`Unknown file extension ${fileExtension}. Please configure commentSyntax in ${utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME}, eg:
270
+
271
+ export default {
272
+ license: {
273
+ header: {
274
+ ...
275
+ commentSyntax: {
276
+ ${fileExtension}: {
277
+ line: "//",
278
+ block: { start: "/*", end: "*/" }
279
+ }
280
+ }
281
+ }
282
+ }
283
+ } satisfies AwsNxPluginConfig;
284
+ `);
285
+ }
286
+ // Check that we would render a valid comment
287
+ validateFormat(fileExtension, syntax, format, contentLines);
288
+ const existingContent = tree.read(file, 'utf-8');
289
+ const { hashbang, body } = parseFile(existingContent, syntax);
290
+ const newContent = [
291
+ ...(hashbang ? [hashbang] : []),
292
+ renderHeader(contentLines, format),
293
+ body,
294
+ ].join('\n');
295
+ // Sanity check that we wouldn't edit the hashbang or body, only the header
296
+ const { hashbang: newHashbang, body: newBody } = parseFile(newContent, syntax);
297
+ if (hashbang !== newHashbang || body !== newBody) {
298
+ throw new Error(`The license header content, or format for ${fileExtension} files would produce a header that cannot be safely replaced. Please revise license content and format in ${utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME}`);
299
+ }
300
+ if (newContent !== existingContent) {
301
+ tree.write(file, newContent);
302
+ return true;
303
+ }
304
+ return false;
305
+ };
306
+ exports.default = licenseSyncGenerator;
307
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/license/sync/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "cli": "nx",
4
+ "$id": "license-headers",
5
+ "title": "Sync generator for adding license headers to source code",
6
+ "type": "object",
7
+ "properties": {},
8
+ "required": []
9
+ }
@@ -12,7 +12,7 @@ const tsquery_1 = require("@phenomnomnominal/tsquery");
12
12
  const typescript_1 = require("typescript");
13
13
  const ast_1 = require("../../utils/ast");
14
14
  const configureEslint = (tree) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
15
- var _a, _b, _c;
15
+ var _a, _b, _c, _d;
16
16
  // Configure the lint task
17
17
  let nxJson = (0, devkit_1.readNxJson)(tree);
18
18
  if (!((_a = nxJson.plugins) === null || _a === void 0 ? void 0 : _a.filter((e) => typeof e !== 'string').some((e) => e.plugin === '@nx/eslint/plugin'))) {
@@ -55,19 +55,15 @@ const configureEslint = (tree) => tslib_1.__awaiter(void 0, void 0, void 0, func
55
55
  tree.write(eslintConfigPath, updatedContent.getFullText());
56
56
  }
57
57
  nxJson = (0, devkit_1.readNxJson)(tree);
58
- (0, devkit_1.updateNxJson)(tree, Object.assign(Object.assign({}, nxJson), { targetDefaults: Object.assign(Object.assign({}, ((_c = nxJson.targetDefaults) !== null && _c !== void 0 ? _c : {})), { lint: {
59
- cache: true,
60
- configurations: {
58
+ (0, devkit_1.updateNxJson)(tree, Object.assign(Object.assign({}, nxJson), { targetDefaults: Object.assign(Object.assign({}, ((_c = nxJson.targetDefaults) !== null && _c !== void 0 ? _c : {})), { lint: Object.assign(Object.assign({}, (_d = nxJson.targetDefaults) === null || _d === void 0 ? void 0 : _d.lint), { cache: true, configurations: {
61
59
  fix: {
62
60
  fix: true,
63
61
  },
64
- },
65
- inputs: [
62
+ }, inputs: [
66
63
  'default',
67
64
  '{workspaceRoot}/eslint.config.mjs',
68
65
  '{projectRoot}/eslint.config.mjs',
69
- ],
70
- } }) }));
66
+ ] }) }) }));
71
67
  }
72
68
  });
73
69
  exports.configureEslint = configureEslint;
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/eslint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/eslint.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,14 @@
4
4
  */
5
5
  import { Tree } from '@nx/devkit';
6
6
  import { NodeTransformer } from '@phenomnomnominal/tsquery';
7
- import { JsxChild, JsxClosingElement, JsxOpeningElement } from 'typescript';
7
+ import { JsxChild, JsxClosingElement, JsxOpeningElement, Node } from 'typescript';
8
8
  export declare const destructuredImport: (tree: Tree, filePath: string, variableNames: string[], from: string) => string;
9
9
  export declare const singleImport: (tree: Tree, filePath: string, variableName: string, from: string) => string;
10
10
  export declare const addStarExport: (tree: Tree, filePath: string, from: string) => void;
11
11
  export declare const replace: (tree: Tree, filePath: string, selector: string, transformer: NodeTransformer, errorIfNoMatches?: boolean) => void;
12
12
  export declare const createJsxElementFromIdentifier: (identifier: string, children: readonly JsxChild[]) => import("typescript").JsxElement;
13
13
  export declare const createJsxElement: (openingElement: JsxOpeningElement, children: readonly JsxChild[], closingElement: JsxClosingElement) => import("typescript").JsxElement;
14
+ /**
15
+ * Convert a given json object to its AST representation
16
+ */
17
+ export declare const jsonToAst: (obj: unknown) => Node;
package/src/utils/ast.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createJsxElement = exports.createJsxElementFromIdentifier = exports.replace = exports.addStarExport = exports.singleImport = exports.destructuredImport = void 0;
3
+ exports.jsonToAst = exports.createJsxElement = exports.createJsxElementFromIdentifier = exports.replace = exports.addStarExport = exports.singleImport = exports.destructuredImport = void 0;
4
4
  const tsquery_1 = require("@phenomnomnominal/tsquery");
5
5
  const typescript_1 = require("typescript");
6
6
  const assertFilePath = (tree, filePath) => {
@@ -99,4 +99,38 @@ const createJsxElementFromIdentifier = (identifier, children) => typescript_1.fa
99
99
  exports.createJsxElementFromIdentifier = createJsxElementFromIdentifier;
100
100
  const createJsxElement = (openingElement, children, closingElement) => typescript_1.factory.createJsxElement(openingElement, children, closingElement);
101
101
  exports.createJsxElement = createJsxElement;
102
+ /**
103
+ * Convert a given json object to its AST representation
104
+ */
105
+ const jsonToAst = (obj) => {
106
+ if (obj === null) {
107
+ return typescript_1.factory.createNull();
108
+ }
109
+ if (obj === undefined) {
110
+ return typescript_1.factory.createIdentifier('undefined');
111
+ }
112
+ if (typeof obj === 'string') {
113
+ return typescript_1.factory.createStringLiteral(obj);
114
+ }
115
+ if (typeof obj === 'number') {
116
+ return typescript_1.factory.createNumericLiteral(obj);
117
+ }
118
+ if (typeof obj === 'boolean') {
119
+ return obj ? typescript_1.factory.createTrue() : typescript_1.factory.createFalse();
120
+ }
121
+ if (Array.isArray(obj)) {
122
+ return typescript_1.factory.createArrayLiteralExpression(obj.map((item) => (0, exports.jsonToAst)(item)));
123
+ }
124
+ if (typeof obj === 'object') {
125
+ return typescript_1.factory.createObjectLiteralExpression(Object.entries(obj).map(([key, value]) => {
126
+ // Check if the key is a valid identifier
127
+ const isValidIdentifier = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key);
128
+ return typescript_1.factory.createPropertyAssignment(isValidIdentifier
129
+ ? typescript_1.factory.createIdentifier(key)
130
+ : typescript_1.factory.createStringLiteral(key), (0, exports.jsonToAst)(value));
131
+ }));
132
+ }
133
+ throw new Error(`Unsupported type: ${typeof obj}`);
134
+ };
135
+ exports.jsonToAst = jsonToAst;
102
136
  //# sourceMappingURL=ast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`config utils > should update user config 1`] = `
4
+ "import { AwsNxPluginConfig } from '@aws/nx-plugin';
5
+ export default {
6
+ license: {
7
+ header: {
8
+ content: { lines: ['Test Copyright Header'] },
9
+ format: {
10
+ '**/*.ts': { blockStart: '/**', lineStart: ' * ', blockEnd: ' */' },
11
+ },
12
+ },
13
+ },
14
+ } satisfies AwsNxPluginConfig;
15
+ "
16
+ `;
@@ -0,0 +1,5 @@
1
+ import { AwsNxPluginConfig } from '@aws/nx-plugin';
2
+
3
+ export default {
4
+
5
+ } satisfies AwsNxPluginConfig;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { LicenseConfig } from '../../license/config-types';
6
+ export * from '../../license/config-types';
7
+ /**
8
+ * Configuration for the nx plugin
9
+ */
10
+ export interface AwsNxPluginConfig {
11
+ /**
12
+ * Configuration for the license sync generator
13
+ */
14
+ license?: LicenseConfig;
15
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("../../license/config-types"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/config/index.ts"],"names":[],"mappings":";;;AAKA,qEAA2C"}
@@ -0,0 +1,20 @@
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 { AwsNxPluginConfig } from '.';
7
+ export declare const AWS_NX_PLUGIN_CONFIG_FILE_NAME = "aws-nx-plugin.config.mts";
8
+ /**
9
+ * Ensure that the config file exists
10
+ */
11
+ export declare const ensureAwsNxPluginConfig: (tree: Tree) => Promise<AwsNxPluginConfig>;
12
+ /**
13
+ * Read config from the aws nx plugin configuration file
14
+ */
15
+ export declare const readAwsNxPluginConfig: (tree: Tree) => Promise<AwsNxPluginConfig | undefined>;
16
+ /**
17
+ * Update the aws nx plugin config file.
18
+ * Undefined top level keys in the config update will be untouched, otherwise config is replaced
19
+ */
20
+ export declare const updateAwsNxPluginConfig: (tree: Tree, configUpdate: Partial<AwsNxPluginConfig>) => Promise<void>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateAwsNxPluginConfig = exports.readAwsNxPluginConfig = exports.ensureAwsNxPluginConfig = exports.AWS_NX_PLUGIN_CONFIG_FILE_NAME = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /**
6
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ * SPDX-License-Identifier: Apache-2.0
8
+ */
9
+ const devkit_1 = require("@nx/devkit");
10
+ const ts = tslib_1.__importStar(require("typescript"));
11
+ const ast_1 = require("../ast");
12
+ const typescript_1 = require("typescript");
13
+ const format_1 = require("../format");
14
+ const js_1 = require("../js");
15
+ exports.AWS_NX_PLUGIN_CONFIG_FILE_NAME = 'aws-nx-plugin.config.mts';
16
+ /**
17
+ * Ensure that the config file exists
18
+ */
19
+ const ensureAwsNxPluginConfig = (tree) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
20
+ if (!tree.exists(exports.AWS_NX_PLUGIN_CONFIG_FILE_NAME)) {
21
+ // Create an empty config file if it doesn't already exist
22
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), '.', {});
23
+ }
24
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
25
+ return yield (0, exports.readAwsNxPluginConfig)(tree);
26
+ });
27
+ exports.ensureAwsNxPluginConfig = ensureAwsNxPluginConfig;
28
+ /**
29
+ * Read config from the aws nx plugin configuration file
30
+ */
31
+ const readAwsNxPluginConfig = (tree) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
32
+ if (!tree.exists(exports.AWS_NX_PLUGIN_CONFIG_FILE_NAME)) {
33
+ return undefined;
34
+ }
35
+ const configTs = tree.read(exports.AWS_NX_PLUGIN_CONFIG_FILE_NAME, 'utf-8');
36
+ return yield (0, js_1.importTypeScriptModule)(configTs);
37
+ });
38
+ exports.readAwsNxPluginConfig = readAwsNxPluginConfig;
39
+ /**
40
+ * Update the aws nx plugin config file.
41
+ * Undefined top level keys in the config update will be untouched, otherwise config is replaced
42
+ */
43
+ const updateAwsNxPluginConfig = (tree, configUpdate) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
44
+ // Replace the default export
45
+ (0, ast_1.replace)(tree, exports.AWS_NX_PLUGIN_CONFIG_FILE_NAME, 'ExportAssignment ObjectLiteralExpression', (node) => {
46
+ const existingObj = node;
47
+ const existingProps = new Map();
48
+ existingObj.properties.forEach((prop) => {
49
+ if (ts.isPropertyAssignment(prop)) {
50
+ existingProps.set(prop.name.getText(), prop);
51
+ }
52
+ });
53
+ const properties = [];
54
+ for (const [key, value] of Object.entries(configUpdate)) {
55
+ properties.push(typescript_1.factory.createPropertyAssignment(key, (0, ast_1.jsonToAst)(value)));
56
+ }
57
+ existingObj.properties.forEach((prop) => {
58
+ if (ts.isPropertyAssignment(prop)) {
59
+ const name = prop.name.getText();
60
+ if (configUpdate[name] === undefined) {
61
+ properties.push(prop);
62
+ }
63
+ }
64
+ });
65
+ return typescript_1.factory.createObjectLiteralExpression(properties, true);
66
+ });
67
+ // Format the config nicely after an update
68
+ yield (0, format_1.formatFilesInSubtree)(tree, exports.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
69
+ });
70
+ exports.updateAwsNxPluginConfig = updateAwsNxPluginConfig;
71
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/config/utils.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAAoE;AAEpE,uDAAiC;AACjC,gCAA4C;AAC5C,2CAAqC;AACrC,sCAAiD;AACjD,8BAA+C;AAElC,QAAA,8BAA8B,GAAG,0BAA0B,CAAC;AAEzE;;GAEG;AACI,MAAM,uBAAuB,GAAG,CACrC,IAAU,EACkB,EAAE;IAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,sCAA8B,CAAC,EAAE,CAAC;QACjD,0DAA0D;QAC1D,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,oEAAoE;IACpE,OAAO,MAAM,IAAA,6BAAqB,EAAC,IAAI,CAAE,CAAC;AAC5C,CAAC,CAAA,CAAC;AATW,QAAA,uBAAuB,2BASlC;AAEF;;GAEG;AACI,MAAM,qBAAqB,GAAG,CACnC,IAAU,EAC8B,EAAE;IAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,sCAA8B,CAAC,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,sCAA8B,EAAE,OAAO,CAAC,CAAC;IACpE,OAAO,MAAM,IAAA,2BAAsB,EAAC,QAAQ,CAAC,CAAC;AAChD,CAAC,CAAA,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEF;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CACrC,IAAU,EACV,YAAwC,EACzB,EAAE;IACjB,6BAA6B;IAC7B,IAAA,aAAO,EACL,IAAI,EACJ,sCAA8B,EAC9B,0CAA0C,EAC1C,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,WAAW,GAAG,IAAkC,CAAC;QAEvD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAiC,CAAC;QAC/D,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAA4B,EAAE,CAAC;QAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,UAAU,CAAC,IAAI,CACb,oBAAO,CAAC,wBAAwB,CAC9B,GAAG,EACH,IAAA,eAAS,EAAC,KAAK,CAAkB,CAClC,CACF,CAAC;QACJ,CAAC;QAED,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,oBAAO,CAAC,6BAA6B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC,CACF,CAAC;IAEF,2CAA2C;IAC3C,MAAM,IAAA,6BAAoB,EAAC,IAAI,EAAE,sCAA8B,CAAC,CAAC;AACnE,CAAC,CAAA,CAAC;AA7CW,QAAA,uBAAuB,2BA6ClC"}
@@ -0,0 +1,9 @@
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
+ /**
7
+ * Returns all files from the tree root that are not gitignored (both tracked and untracked)
8
+ */
9
+ export declare const getGitIncludedFiles: (tree: Tree) => string[];