@craft-ng/dev-tools 0.5.1-beta.0 → 0.6.0-beta.2
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/README.md +66 -0
- package/generators.json +26 -0
- package/package.json +18 -1
- package/src/bin/craft.d.ts +2 -0
- package/src/bin/craft.js +166 -0
- package/src/bin/craft.js.map +1 -0
- package/src/eslint-rules/craft-computed-name-match.cjs +8 -125
- package/src/eslint-rules/craft-method-name-match.cjs +8 -166
- package/src/eslint-rules/craft-name-match-utils.cjs +179 -0
- package/src/eslint-rules/craft-signal-source-name-match.cjs +8 -0
- package/src/eslint-rules/craft-source-name-match.cjs +8 -0
- package/src/eslint-rules/global-exception-registry-match.cjs +78 -13
- package/src/eslint-rules/index.cjs +8 -2
- package/src/eslint-rules/require-cascade-route-di-check.cjs +223 -0
- package/src/eslint-rules/require-primitive-generator-unwrap.cjs +267 -0
- package/src/generators/route/compat.d.ts +3 -0
- package/src/generators/route/compat.js +6 -0
- package/src/generators/route/compat.js.map +1 -0
- package/src/generators/route/generator.d.ts +31 -0
- package/src/generators/route/generator.js +434 -0
- package/src/generators/route/generator.js.map +1 -0
- package/src/generators/route/schema.json +50 -0
- package/src/generators/route/split-schema.json +19 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/scripts/primitives/migrate-primitive-generators.d.ts +27 -0
- package/src/scripts/primitives/migrate-primitive-generators.js +315 -0
- package/src/scripts/primitives/migrate-primitive-generators.js.map +1 -0
- package/src/scripts/primitives/migrate-primitive-generators.ts +402 -0
- package/src/scripts/primitives/migrate-primitives.js +36 -4
- package/src/scripts/primitives/migrate-primitives.js.map +1 -1
- package/src/scripts/primitives/migrate-primitives.spec.ts +43 -0
- package/src/scripts/primitives/migrate-primitives.ts +62 -4
- package/src/scripts/primitives/migration-diagnostic.d.ts +1 -1
- package/src/scripts/primitives/migration-diagnostic.ts +1 -0
- package/src/scripts/routes/migrate-routes.js +4 -4
- package/src/scripts/routes/migrate-routes.js.map +1 -1
- package/src/scripts/routes/migrate-routes.ts +4 -6
- package/src/scripts/routes/route-command.d.ts +75 -0
- package/src/scripts/routes/route-command.js +1187 -0
- package/src/scripts/routes/route-command.js.map +1 -0
- package/src/scripts/routes/route-command.spec.ts +553 -0
- package/src/scripts/routes/route-command.ts +1790 -0
- package/src/scripts/services/migrate-services.js +45 -11
- package/src/scripts/services/migrate-services.js.map +1 -1
- package/src/scripts/services/migrate-services.spec.ts +46 -4
- package/src/scripts/services/migrate-services.ts +64 -13
- package/src/scripts/services/migration-diagnostic.d.ts +1 -1
- package/src/scripts/services/migration-diagnostic.ts +1 -0
- package/src/eslint-rules/require-track-on-dependent-primitives.cjs +0 -219
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
|
+
import { existsSync } from 'node:fs';
|
|
4
|
+
import { basename, dirname, join, relative, resolve, sep } from 'node:path';
|
|
5
|
+
import { createInterface } from 'node:readline/promises';
|
|
6
|
+
import { promisify } from 'node:util';
|
|
7
|
+
import { getProjects, logger, names, readProjectConfiguration, } from '@nx/devkit';
|
|
8
|
+
import { wrapAngularDevkitSchematic } from '@nx/devkit/ngcli-adapter.js';
|
|
9
|
+
import { Project } from 'ts-morph';
|
|
10
|
+
import { findAngularDecoratedClass } from '../../scripts/angular-brand-codemod.js';
|
|
11
|
+
import { captureRouteEslintBaseline, listRouteCollections, runRouteAdd, runRouteSplit, validateRouteChangedFiles, } from '../../scripts/routes/route-command.js';
|
|
12
|
+
const execFileAsync = promisify(execFile);
|
|
13
|
+
export function routeGenerator(tree, options) {
|
|
14
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
const selected = selectAngularProject(tree, options.project);
|
|
17
|
+
const fileSystem = createTreeFileSystem(tree);
|
|
18
|
+
const componentBase = join((_a = selected.configuration.sourceRoot) !== null && _a !== void 0 ? _a : join(selected.configuration.root, 'src'), 'app');
|
|
19
|
+
const parent = yield resolveRouteParentOption(listRouteCollections(tree.root, selected.tsConfig, fileSystem), {
|
|
20
|
+
configuredParent: options.parent,
|
|
21
|
+
rootDir: tree.root,
|
|
22
|
+
routePath: options.path,
|
|
23
|
+
});
|
|
24
|
+
const target = yield resolveRouteTargetOptions(options, { componentBase });
|
|
25
|
+
const preview = yield runRouteAdd({
|
|
26
|
+
rootDir: tree.root,
|
|
27
|
+
project: selected.tsConfig,
|
|
28
|
+
path: options.path,
|
|
29
|
+
parent,
|
|
30
|
+
component: target.component,
|
|
31
|
+
createComponent: (_b = target.createComponent) === null || _b === void 0 ? void 0 : _b.name,
|
|
32
|
+
featureFile: options.featureFile,
|
|
33
|
+
redirectTo: target.redirectTo,
|
|
34
|
+
dryRun: true,
|
|
35
|
+
yes: true,
|
|
36
|
+
validate: false,
|
|
37
|
+
fileSystem,
|
|
38
|
+
log: () => undefined,
|
|
39
|
+
});
|
|
40
|
+
assertSuccessful(preview);
|
|
41
|
+
printGeneratorPlan(tree, preview, target.createComponent, componentBase);
|
|
42
|
+
if (!(yield confirmGeneratorPlan(options))) {
|
|
43
|
+
logger.info('Cancelled. No files changed.');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
let component = target.component;
|
|
47
|
+
if (target.createComponent) {
|
|
48
|
+
component = yield generateComponent(tree, selected.name, selected.configuration, target.createComponent);
|
|
49
|
+
}
|
|
50
|
+
const result = yield runRouteAdd({
|
|
51
|
+
rootDir: tree.root,
|
|
52
|
+
project: selected.tsConfig,
|
|
53
|
+
path: options.path,
|
|
54
|
+
parent,
|
|
55
|
+
component,
|
|
56
|
+
featureFile: options.featureFile,
|
|
57
|
+
redirectTo: target.redirectTo,
|
|
58
|
+
yes: true,
|
|
59
|
+
validate: false,
|
|
60
|
+
fileSystem,
|
|
61
|
+
log: () => undefined,
|
|
62
|
+
});
|
|
63
|
+
assertSuccessful(result);
|
|
64
|
+
const eslintBaseline = options.skipValidation
|
|
65
|
+
? new Set()
|
|
66
|
+
: yield captureRouteEslintBaseline(tree.root, resolve(tree.root, selected.configuration.root), result.changedFiles);
|
|
67
|
+
return options.skipValidation
|
|
68
|
+
? undefined
|
|
69
|
+
: createValidationCallback(tree, selected, result.changedFiles, eslintBaseline);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
export function resolveRouteParentOption(parents, interactive) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
if (interactive.configuredParent)
|
|
75
|
+
return interactive.configuredParent;
|
|
76
|
+
if (parents.length === 0 || (!interactive.ask && !isInteractive())) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
if (!interactive.ask) {
|
|
80
|
+
const readline = createInterface({
|
|
81
|
+
input: process.stdin,
|
|
82
|
+
output: process.stdout,
|
|
83
|
+
});
|
|
84
|
+
try {
|
|
85
|
+
return yield resolveRouteParentOption(parents, Object.assign(Object.assign({}, interactive), { ask: (prompt) => readline.question(prompt) }));
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
readline.close();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const sortedParents = [...parents].sort((left, right) => left.filePath.localeCompare(right.filePath));
|
|
92
|
+
logger.info([
|
|
93
|
+
'Available route parents:',
|
|
94
|
+
` 0. Automatic selection from ${interactive.routePath}`,
|
|
95
|
+
...sortedParents.map((parent, index) => {
|
|
96
|
+
const filePath = relative(interactive.rootDir, parent.filePath)
|
|
97
|
+
.split(sep)
|
|
98
|
+
.join('/');
|
|
99
|
+
return ` ${index + 1}. ${parent.routesName} — ${filePath} (prefix: ${parent.collectionName})`;
|
|
100
|
+
}),
|
|
101
|
+
].join('\n'));
|
|
102
|
+
let selection;
|
|
103
|
+
do {
|
|
104
|
+
const answer = (yield interactive.ask('Parent number [0]: ')).trim();
|
|
105
|
+
selection = answer === '' ? 0 : Number(answer);
|
|
106
|
+
} while (!Number.isInteger(selection) ||
|
|
107
|
+
selection < 0 ||
|
|
108
|
+
selection > sortedParents.length);
|
|
109
|
+
if (selection === 0)
|
|
110
|
+
return undefined;
|
|
111
|
+
const selected = sortedParents[selection - 1];
|
|
112
|
+
const filePath = relative(interactive.rootDir, selected.filePath)
|
|
113
|
+
.split(sep)
|
|
114
|
+
.join('/');
|
|
115
|
+
return `${filePath}#${selected.routesName}`;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
export function resolveRouteTargetOptions(options, interactive) {
|
|
119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const configuredTargets = [
|
|
121
|
+
['component', options.component],
|
|
122
|
+
['createComponent', options.createComponent],
|
|
123
|
+
['redirectTo', options.redirectTo],
|
|
124
|
+
].filter(([, value]) => value !== undefined);
|
|
125
|
+
if (configuredTargets.length > 1) {
|
|
126
|
+
throw new Error('Choose exactly one route target: --component, --create-component, or --redirect-to.');
|
|
127
|
+
}
|
|
128
|
+
if (configuredTargets.length === 1) {
|
|
129
|
+
const [name, value] = configuredTargets[0];
|
|
130
|
+
if (name === 'createComponent') {
|
|
131
|
+
return { createComponent: parseCreateComponentOption(value) };
|
|
132
|
+
}
|
|
133
|
+
return { [name]: value };
|
|
134
|
+
}
|
|
135
|
+
if (!interactive.ask) {
|
|
136
|
+
if (!isInteractive()) {
|
|
137
|
+
throw new Error('A route target is required. Pass --component, --create-component, or --redirect-to.');
|
|
138
|
+
}
|
|
139
|
+
const readline = createInterface({
|
|
140
|
+
input: process.stdin,
|
|
141
|
+
output: process.stdout,
|
|
142
|
+
});
|
|
143
|
+
try {
|
|
144
|
+
return yield resolveRouteTargetOptions(options, Object.assign(Object.assign({}, interactive), { ask: (prompt) => readline.question(prompt) }));
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
readline.close();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const ask = interactive.ask;
|
|
151
|
+
let selection;
|
|
152
|
+
do {
|
|
153
|
+
selection = (yield ask('Target: [e]xisting component, [c]reate component, [r]edirect? '))
|
|
154
|
+
.trim()
|
|
155
|
+
.toLowerCase();
|
|
156
|
+
} while (!['e', 'existing', 'c', 'create', 'r', 'redirect'].includes(selection));
|
|
157
|
+
if (selection === 'e' || selection === 'existing') {
|
|
158
|
+
return {
|
|
159
|
+
component: yield askForRequiredValue(ask, 'Component file#Class: '),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
if (selection === 'c' || selection === 'create') {
|
|
163
|
+
const path = yield askForRequiredValue(ask, `Angular component path (relative to ${interactive.componentBase}): `);
|
|
164
|
+
return {
|
|
165
|
+
createComponent: {
|
|
166
|
+
path,
|
|
167
|
+
name: yield askForRequiredValue(ask, 'Angular component name: '),
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
redirectTo: yield askForRequiredValue(ask, 'Redirect target: '),
|
|
173
|
+
};
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
function isInteractive() {
|
|
177
|
+
return (!!process.stdin.isTTY &&
|
|
178
|
+
!!process.stdout.isTTY &&
|
|
179
|
+
process.env['NX_INTERACTIVE'] !== 'false');
|
|
180
|
+
}
|
|
181
|
+
function parseCreateComponentOption(value) {
|
|
182
|
+
const name = basename(value);
|
|
183
|
+
const parent = dirname(value);
|
|
184
|
+
return {
|
|
185
|
+
name,
|
|
186
|
+
path: parent === '.' ? name : parent,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function askForRequiredValue(ask, prompt) {
|
|
190
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
+
let value;
|
|
192
|
+
do
|
|
193
|
+
value = (yield ask(prompt)).trim();
|
|
194
|
+
while (!value);
|
|
195
|
+
return value;
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
export function routeSplitGenerator(tree, options) {
|
|
199
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
+
const selected = selectAngularProject(tree, options.project);
|
|
201
|
+
const result = yield runRouteSplit({
|
|
202
|
+
rootDir: tree.root,
|
|
203
|
+
project: selected.tsConfig,
|
|
204
|
+
parent: options.parent,
|
|
205
|
+
prefix: options.prefix,
|
|
206
|
+
target: options.target,
|
|
207
|
+
yes: true,
|
|
208
|
+
validate: false,
|
|
209
|
+
fileSystem: createTreeFileSystem(tree),
|
|
210
|
+
log: (message) => logger.info(message),
|
|
211
|
+
});
|
|
212
|
+
assertSuccessful(result);
|
|
213
|
+
const eslintBaseline = options.skipValidation
|
|
214
|
+
? new Set()
|
|
215
|
+
: yield captureRouteEslintBaseline(tree.root, resolve(tree.root, selected.configuration.root), result.changedFiles);
|
|
216
|
+
return options.skipValidation
|
|
217
|
+
? undefined
|
|
218
|
+
: createValidationCallback(tree, selected, result.changedFiles, eslintBaseline);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function selectAngularProject(tree, requestedProject) {
|
|
222
|
+
const projects = getProjects(tree);
|
|
223
|
+
let name = requestedProject;
|
|
224
|
+
if (!name) {
|
|
225
|
+
const applications = [...projects.entries()].filter(([, configuration]) => findAngularApplicationTsConfig(tree, configuration));
|
|
226
|
+
if (applications.length !== 1) {
|
|
227
|
+
throw new Error('Choose a project with --project when the workspace does not contain exactly one Angular application.');
|
|
228
|
+
}
|
|
229
|
+
name = applications[0][0];
|
|
230
|
+
}
|
|
231
|
+
const configuration = readProjectConfiguration(tree, name);
|
|
232
|
+
const tsConfig = findAngularApplicationTsConfig(tree, configuration);
|
|
233
|
+
if (!tsConfig) {
|
|
234
|
+
throw new Error(`Project ${name} is not an Angular application.`);
|
|
235
|
+
}
|
|
236
|
+
return { configuration, name, tsConfig };
|
|
237
|
+
}
|
|
238
|
+
function findAngularApplicationTsConfig(tree, configuration) {
|
|
239
|
+
var _a, _b, _c;
|
|
240
|
+
if (configuration.projectType !== 'application')
|
|
241
|
+
return undefined;
|
|
242
|
+
const configuredTsConfig = (_c = (_b = (_a = configuration.targets) === null || _a === void 0 ? void 0 : _a['build']) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c['tsConfig'];
|
|
243
|
+
const fallbackTsConfig = join(configuration.root, 'tsconfig.app.json');
|
|
244
|
+
const tsConfig = typeof configuredTsConfig === 'string'
|
|
245
|
+
? configuredTsConfig
|
|
246
|
+
: fallbackTsConfig;
|
|
247
|
+
return tree.exists(tsConfig) ? tsConfig : undefined;
|
|
248
|
+
}
|
|
249
|
+
function createTreeFileSystem(tree) {
|
|
250
|
+
const toTreePath = (filePath) => {
|
|
251
|
+
const value = relative(tree.root, resolve(filePath));
|
|
252
|
+
return value.split(sep).join('/');
|
|
253
|
+
};
|
|
254
|
+
return {
|
|
255
|
+
exists: (filePath) => tree.exists(toTreePath(filePath)),
|
|
256
|
+
listFiles: (rootDir) => listTreeFiles(tree, toTreePath(rootDir)).map((filePath) => resolve(tree.root, filePath)),
|
|
257
|
+
read: (filePath) => { var _a; return (_a = tree.read(toTreePath(filePath), 'utf8')) !== null && _a !== void 0 ? _a : undefined; },
|
|
258
|
+
write: (filePath, content) => tree.write(toTreePath(filePath), content),
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
function listTreeFiles(tree, root = '') {
|
|
262
|
+
if (tree.isFile(root))
|
|
263
|
+
return [root];
|
|
264
|
+
const result = [];
|
|
265
|
+
const visit = (directory) => {
|
|
266
|
+
for (const child of tree.children(directory)) {
|
|
267
|
+
if (['node_modules', 'dist', '.angular', '.git'].includes(child)) {
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
const filePath = directory ? `${directory}/${child}` : child;
|
|
271
|
+
if (tree.isFile(filePath))
|
|
272
|
+
result.push(filePath);
|
|
273
|
+
else
|
|
274
|
+
visit(filePath);
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
visit(root === '.' ? '' : root);
|
|
278
|
+
return result;
|
|
279
|
+
}
|
|
280
|
+
function generateComponent(tree, projectName, project, target) {
|
|
281
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
282
|
+
var _a;
|
|
283
|
+
const before = new Set(listTreeFiles(tree));
|
|
284
|
+
const sourceRoot = (_a = project.sourceRoot) !== null && _a !== void 0 ? _a : join(project.root, 'src');
|
|
285
|
+
const componentBase = join(sourceRoot, 'app');
|
|
286
|
+
const requestedPath = resolveComponentPath(project, componentBase, target);
|
|
287
|
+
if (tree.exists('nx.json')) {
|
|
288
|
+
const { componentGenerator } = yield import('@nx/angular/generators');
|
|
289
|
+
yield componentGenerator(tree, {
|
|
290
|
+
path: requestedPath,
|
|
291
|
+
inlineStyle: true,
|
|
292
|
+
inlineTemplate: true,
|
|
293
|
+
skipTests: true,
|
|
294
|
+
skipFormat: true,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
const angularComponent = wrapAngularDevkitSchematic('@schematics/angular', 'component');
|
|
299
|
+
yield angularComponent(tree, {
|
|
300
|
+
name: target.name,
|
|
301
|
+
path: dirname(requestedPath),
|
|
302
|
+
project: projectName,
|
|
303
|
+
flat: true,
|
|
304
|
+
inlineStyle: true,
|
|
305
|
+
inlineTemplate: true,
|
|
306
|
+
skipTests: true,
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
const candidates = listTreeFiles(tree).filter((filePath) => {
|
|
310
|
+
var _a;
|
|
311
|
+
return !before.has(filePath) &&
|
|
312
|
+
filePath.endsWith('.ts') &&
|
|
313
|
+
!filePath.endsWith('.spec.ts') &&
|
|
314
|
+
((_a = tree.read(filePath, 'utf8')) === null || _a === void 0 ? void 0 : _a.includes('@Component'));
|
|
315
|
+
});
|
|
316
|
+
if (candidates.length !== 1) {
|
|
317
|
+
throw new Error(`Expected one generated Angular component, found ${candidates.length}.`);
|
|
318
|
+
}
|
|
319
|
+
const filePath = candidates[0];
|
|
320
|
+
const text = tree.read(filePath, 'utf8');
|
|
321
|
+
if (!text)
|
|
322
|
+
throw new Error(`Generated component is empty: ${filePath}`);
|
|
323
|
+
const sourceFile = new Project().createSourceFile(filePath, text);
|
|
324
|
+
const decorated = findAngularDecoratedClass(sourceFile);
|
|
325
|
+
if (decorated.skipped || !decorated.className) {
|
|
326
|
+
throw new Error(`Could not infer the component class in ${filePath}.`);
|
|
327
|
+
}
|
|
328
|
+
return `${filePath}#${decorated.className}`;
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
function resolveComponentPath(project, componentBase, target) {
|
|
332
|
+
const path = target.path === '.' ? '' : target.path;
|
|
333
|
+
const directory = path.startsWith(project.root)
|
|
334
|
+
? path
|
|
335
|
+
: join(componentBase, path);
|
|
336
|
+
return join(directory, names(target.name).fileName);
|
|
337
|
+
}
|
|
338
|
+
function printGeneratorPlan(tree, result, component, componentBase) {
|
|
339
|
+
var _a, _b;
|
|
340
|
+
const lines = ['Planned changes (dry view):'];
|
|
341
|
+
if (component) {
|
|
342
|
+
const requestedPath = join(componentBase, component.path === '.' ? '' : component.path, names(component.name).fileName);
|
|
343
|
+
lines.push(` CREATE ${requestedPath}.ts (inline template and styles; filename normalized by Angular)`);
|
|
344
|
+
}
|
|
345
|
+
for (const filePath of (_b = (_a = result.plan) === null || _a === void 0 ? void 0 : _a.files) !== null && _b !== void 0 ? _b : []) {
|
|
346
|
+
const treePath = relative(tree.root, filePath).split(sep).join('/');
|
|
347
|
+
lines.push(` ${tree.exists(treePath) ? 'UPDATE' : 'CREATE'} ${treePath}`);
|
|
348
|
+
}
|
|
349
|
+
logger.info(lines.join('\n'));
|
|
350
|
+
}
|
|
351
|
+
function confirmGeneratorPlan(options) {
|
|
352
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
353
|
+
if (options.yes || process.env['NX_DRY_RUN'] === 'true')
|
|
354
|
+
return true;
|
|
355
|
+
if (!process.stdin.isTTY ||
|
|
356
|
+
!process.stdout.isTTY ||
|
|
357
|
+
process.env['NX_INTERACTIVE'] === 'false') {
|
|
358
|
+
throw new Error('Confirmation is required. Re-run interactively or pass --yes.');
|
|
359
|
+
}
|
|
360
|
+
const readline = createInterface({
|
|
361
|
+
input: process.stdin,
|
|
362
|
+
output: process.stdout,
|
|
363
|
+
});
|
|
364
|
+
try {
|
|
365
|
+
const answer = (yield readline.question('Apply this plan? [y/N] '))
|
|
366
|
+
.trim()
|
|
367
|
+
.toLowerCase();
|
|
368
|
+
return answer === 'y' || answer === 'yes';
|
|
369
|
+
}
|
|
370
|
+
finally {
|
|
371
|
+
readline.close();
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
function assertSuccessful(result) {
|
|
376
|
+
if (result.exitCode === 0)
|
|
377
|
+
return;
|
|
378
|
+
throw new Error(result.diagnostics
|
|
379
|
+
.map((diagnostic) => `${diagnostic.code}: ${diagnostic.message}`)
|
|
380
|
+
.join('\n'));
|
|
381
|
+
}
|
|
382
|
+
function createValidationCallback(tree, project, changedFiles, eslintBaseline) {
|
|
383
|
+
var _a, _b, _c;
|
|
384
|
+
const root = tree.root;
|
|
385
|
+
const hasNx = tree.exists('nx.json');
|
|
386
|
+
const buildConfiguration = ((_c = (_b = (_a = project.configuration.targets) === null || _a === void 0 ? void 0 : _a['build']) === null || _b === void 0 ? void 0 : _b.configurations) === null || _c === void 0 ? void 0 : _c['development'])
|
|
387
|
+
? 'development'
|
|
388
|
+
: undefined;
|
|
389
|
+
return () => __awaiter(this, void 0, void 0, function* () {
|
|
390
|
+
const validationDiagnostics = yield validateRouteChangedFiles(root, resolve(root, project.configuration.root), resolve(root, project.tsConfig), changedFiles, eslintBaseline, { skipTypeCheck: true });
|
|
391
|
+
if (validationDiagnostics.length > 0) {
|
|
392
|
+
throw new Error(validationDiagnostics
|
|
393
|
+
.map((diagnostic) => diagnostic.message)
|
|
394
|
+
.join('\n'));
|
|
395
|
+
}
|
|
396
|
+
const runner = findLocalBinary(root, hasNx ? 'nx' : 'ng');
|
|
397
|
+
if (!runner) {
|
|
398
|
+
throw new Error(`Could not find the local ${hasNx ? 'Nx' : 'Angular'} CLI.`);
|
|
399
|
+
}
|
|
400
|
+
const args = hasNx
|
|
401
|
+
? [
|
|
402
|
+
'run',
|
|
403
|
+
`${project.name}:build`,
|
|
404
|
+
...(buildConfiguration
|
|
405
|
+
? [`--configuration=${buildConfiguration}`]
|
|
406
|
+
: []),
|
|
407
|
+
]
|
|
408
|
+
: [
|
|
409
|
+
'build',
|
|
410
|
+
project.name,
|
|
411
|
+
...(buildConfiguration
|
|
412
|
+
? [`--configuration=${buildConfiguration}`]
|
|
413
|
+
: []),
|
|
414
|
+
];
|
|
415
|
+
yield execFileAsync(runner, args, {
|
|
416
|
+
cwd: root,
|
|
417
|
+
maxBuffer: 20 * 1024 * 1024,
|
|
418
|
+
});
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
function findLocalBinary(rootDir, name) {
|
|
422
|
+
let current = rootDir;
|
|
423
|
+
while (true) {
|
|
424
|
+
const candidate = join(current, 'node_modules', '.bin', name);
|
|
425
|
+
if (existsSync(candidate))
|
|
426
|
+
return candidate;
|
|
427
|
+
const parent = resolve(current, '..');
|
|
428
|
+
if (parent === current)
|
|
429
|
+
return undefined;
|
|
430
|
+
current = parent;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
export default routeGenerator;
|
|
434
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/dev-tools/src/generators/route/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "CraftRoute",
|
|
4
|
+
"title": "Add a Craft NG route",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"path": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Absolute route path to add.",
|
|
10
|
+
"$default": { "$source": "argv", "index": 0 },
|
|
11
|
+
"x-prompt": "Route path:"
|
|
12
|
+
},
|
|
13
|
+
"project": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "Angular application project.",
|
|
16
|
+
"x-dropdown": "projects"
|
|
17
|
+
},
|
|
18
|
+
"parent": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Parent routes file and optional collection name."
|
|
21
|
+
},
|
|
22
|
+
"component": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "Existing component as file#Class."
|
|
25
|
+
},
|
|
26
|
+
"createComponent": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Create an Angular component using workspace conventions."
|
|
29
|
+
},
|
|
30
|
+
"featureFile": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "Explicit lazy feature routes file."
|
|
33
|
+
},
|
|
34
|
+
"redirectTo": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Static redirect target."
|
|
37
|
+
},
|
|
38
|
+
"skipValidation": {
|
|
39
|
+
"type": "boolean",
|
|
40
|
+
"default": false,
|
|
41
|
+
"description": "Skip post-write ESLint and Angular diagnostics."
|
|
42
|
+
},
|
|
43
|
+
"yes": {
|
|
44
|
+
"type": "boolean",
|
|
45
|
+
"default": false,
|
|
46
|
+
"description": "Apply the generated plan without asking for confirmation."
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"required": ["path"]
|
|
50
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "CraftRouteSplit",
|
|
4
|
+
"title": "Split Craft NG routes into a lazy collection",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Angular application project.",
|
|
10
|
+
"$default": { "$source": "projectName" },
|
|
11
|
+
"x-dropdown": "projects"
|
|
12
|
+
},
|
|
13
|
+
"parent": { "type": "string" },
|
|
14
|
+
"prefix": { "type": "string" },
|
|
15
|
+
"target": { "type": "string" },
|
|
16
|
+
"skipValidation": { "type": "boolean", "default": false }
|
|
17
|
+
},
|
|
18
|
+
"required": ["parent", "prefix", "target"]
|
|
19
|
+
}
|
package/src/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './scripts/migrate';
|
|
|
4
4
|
export * from './scripts/primitives/migration-diagnostic';
|
|
5
5
|
export * from './scripts/routes/migrate-routes';
|
|
6
6
|
export * from './scripts/routes/migration-diagnostic';
|
|
7
|
+
export * from './scripts/routes/route-command';
|
|
7
8
|
export * from './scripts/services/config';
|
|
8
9
|
export * from './scripts/services/migrate-services';
|
|
9
10
|
export * from './scripts/services/migration-diagnostic';
|
package/src/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export * from './scripts/migrate';
|
|
|
5
5
|
export * from './scripts/primitives/migration-diagnostic';
|
|
6
6
|
export * from './scripts/routes/migrate-routes';
|
|
7
7
|
export * from './scripts/routes/migration-diagnostic';
|
|
8
|
+
export * from './scripts/routes/route-command';
|
|
8
9
|
export * from './scripts/services/config';
|
|
9
10
|
export * from './scripts/services/migrate-services';
|
|
10
11
|
export * from './scripts/services/migration-diagnostic';
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dev-tools/src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mBAAmB,CAAC;AAClC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dev-tools/src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mBAAmB,CAAC;AAClC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migrates call-sites of the generator-returning craft primitives (`state`,
|
|
3
|
+
* `query`, `mutation`, `asyncProcess`, `queryParam`):
|
|
4
|
+
*
|
|
5
|
+
* 1. `yield* track(X)` → `yield* X` (track import purged when unused).
|
|
6
|
+
* 2. Already-consumed invocations (`yield*`, `craftUse(...)`) are left alone.
|
|
7
|
+
* 3. Inside a generator function → prefix with `yield* ` (parenthesised when
|
|
8
|
+
* the parent is a spread / member access / template position).
|
|
9
|
+
* 4. Direct expression-body return of a `craftService` factory or of a
|
|
10
|
+
* `queryParams:` arrow stays as-is (the runtime drives the generator).
|
|
11
|
+
* 5. Anywhere else → wrap with `craftUse(...)` (import added).
|
|
12
|
+
* 6. A `craftService` factory / `queryParams:` arrow returning an object
|
|
13
|
+
* literal containing primitive creations is first converted to a
|
|
14
|
+
* `function*` so rule 3 applies.
|
|
15
|
+
*/
|
|
16
|
+
export declare const ALL_PRIMITIVES: readonly ["state", "query", "mutation", "asyncProcess", "queryParam"];
|
|
17
|
+
export type PrimitiveName = (typeof ALL_PRIMITIVES)[number];
|
|
18
|
+
export type MigratePrimitiveGeneratorsOptions = {
|
|
19
|
+
paths: readonly string[];
|
|
20
|
+
primitives?: readonly PrimitiveName[];
|
|
21
|
+
write?: boolean;
|
|
22
|
+
log?: (message: string) => void;
|
|
23
|
+
};
|
|
24
|
+
export type MigratePrimitiveGeneratorsResult = {
|
|
25
|
+
changedFiles: string[];
|
|
26
|
+
};
|
|
27
|
+
export declare function migratePrimitiveGenerators({ paths, primitives, write, log, }: MigratePrimitiveGeneratorsOptions): Promise<MigratePrimitiveGeneratorsResult>;
|