@aws/nx-plugin 0.2.0 → 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 +1470 -3006
- package/generators.json +11 -6
- package/package.json +16 -13
- package/src/cloudscape-website/app/__snapshots__/generator.spec.ts.snap +15 -19
- package/src/cloudscape-website/app/files/common/constructs/src/core/static-website.ts.template +5 -0
- package/src/cloudscape-website/app/generator.js +29 -23
- package/src/cloudscape-website/app/generator.js.map +1 -1
- package/src/cloudscape-website/app/schema.d.ts +0 -1
- package/src/cloudscape-website/cognito-auth/__snapshots__/generator.spec.ts.snap +13 -11
- package/src/cloudscape-website/cognito-auth/generator.js +2 -2
- package/src/cloudscape-website/cognito-auth/generator.js.map +1 -1
- package/src/cloudscape-website/runtime-config/__snapshots__/generator.spec.ts.snap +9 -2
- package/src/cloudscape-website/runtime-config/generator.js +1 -1
- package/src/cloudscape-website/runtime-config/generator.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +4 -0
- package/src/index.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +78 -61
- package/src/infra/app/files/common/constructs/src/core/cfn-guard.ts.template +2 -2
- package/src/infra/app/generator.js +20 -5
- package/src/infra/app/generator.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/trpc/backend/__snapshots__/generator.spec.ts.snap +13 -10
- package/src/trpc/backend/generator.js +2 -2
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/trpc/react/generator.js +2 -2
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +47 -93
- package/src/ts/lib/eslint.d.ts +1 -2
- package/src/ts/lib/eslint.js +26 -37
- package/src/ts/lib/eslint.js.map +1 -1
- package/src/ts/lib/generator.js +34 -2
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/schema.d.ts +0 -1
- package/src/ts/lib/schema.json +0 -6
- package/src/ts/lib/ts-project-utils.js +3 -18
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.js +2 -4
- package/src/ts/lib/vitest.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/files/common/types/src/runtime-config.ts.template +1 -0
- package/src/utils/format.d.ts +1 -1
- package/src/utils/format.js +2 -2
- package/src/utils/format.js.map +1 -1
- 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
- package/src/utils/shared-constructs.js +2 -2
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/test.d.ts +2 -0
- package/src/utils/test.js +19 -0
- package/src/utils/test.js.map +1 -0
- package/src/ts/cjs-to-esm/generator.d.ts +0 -12
- package/src/ts/cjs-to-esm/generator.js +0 -189
- package/src/ts/cjs-to-esm/generator.js.map +0 -1
- package/src/ts/cjs-to-esm/schema.d.ts +0 -9
- package/src/ts/cjs-to-esm/schema.json +0 -28
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
export type SPDXLicenseIdentifier = 'Apache-2.0' | 'MIT' | 'ASL';
|
|
6
|
+
|
|
7
|
+
export interface LicenseGeneratorSchema {
|
|
8
|
+
/**
|
|
9
|
+
* SPDX License Identifier
|
|
10
|
+
*/
|
|
11
|
+
license: SPDXLicenseIdentifier;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Copyright holder name
|
|
15
|
+
*/
|
|
16
|
+
copyrightHolder: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"cli": "nx",
|
|
4
|
+
"$id": "License",
|
|
5
|
+
"title": "Add LICENSE files, and configure source code license headers",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"license": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "SPDX License Identifier",
|
|
11
|
+
"enum": ["Apache-2.0", "MIT", "ASL"],
|
|
12
|
+
"default": "Apache-2.0",
|
|
13
|
+
"x-priority": "important"
|
|
14
|
+
},
|
|
15
|
+
"copyrightHolder": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Copyright holder name",
|
|
18
|
+
"default": "Amazon.com, Inc. or its affiliates",
|
|
19
|
+
"x-priority": "important"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"required": []
|
|
23
|
+
}
|
|
@@ -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
|
+
import { SyncGeneratorResult } from 'nx/src/utils/sync-generators';
|
|
7
|
+
export declare const SYNC_GENERATOR_NAME = "@aws/nx-plugin:license#sync";
|
|
8
|
+
export declare function licenseSyncGenerator(tree: Tree): Promise<SyncGeneratorResult>;
|
|
9
|
+
export default licenseSyncGenerator;
|
|
@@ -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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"}
|
|
@@ -16,7 +16,10 @@ export type IEcho = z.TypeOf<typeof EchoSchema>;
|
|
|
16
16
|
"
|
|
17
17
|
`;
|
|
18
18
|
|
|
19
|
-
exports[`trpc backend generator > should set up shared constructs > index.ts 1`] = `
|
|
19
|
+
exports[`trpc backend generator > should set up shared constructs > index.ts 1`] = `
|
|
20
|
+
"export * from './test-api.js';
|
|
21
|
+
"
|
|
22
|
+
`;
|
|
20
23
|
|
|
21
24
|
exports[`trpc backend generator > should set up shared constructs > test-api.ts 1`] = `
|
|
22
25
|
"import { Construct } from 'constructs';
|
|
@@ -27,13 +30,13 @@ import { HttpIamAuthorizer } from 'aws-cdk-lib/aws-apigatewayv2-authorizers';
|
|
|
27
30
|
export class TestApi extends TrpcApi {
|
|
28
31
|
constructor(scope: Construct, id: string) {
|
|
29
32
|
super(scope, id, {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
defaultAuthorizer: new HttpIamAuthorizer(),
|
|
34
|
+
handlerFilePath: url.fileURLToPath(
|
|
35
|
+
new URL(
|
|
36
|
+
'../../../../../../apps/test-api/backend/src/lambdas/router.ts',
|
|
37
|
+
import.meta.url,
|
|
38
|
+
),
|
|
39
|
+
),
|
|
37
40
|
});
|
|
38
41
|
}
|
|
39
42
|
}
|
|
@@ -104,7 +107,7 @@ export class TrpcApi extends Construct {
|
|
|
104
107
|
],
|
|
105
108
|
integration: new HttpLambdaIntegration(
|
|
106
109
|
'RouterIntegration',
|
|
107
|
-
routerFunction
|
|
110
|
+
routerFunction,
|
|
108
111
|
),
|
|
109
112
|
});
|
|
110
113
|
|
|
@@ -122,7 +125,7 @@ export class TrpcApi extends Construct {
|
|
|
122
125
|
effect: Effect.ALLOW,
|
|
123
126
|
actions: ['execute-api:Invoke'],
|
|
124
127
|
resources: [this.api.arnForExecuteApi('*', '/*', '*')],
|
|
125
|
-
})
|
|
128
|
+
}),
|
|
126
129
|
);
|
|
127
130
|
}
|
|
128
131
|
}
|
|
@@ -13,9 +13,9 @@ const generator_1 = tslib_1.__importDefault(require("../../ts/lib/generator"));
|
|
|
13
13
|
const npm_scope_1 = require("../../utils/npm-scope");
|
|
14
14
|
const versions_1 = require("../../utils/versions");
|
|
15
15
|
const paths_1 = require("../../utils/paths");
|
|
16
|
-
const format_1 = require("../../utils/format");
|
|
17
16
|
const names_1 = require("../../utils/names");
|
|
18
17
|
const ast_1 = require("../../utils/ast");
|
|
18
|
+
const format_1 = require("../../utils/format");
|
|
19
19
|
function trpcBackendGenerator(tree, options) {
|
|
20
20
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
21
|
var _a;
|
|
@@ -84,7 +84,7 @@ function trpcBackendGenerator(tree, options) {
|
|
|
84
84
|
]), (0, versions_1.withVersions)(['@types/aws-lambda']));
|
|
85
85
|
tree.delete((0, devkit_1.joinPathFragments)(backendRoot, 'package.json'));
|
|
86
86
|
tree.delete((0, devkit_1.joinPathFragments)(schemaRoot, 'package.json'));
|
|
87
|
-
yield (0, format_1.formatFilesInSubtree)(tree
|
|
87
|
+
yield (0, format_1.formatFilesInSubtree)(tree);
|
|
88
88
|
return () => {
|
|
89
89
|
(0, devkit_1.installPackagesTask)(tree);
|
|
90
90
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/backend/generator.ts"],"names":[],"mappings":";;AA6BA,oDAqLC;;AAlND;;;GAGG;AACH,uCAUoB;AAEpB,gFAAyC;AACzC,qEAIuC;AACvC,+EAAoD;AACpD,qDAAwE;AACxE,mDAAoD;AACpD,6CAA0D;AAC1D
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/backend/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export interface IsolatedTrpcClientProviderProps extends PropsWithChildren {
|
|
|
20
20
|
|
|
21
21
|
export const createIsolatedTrpcClientProvider = <
|
|
22
22
|
TAppRouter extends AnyTRPCRouter,
|
|
23
|
-
TContext
|
|
23
|
+
TContext,
|
|
24
24
|
>() => {
|
|
25
25
|
const isolatedTrpcContext = createContext(null as any);
|
|
26
26
|
const trpc = createTRPCReact<TAppRouter, TContext>({
|
|
@@ -13,9 +13,9 @@ const generator_1 = require("../../cloudscape-website/runtime-config/generator")
|
|
|
13
13
|
const shared_constructs_1 = require("../../utils/shared-constructs");
|
|
14
14
|
const npm_scope_1 = require("../../utils/npm-scope");
|
|
15
15
|
const versions_1 = require("../../utils/versions");
|
|
16
|
-
const format_1 = require("../../utils/format");
|
|
17
16
|
const ast_1 = require("../../utils/ast");
|
|
18
17
|
const names_1 = require("../../utils/names");
|
|
18
|
+
const format_1 = require("../../utils/format");
|
|
19
19
|
function reactGenerator(tree, options) {
|
|
20
20
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
21
|
var _a;
|
|
@@ -157,7 +157,7 @@ function reactGenerator(tree, options) {
|
|
|
157
157
|
? ['oidc-client-ts', 'react-oidc-context']
|
|
158
158
|
: []),
|
|
159
159
|
]), {});
|
|
160
|
-
yield (0, format_1.formatFilesInSubtree)(tree
|
|
160
|
+
yield (0, format_1.formatFilesInSubtree)(tree);
|
|
161
161
|
return () => {
|
|
162
162
|
(0, devkit_1.installPackagesTask)(tree);
|
|
163
163
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":";;AAiDA,wCA2VC;;AA5YD;;;GAGG;AACH,uCAQoB;AAEpB,2CAkBoB;AACpB,uDAAyD;AACzD,iFAA2F;AAC3F,qEAGuC;AACvC,qDAAqD;AACrD,mDAAoD;AACpD
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":"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"}
|