@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.
- package/LICENSE-THIRD-PARTY +22 -1
- package/generators.json +11 -0
- package/package.json +5 -2
- package/src/index.d.ts +1 -0
- package/src/index.js +4 -0
- package/src/index.js.map +1 -1
- package/src/license/README.md +255 -0
- package/src/license/__snapshots__/config.spec.ts.snap +89 -0
- package/src/license/config-types.d.ts +107 -0
- package/src/license/config-types.js +3 -0
- package/src/license/config-types.js.map +1 -0
- package/src/license/config.d.ts +25 -0
- package/src/license/config.js +174 -0
- package/src/license/config.js.map +1 -0
- package/src/license/files/licenses/ASL/LICENSE.template +96 -0
- package/src/license/files/licenses/Apache-2.0/LICENSE.template +175 -0
- package/src/license/files/licenses/MIT/LICENSE.template +21 -0
- package/src/license/generator.d.ts +8 -0
- package/src/license/generator.js +32 -0
- package/src/license/generator.js.map +1 -0
- package/src/license/schema.d.ts +17 -0
- package/src/license/schema.json +23 -0
- package/src/license/sync/generator.d.ts +9 -0
- package/src/license/sync/generator.js +307 -0
- package/src/license/sync/generator.js.map +1 -0
- package/src/license/sync/schema.json +9 -0
- package/src/ts/lib/eslint.js +4 -8
- package/src/ts/lib/eslint.js.map +1 -1
- package/src/utils/ast.d.ts +5 -1
- package/src/utils/ast.js +35 -1
- package/src/utils/ast.js.map +1 -1
- package/src/utils/config/__snapshots__/utils.spec.ts.snap +16 -0
- package/src/utils/config/files/aws-nx-plugin.config.mts.template +5 -0
- package/src/utils/config/index.d.ts +15 -0
- package/src/utils/config/index.js +5 -0
- package/src/utils/config/index.js.map +1 -0
- package/src/utils/config/utils.d.ts +20 -0
- package/src/utils/config/utils.js +71 -0
- package/src/utils/config/utils.js.map +1 -0
- package/src/utils/git.d.ts +9 -0
- package/src/utils/git.js +27 -0
- package/src/utils/git.js.map +1 -0
- package/src/utils/js.d.ts +8 -0
- package/src/utils/js.js +34 -0
- 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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"}
|
package/src/ts/lib/eslint.js
CHANGED
|
@@ -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;
|
package/src/ts/lib/eslint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/eslint.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAKoB;AACpB,mDAAoD;AACpD,uDAAyD;AACzD,2CAA6D;AAC7D,yCAA+C;AACxC,MAAM,eAAe,GAAG,CAAO,IAAU,EAAE,EAAE;;IAClD,0BAA0B;IAC1B,IAAI,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAC9B,IACE,CAAC,CAAA,MAAA,MAAM,CAAC,OAAO,0CACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,EACpC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAA,EAChD,CAAC;QACD,IAAA,qBAAY,EAAC,IAAI,kCACZ,MAAM,KACT,OAAO,EAAE;gBACP,GAAG,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC;gBACzB;oBACE,MAAM,EAAE,mBAAmB;oBAC3B,OAAO,EAAE;wBACP,UAAU,EAAE,MAAM;qBACnB;iBACF;aACF,IACD,CAAC;IACL,CAAC;IACD,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF,IAAA,uBAAY,EAAC,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC,CACrD,CAAC;IACF,qCAAqC;IACrC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,mBAAmB,CAAC,CAAC;QAC5C,yBAAyB;QACzB,MAAM,cAAc,GAAG,iBAAO,CAAC,KAAK,CAClC,UAAU,EACV,kEAAkE,CACnE,CAAC;QACF,IAAI,cAAc,GAAG,UAAU,CAAC;QAChC,iCAAiC;QACjC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,cAAc,GAAG,IAAA,aAAG,EAClB,IAAA,kBAAY,EACV,IAAI,EACJ,gBAAgB,EAChB,iCAAiC,EACjC,oCAAoC,CACrC,CACF,CAAC;QACJ,CAAC;QACD,mEAAmE;QACnE,MAAM,cAAc,GAAG,iBAAO,CAAC,KAAK,CAClC,cAAc,EACd,8FAA8F,CAC/F,CAAC;QACF,mEAAmE;QACnE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,cAAc,GAAG,iBAAO,CAAC,GAAG,CAC1B,cAAc,EACd,2CAA2C,EAC3C,CAAC,IAA4B,EAAE,EAAE;gBAC/B,OAAO,oBAAO,CAAC,4BAA4B,CACzC;oBACE,oBAAO,CAAC,gBAAgB,CAAC,iCAAiC,CAAC;oBAC3D,GAAG,IAAI,CAAC,QAAQ;iBACjB,EACD,IAAI,CACL,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC;QACD,kCAAkC;QAClC,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAA,qBAAY,EAAC,IAAI,kCACZ,MAAM,KACT,cAAc,kCACT,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,EAAE,CAAC,KAChC,IAAI,
|
|
1
|
+
{"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/eslint.ts"],"names":[],"mappings":"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"}
|
package/src/utils/ast.d.ts
CHANGED
|
@@ -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
|
package/src/utils/ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/ast.ts"],"names":[],"mappings":";;;AAKA,uDAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/ast.ts"],"names":[],"mappings":";;;AAKA,uDAA0E;AAC1E,2CAUoB;AACpB,MAAM,cAAc,GAAG,CAAC,IAAU,EAAE,QAAgB,EAAE,EAAE;IACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC;AACK,MAAM,kBAAkB,GAAG,CAChC,IAAU,EACV,QAAgB,EAChB,aAAuB,EACvB,IAAY,EACJ,EAAE;IACV,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,aAAG,EAAC,QAAQ,CAAC,CAAC;IAChC,0EAA0E;IAC1E,MAAM,eAAe,GAAsB,iBAAO,CAAC,KAAK,CACtD,SAAS,EACT,2CAA2C,IAAI,iCAAiC,CACjF,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,eAAe,GAAG,IAAuB,CAAC;QAChD,OAAO,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC,CAAC,CACH,CAAC;IACF,iDAAiD;IACjD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE,CACP,CAAC,iBAAiB,CAAC,GAAG,CACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACrD,CACJ,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,kBAAkB,GAAG,oBAAO,CAAC,uBAAuB,CACxD,SAAS,EACT,oBAAO,CAAC,kBAAkB,CACxB,KAAK,EACL,SAAS,EACT,oBAAO,CAAC,kBAAkB,CAAC;QACzB,GAAG,eAAe;QAClB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO,oBAAO,CAAC,qBAAqB,CAClC,KAAK,EACL,KAAK,CAAC,CAAC,CAAC,oBAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAClD,oBAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,CACxC,CAAC;QACJ,CAAC,CAAC;KACH,CAAC,CACa,EACjB,oBAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CACxC,CAAC;IACF,MAAM,eAAe,GAAG,iBAAO;SAC5B,GAAG,CAAC,IAAA,aAAG,EAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,IAAgB,EAAE,EAAE;QACrD,uCACK,IAAI,KACP,UAAU,EAAE,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IACpD;IACJ,CAAC,CAAC;SACD,WAAW,EAAE,CAAC;IACjB,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AA7DW,QAAA,kBAAkB,sBA6D7B;AACK,MAAM,YAAY,GAAG,CAC1B,IAAU,EACV,QAAgB,EAChB,YAAoB,EACpB,IAAY,EACJ,EAAE;IACV,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,aAAG,EAAC,QAAQ,CAAC,CAAC;IAChC,qCAAqC;IACrC,MAAM,eAAe,GAAG,iBAAO,CAAC,KAAK,CACnC,SAAS,EACT,2CAA2C,IAAI,sCAAsC,YAAY,IAAI,CACtG,CAAC;IACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,iBAAiB,GAAG,oBAAO,CAAC,uBAAuB,CACvD,SAAS,EACT,oBAAO,CAAC,kBAAkB,CACxB,KAAK,EACL,oBAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,EACtC,SAAS,CACM,EACjB,oBAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAClC,CAAC;IACF,MAAM,eAAe,GAAG,iBAAO;SAC5B,GAAG,CAAC,IAAA,aAAG,EAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,IAAgB,EAAE,EAAE;QACrD,uCACK,IAAI,KACP,UAAU,EAAE,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IACnD;IACJ,CAAC,CAAC;SACD,WAAW,EAAE,CAAC;IACjB,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAtCW,QAAA,YAAY,gBAsCvB;AACK,MAAM,aAAa,GAAG,CAAC,IAAU,EAAE,QAAgB,EAAE,IAAY,EAAE,EAAE;IAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;QAChC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GACb,iBAAO,CAAC,KAAK,CACX,IAAA,aAAG,EAAC,aAAa,CAAC,EAClB,yCAAyC,IAAI,IAAI,CAClD,CAAC,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,iBAAiB,GAAG,oBAAO,CAAC,uBAAuB,CACvD,SAAS,EACT,SAAS,EACT,SAAS,EACT,oBAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAClC,CAAC;QACF,MAAM,oBAAoB,GAAG,iBAAO;aACjC,GAAG,CAAC,IAAA,aAAG,EAAC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,iCACxD,IAAI,KACP,UAAU,EAAE,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IACnD,CAAC;aACF,WAAW,EAAE,CAAC;QACjB,IAAI,aAAa,KAAK,oBAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,aAAa,iBA0BxB;AAEK,MAAM,OAAO,GAAG,CACrB,IAAU,EACV,QAAgB,EAChB,QAAgB,EAChB,WAA4B,EAC5B,gBAAgB,GAAG,IAAI,EACvB,EAAE;IACF,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9C,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,iBAAO,CAAC,KAAK,CAAC,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,iCAAiC,QAAQ,aAAa,QAAQ,EAAE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,iBAAO;SAC1B,GAAG,CAAC,IAAA,aAAG,EAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC;SACvC,WAAW,EAAE,CAAC;IACjB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC;AAvBW,QAAA,OAAO,WAuBlB;AACK,MAAM,8BAA8B,GAAG,CAC5C,UAAkB,EAClB,QAA6B,EAC7B,EAAE,CACF,oBAAO,CAAC,gBAAgB,CACtB,oBAAO,CAAC,uBAAuB,CAC7B,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,SAAS,EACT,oBAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAChC,EACD,QAAQ,EACR,oBAAO,CAAC,uBAAuB,CAAC,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CACtE,CAAC;AAZS,QAAA,8BAA8B,kCAYvC;AACG,MAAM,gBAAgB,GAAG,CAC9B,cAAiC,EACjC,QAA6B,EAC7B,cAAiC,EACjC,EAAE,CAAC,oBAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAJ3D,QAAA,gBAAgB,oBAI2C;AAExE;;GAEG;AACI,MAAM,SAAS,GAAG,CAAC,GAAY,EAAQ,EAAE;IAC9C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,oBAAO,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,oBAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,oBAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,oBAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,oBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,oBAAO,CAAC,WAAW,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,oBAAO,CAAC,4BAA4B,CACzC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,IAAI,CAAe,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,oBAAO,CAAC,6BAA6B,CAC1C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACvC,yCAAyC;YACzC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,oBAAO,CAAC,wBAAwB,CACrC,iBAAiB;gBACf,CAAC,CAAC,oBAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC;gBAC/B,CAAC,CAAC,oBAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,EACpC,IAAA,iBAAS,EAAC,KAAK,CAAe,CAC/B,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,GAAG,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC;AA3CW,QAAA,SAAS,aA2CpB"}
|
|
@@ -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,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 @@
|
|
|
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[];
|