@mouryaamit/nx-polystack 1.0.2 → 1.1.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/USER-MANUAL.md +30 -9
- package/dist/src/cli/commands/update.js +12 -3
- package/dist/src/cli/commands/update.js.map +1 -1
- package/dist/src/cli/update-plan.d.ts +11 -1
- package/dist/src/cli/update-plan.js +12 -3
- package/dist/src/cli/update-plan.js.map +1 -1
- package/dist/src/generators/migrate/adapters/external.d.ts +10 -1
- package/dist/src/generators/migrate/adapters/external.js +235 -21
- package/dist/src/generators/migrate/adapters/external.js.map +1 -1
- package/dist/src/generators/migrate/generator.js +102 -13
- package/dist/src/generators/migrate/generator.js.map +1 -1
- package/dist/src/generators/migrate/imports/rewrite.d.ts +17 -1
- package/dist/src/generators/migrate/imports/rewrite.js +198 -20
- package/dist/src/generators/migrate/imports/rewrite.js.map +1 -1
- package/dist/src/generators/migrate/report.js +9 -0
- package/dist/src/generators/migrate/report.js.map +1 -1
- package/package.json +1 -1
|
@@ -179,9 +179,15 @@ async function migrateBatch(tree, schema) {
|
|
|
179
179
|
if (schema.rewriteImports !== undefined)
|
|
180
180
|
cli.rewriteImports = schema.rewriteImports;
|
|
181
181
|
const done = [];
|
|
182
|
-
for (const entry of entries) {
|
|
182
|
+
for (const [i, entry] of entries.entries()) {
|
|
183
|
+
// Imports may resolve into what earlier entries copied; the last entry also fixes earlier
|
|
184
|
+
// entries' imports into what later entries copied (NX-62).
|
|
185
|
+
const batchHooks = {
|
|
186
|
+
otherMoves: done.flatMap((d) => d.moves),
|
|
187
|
+
earlier: i === entries.length - 1 ? done : undefined,
|
|
188
|
+
};
|
|
183
189
|
try {
|
|
184
|
-
const outcome = await migrateOne(tree, (0, batch_1.mergeEntryOptions)(entry, defaults, cli));
|
|
190
|
+
const outcome = await migrateOne(tree, (0, batch_1.mergeEntryOptions)(entry, defaults, cli), batchHooks);
|
|
185
191
|
if (outcome)
|
|
186
192
|
done.push(outcome);
|
|
187
193
|
}
|
|
@@ -213,8 +219,63 @@ async function migrateBatch(tree, schema) {
|
|
|
213
219
|
}
|
|
214
220
|
};
|
|
215
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* The last `--config` entry: imports of earlier entries that pointed outside the projects they
|
|
224
|
+
* brought in are resolved again with every entry's moves, in the last entry's tree (so its
|
|
225
|
+
* rollback undoes them). Only those imports are touched; earlier reports are written again.
|
|
226
|
+
*/
|
|
227
|
+
function resolveEarlierImports(tree, earlier, ownMoves) {
|
|
228
|
+
const all = [...earlier.flatMap((e) => e.moves), ...ownMoves];
|
|
229
|
+
const out = [];
|
|
230
|
+
for (const e of earlier) {
|
|
231
|
+
const imports = e.data.imports;
|
|
232
|
+
if (!imports)
|
|
233
|
+
continue;
|
|
234
|
+
const open = imports.unresolved.filter((u) => rewrite_1.LATER_RESOLVABLE.has(u.why));
|
|
235
|
+
if (open.length === 0)
|
|
236
|
+
continue;
|
|
237
|
+
const r = (0, rewrite_1.rewriteImports)(tree, {
|
|
238
|
+
sourceDir: e.sourceDir,
|
|
239
|
+
moves: e.moves,
|
|
240
|
+
otherMoves: all.filter((m) => !e.moves.includes(m)),
|
|
241
|
+
only: new Set(open.map((u) => `${u.file}\0${u.spec}`)),
|
|
242
|
+
});
|
|
243
|
+
// The second look replaces the open entries: ones it does not list again now resolve
|
|
244
|
+
// (rewritten, or already right); ones it lists again carry its reason.
|
|
245
|
+
const looked = new Set(open.map((u) => `${u.file}\0${u.spec}`));
|
|
246
|
+
const before = JSON.stringify(imports.unresolved);
|
|
247
|
+
imports.unresolved = [
|
|
248
|
+
...imports.unresolved.filter((u) => !looked.has(`${u.file}\0${u.spec}`)),
|
|
249
|
+
...r.unresolved,
|
|
250
|
+
];
|
|
251
|
+
if (r.rewritten.length === 0 && JSON.stringify(imports.unresolved) === before)
|
|
252
|
+
continue;
|
|
253
|
+
imports.rewritten.push(...r.rewritten);
|
|
254
|
+
imports.deepImports.push(...r.deepImports);
|
|
255
|
+
imports.missingPackages = [
|
|
256
|
+
...new Set([...imports.missingPackages, ...r.missingPackages]),
|
|
257
|
+
].sort();
|
|
258
|
+
e.rerender(tree);
|
|
259
|
+
out.push(...r.rewritten);
|
|
260
|
+
}
|
|
261
|
+
return out;
|
|
262
|
+
}
|
|
263
|
+
/** Runs the batch follow-up for the last entry and records it in its report data. */
|
|
264
|
+
function applyBatchHooks(tree, data, hooks) {
|
|
265
|
+
if (!hooks?.earlier || hooks.earlier.length === 0)
|
|
266
|
+
return;
|
|
267
|
+
const resolved = resolveEarlierImports(tree, hooks.earlier, data.moves ?? []);
|
|
268
|
+
if (resolved.length === 0)
|
|
269
|
+
return;
|
|
270
|
+
if (data.imports)
|
|
271
|
+
data.imports.resolvedEarlier = resolved;
|
|
272
|
+
else {
|
|
273
|
+
data.notes.push(`Rewrote ${resolved.length} import(s) in earlier \`--config\` entries that point into the ` +
|
|
274
|
+
`projects this entry brought in: ${[...new Set(resolved.map((r) => r.file))].join(', ')}.`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
216
277
|
/** One migration (the --source path). Undefined for --detect. */
|
|
217
|
-
async function migrateOne(tree, schema) {
|
|
278
|
+
async function migrateOne(tree, schema, batch) {
|
|
218
279
|
const sourceDir = resolveSource(tree, schema.source);
|
|
219
280
|
const maxFiles = schema.maxFiles ?? copy_1.DEFAULT_MAX_FILES;
|
|
220
281
|
if (!Number.isInteger(maxFiles) || maxFiles < 1) {
|
|
@@ -240,7 +301,7 @@ async function migrateOne(tree, schema) {
|
|
|
240
301
|
if (dir !== undefined && !schema.dirInherited) {
|
|
241
302
|
throw new Error(`migrate: --dir is for single-app sources; the ${adapter.id} adapter keeps the source layout.`);
|
|
242
303
|
}
|
|
243
|
-
return migrateWorkspace(tree, schema, adapter, detection, forced, sourceDir, maxFiles, projects);
|
|
304
|
+
return migrateWorkspace(tree, schema, adapter, detection, forced, sourceDir, maxFiles, projects, batch);
|
|
244
305
|
}
|
|
245
306
|
if ((projects && projects.length > 0) || schema.noDeps || schema.prefix) {
|
|
246
307
|
throw new Error(`migrate: --projects, --no-deps and --prefix are for Nx workspace sources; the ` +
|
|
@@ -277,14 +338,19 @@ async function migrateOne(tree, schema) {
|
|
|
277
338
|
adapter.preflight?.(rec.tree, ctx);
|
|
278
339
|
const data = adapter.migrate(rec.tree, ctx);
|
|
279
340
|
if (ctx.rewriteImports) {
|
|
280
|
-
data.imports = (0, rewrite_1.rewriteImports)(rec.tree, {
|
|
341
|
+
data.imports = (0, rewrite_1.rewriteImports)(rec.tree, {
|
|
342
|
+
sourceDir,
|
|
343
|
+
moves: data.moves ?? [],
|
|
344
|
+
otherMoves: batch?.otherMoves,
|
|
345
|
+
});
|
|
281
346
|
}
|
|
347
|
+
applyBatchHooks(rec.tree, data, batch);
|
|
282
348
|
if (dir && knipMissesNestedApps(tree)) {
|
|
283
349
|
data.notes.push(`knip.json lists \`apps/*/src/main.ts\` as an entry, which does not reach ${projectRoot}; ` +
|
|
284
350
|
'change it to `apps/**/src/main.ts` so `npm run stale-code` does not report the app as unused.');
|
|
285
351
|
}
|
|
286
352
|
const reportPath = `docs/migrations/${name}.md`;
|
|
287
|
-
|
|
353
|
+
const reportArgs = {
|
|
288
354
|
name,
|
|
289
355
|
adapterId: adapter.id,
|
|
290
356
|
adapterLabel: adapter.label,
|
|
@@ -294,15 +360,24 @@ async function migrateOne(tree, schema) {
|
|
|
294
360
|
minConfidence: schema.minConfidence,
|
|
295
361
|
source: schema.sourceLabel ?? schema.source,
|
|
296
362
|
data,
|
|
297
|
-
}
|
|
363
|
+
};
|
|
364
|
+
const rerender = (t) => t.write(reportPath, (0, report_1.renderReport)(reportArgs));
|
|
365
|
+
rerender(rec.tree);
|
|
298
366
|
// Copied source files are not run through Prettier: they stay as the source had them.
|
|
299
367
|
(0, llm_block_1.refreshLlmBlocks)(rec.tree);
|
|
300
368
|
recordManifest(tree, rec.originals, name, adapter.id, schema.sourceLabel ?? schema.source, data);
|
|
301
369
|
devkit_1.logger.info(`Migrated ${sourceDir} into ${projectRoot} with the ${adapter.id} adapter. ` +
|
|
302
370
|
`Report: ${reportPath}. Undo with: pstack migrate --rollback=${name}`);
|
|
303
|
-
return {
|
|
371
|
+
return {
|
|
372
|
+
name,
|
|
373
|
+
installTask: data.installTask,
|
|
374
|
+
moves: data.moves ?? [],
|
|
375
|
+
sourceDir,
|
|
376
|
+
data,
|
|
377
|
+
rerender,
|
|
378
|
+
};
|
|
304
379
|
}
|
|
305
|
-
async function migrateWorkspace(tree, schema, adapter, detection, forced, sourceDir, maxFiles, projects) {
|
|
380
|
+
async function migrateWorkspace(tree, schema, adapter, detection, forced, sourceDir, maxFiles, projects, batch) {
|
|
306
381
|
const suggested = adapter.defaultName(sourceDir);
|
|
307
382
|
const name = schema.name ?? (suggested ? (0, names_1.kebabName)(suggested) : '');
|
|
308
383
|
if (!name || !names_3.NAME_RE.test(name)) {
|
|
@@ -326,9 +401,14 @@ async function migrateWorkspace(tree, schema, adapter, detection, forced, source
|
|
|
326
401
|
adapter.preflight(rec.tree, ctx);
|
|
327
402
|
const data = adapter.migrate(rec.tree, ctx);
|
|
328
403
|
if (ctx.rewriteImports) {
|
|
329
|
-
data.imports = (0, rewrite_1.rewriteImports)(rec.tree, {
|
|
404
|
+
data.imports = (0, rewrite_1.rewriteImports)(rec.tree, {
|
|
405
|
+
sourceDir,
|
|
406
|
+
moves: data.moves ?? [],
|
|
407
|
+
otherMoves: batch?.otherMoves,
|
|
408
|
+
});
|
|
330
409
|
}
|
|
331
|
-
rec.tree
|
|
410
|
+
applyBatchHooks(rec.tree, data, batch);
|
|
411
|
+
const reportArgs = {
|
|
332
412
|
name,
|
|
333
413
|
adapterId: adapter.id,
|
|
334
414
|
adapterLabel: adapter.label,
|
|
@@ -337,11 +417,20 @@ async function migrateWorkspace(tree, schema, adapter, detection, forced, source
|
|
|
337
417
|
minConfidence: schema.minConfidence,
|
|
338
418
|
source: schema.sourceLabel ?? schema.source,
|
|
339
419
|
data,
|
|
340
|
-
}
|
|
420
|
+
};
|
|
421
|
+
const rerender = (t) => t.write(reportPath, (0, report_1.renderReport)(reportArgs));
|
|
422
|
+
rerender(rec.tree);
|
|
341
423
|
(0, llm_block_1.refreshLlmBlocks)(rec.tree);
|
|
342
424
|
recordManifest(tree, rec.originals, name, adapter.id, schema.sourceLabel ?? schema.source, data);
|
|
343
425
|
devkit_1.logger.info(`Imported ${data.projects.length} project(s) from ${sourceDir} with the ${adapter.id} ` +
|
|
344
426
|
`adapter. Report: ${reportPath}. Undo with: pstack migrate --rollback=${name}`);
|
|
345
|
-
return {
|
|
427
|
+
return {
|
|
428
|
+
name,
|
|
429
|
+
installTask: data.installTask,
|
|
430
|
+
moves: data.moves ?? [],
|
|
431
|
+
sourceDir,
|
|
432
|
+
data,
|
|
433
|
+
rerender,
|
|
434
|
+
};
|
|
346
435
|
}
|
|
347
436
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/generators/migrate/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/generators/migrate/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,11 @@ export interface ImportMove {
|
|
|
14
14
|
/** Copied files, relative to the folder. */
|
|
15
15
|
files: string[];
|
|
16
16
|
}
|
|
17
|
-
export type RewriteKind = 'cross-project' | 'base-url' | 'nrwl' | 'node-modules'
|
|
17
|
+
export type RewriteKind = 'cross-project' | 'base-url' | 'nrwl' | 'node-modules'
|
|
18
|
+
/** Angular templateUrl / styleUrl / styleUrls (NX-60). */
|
|
19
|
+
| 'resource'
|
|
20
|
+
/** A bare Sass path that resolved through the source load paths (NX-61). */
|
|
21
|
+
| 'sass-load-path';
|
|
18
22
|
export interface ImportRewrite {
|
|
19
23
|
/** File in the workspace tree. */
|
|
20
24
|
file: string;
|
|
@@ -37,10 +41,22 @@ export interface ImportRewriteResult {
|
|
|
37
41
|
}[];
|
|
38
42
|
/** `@nx/*` packages the rewritten imports use that the workspace package.json does not declare. */
|
|
39
43
|
missingPackages: string[];
|
|
44
|
+
/**
|
|
45
|
+
* `--config` batches (NX-62): imports of earlier entries that pointed into a project this entry
|
|
46
|
+
* brought in, rewritten after this entry's copy (they are part of this entry's rollback).
|
|
47
|
+
*/
|
|
48
|
+
resolvedEarlier?: ImportRewrite[];
|
|
40
49
|
}
|
|
50
|
+
/** Reasons an import is listed that a later `--config` entry's copy can make resolvable (NX-62). */
|
|
51
|
+
export declare const LATER_RESOLVABLE: Set<string>;
|
|
41
52
|
export interface RewriteOptions {
|
|
42
53
|
/** Absolute source repo root. */
|
|
43
54
|
sourceDir: string;
|
|
55
|
+
/** The folders this run copied: only their files are rewritten. */
|
|
44
56
|
moves: ImportMove[];
|
|
57
|
+
/** Folders other `--config` entries copied: imports may resolve into them (NX-62). */
|
|
58
|
+
otherMoves?: ImportMove[];
|
|
59
|
+
/** Only these imports (`file\0spec`) are looked at; everything else is left alone (NX-62). */
|
|
60
|
+
only?: Set<string>;
|
|
45
61
|
}
|
|
46
62
|
export declare function rewriteImports(tree: Tree, opts: RewriteOptions): ImportRewriteResult;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rewriteImports = void 0;
|
|
3
|
+
exports.rewriteImports = exports.LATER_RESOLVABLE = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs = tslib_1.__importStar(require("fs"));
|
|
6
6
|
const path = tslib_1.__importStar(require("path"));
|
|
7
7
|
const source_1 = require("../source");
|
|
8
|
+
/** Reasons an import is listed that a later `--config` entry's copy can make resolvable (NX-62). */
|
|
9
|
+
exports.LATER_RESOLVABLE = new Set([
|
|
10
|
+
'points outside the imported projects',
|
|
11
|
+
'resolves through the source `baseUrl` to a file that was not imported',
|
|
12
|
+
'resolves through the source Sass load paths to a file that was not imported',
|
|
13
|
+
]);
|
|
8
14
|
const CODE = /\.(ts|tsx|mts|cts|js|jsx|mjs|cjs)$/;
|
|
9
15
|
const SCSS = /\.scss$/;
|
|
10
16
|
/**
|
|
@@ -15,6 +21,11 @@ const CODE_IMPORT = /(\bfrom\s*|\bimport\s*\(\s*|\bimport\s+|\brequire(?:\.resol
|
|
|
15
21
|
/** Sass module rules; each quoted path in them is a candidate. */
|
|
16
22
|
const SCSS_RULE = /@(?:use|import|forward)\s+[^;{}]+/g;
|
|
17
23
|
const QUOTED = /(['"])([^'"\n]+)\1/g;
|
|
24
|
+
/** Angular component resources: templateUrl / styleUrl values and styleUrls entries (NX-60). */
|
|
25
|
+
const RESOURCE_URL = /(\b(?:templateUrl|styleUrl)\s*:\s*)(['"`])([^'"`\n]+)\2/g;
|
|
26
|
+
const RESOURCE_LIST = /(\bstyleUrls\s*:\s*\[)([^\]]*)\]/g;
|
|
27
|
+
/** Sass paths that are never files under a load path: built-ins, URLs, plain CSS imports. */
|
|
28
|
+
const SASS_NOT_BARE = /^(?:~|\/|sass:|[a-z][a-z0-9+.-]*:|\/\/)|\.css$/i;
|
|
18
29
|
/** @nrwl/* packages without an @nx/* successor. */
|
|
19
30
|
const NRWL_KEEP = new Set(['@nrwl/nx-cloud', '@nrwl/tao', '@nrwl/cli']);
|
|
20
31
|
/** @nrwl/* packages whose @nx/* successor has another name. */
|
|
@@ -67,7 +78,7 @@ function sassCandidates(p) {
|
|
|
67
78
|
`${p}/index.scss`,
|
|
68
79
|
];
|
|
69
80
|
}
|
|
70
|
-
const candidates = (p,
|
|
81
|
+
const candidates = (p, mode) => mode === 'sass' ? sassCandidates(p) : mode === 'resource' ? [p] : codeCandidates(p);
|
|
71
82
|
function rewriteImports(tree, opts) {
|
|
72
83
|
const result = {
|
|
73
84
|
rewritten: [],
|
|
@@ -78,10 +89,13 @@ function rewriteImports(tree, opts) {
|
|
|
78
89
|
const seen = new Set();
|
|
79
90
|
const deepSeen = new Set();
|
|
80
91
|
const sourceRoot = toPosix(path.resolve(opts.sourceDir));
|
|
81
|
-
const
|
|
92
|
+
const norm = (list) => list
|
|
82
93
|
.map((m) => ({ ...m, from: toPosix(path.resolve(m.from)) }))
|
|
83
94
|
.sort((a, b) => b.from.length - a.from.length);
|
|
84
|
-
const
|
|
95
|
+
const moves = norm(opts.moves);
|
|
96
|
+
const known = norm([...opts.moves, ...(opts.otherMoves ?? [])]);
|
|
97
|
+
const only = opts.only;
|
|
98
|
+
const moveOf = (abs) => known.find((m) => abs === m.from || abs.startsWith(`${m.from}/`));
|
|
85
99
|
const mapPath = (abs) => {
|
|
86
100
|
const m = moveOf(abs);
|
|
87
101
|
if (!m)
|
|
@@ -93,7 +107,7 @@ function rewriteImports(tree, opts) {
|
|
|
93
107
|
const aliases = workspaceAliases(tree, wsBaseUrl);
|
|
94
108
|
const baseUrls = baseUrlReader(sourceRoot);
|
|
95
109
|
/** The tree path resolves to a file (copied, or already in the workspace). */
|
|
96
|
-
const inTree = (p,
|
|
110
|
+
const inTree = (p, mode) => candidates(p, mode).some((c) => tree.exists(c) && tree.isFile(c));
|
|
97
111
|
const statCache = new Map();
|
|
98
112
|
const isSourceFileAbs = (abs) => {
|
|
99
113
|
let hit = statCache.get(abs);
|
|
@@ -105,6 +119,18 @@ function rewriteImports(tree, opts) {
|
|
|
105
119
|
};
|
|
106
120
|
const dependencyNames = sourceDependencyNames(sourceRoot);
|
|
107
121
|
const nxPackages = new Set();
|
|
122
|
+
const sourceLoadPaths = sourceSassLoadPaths(sourceRoot, moves);
|
|
123
|
+
const workspaceLoadPaths = workspaceSassLoadPaths(tree);
|
|
124
|
+
// Sass load paths in the moved projects that do not exist in the workspace (NX-61).
|
|
125
|
+
for (const move of only ? [] : moves) {
|
|
126
|
+
const pj = `${move.to}/project.json`;
|
|
127
|
+
for (const p of projectLoadPaths(tree, pj)) {
|
|
128
|
+
if (p === 'node_modules' || p.startsWith('node_modules/'))
|
|
129
|
+
continue;
|
|
130
|
+
if (!tree.exists(p))
|
|
131
|
+
leave(pj, p, 'Sass load path that does not exist in the workspace');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
108
134
|
for (const move of moves) {
|
|
109
135
|
for (const rel of move.files) {
|
|
110
136
|
const code = CODE.test(rel) && !rel.endsWith('.d.ts');
|
|
@@ -126,7 +152,10 @@ function rewriteImports(tree, opts) {
|
|
|
126
152
|
};
|
|
127
153
|
const viaAlias = (target) => aliases.get(target) ?? aliases.get(target.replace(/\.(ts|tsx|js|mjs|cjs)$/, ''));
|
|
128
154
|
/** New specifier for `spec`, or undefined to keep it. */
|
|
129
|
-
const rewrite = (spec,
|
|
155
|
+
const rewrite = (spec, mode) => {
|
|
156
|
+
if (only && !only.has(`${file}\0${spec}`))
|
|
157
|
+
return undefined;
|
|
158
|
+
const sass = mode !== 'code';
|
|
130
159
|
if (!sass) {
|
|
131
160
|
const nrwl = /^@nrwl\/([^/]+)(.*)$/.exec(spec);
|
|
132
161
|
if (nrwl) {
|
|
@@ -156,17 +185,17 @@ function rewriteImports(tree, opts) {
|
|
|
156
185
|
// Inside the same copied folder the path is unchanged. Only a file that exists in the
|
|
157
186
|
// source but was not copied (a project that was not selected, a skipped folder) is a
|
|
158
187
|
// problem; text that resolves nowhere (a comment, a generated file) is left alone.
|
|
159
|
-
if (moveOf(abs) === move) {
|
|
160
|
-
const copied = inTree(mapPath(abs),
|
|
161
|
-
if (!copied && candidates(abs,
|
|
188
|
+
if (moveOf(abs)?.to === move.to) {
|
|
189
|
+
const copied = inTree(mapPath(abs), mode);
|
|
190
|
+
if (!copied && candidates(abs, mode).some((c) => isSourceFileAbs(c))) {
|
|
162
191
|
leave(file, spec, 'points to a file that was not copied');
|
|
163
192
|
}
|
|
164
193
|
return undefined;
|
|
165
194
|
}
|
|
166
195
|
const target = mapPath(abs);
|
|
167
|
-
if (target === undefined || !inTree(target,
|
|
196
|
+
if (target === undefined || !inTree(target, mode)) {
|
|
168
197
|
// Still resolves in the workspace (an Nx root file such as jest.preset.js): keep it.
|
|
169
|
-
if (inTree(asIs,
|
|
198
|
+
if (inTree(asIs, mode))
|
|
170
199
|
return undefined;
|
|
171
200
|
leave(file, spec, target === undefined
|
|
172
201
|
? 'points outside the imported projects'
|
|
@@ -183,7 +212,7 @@ function rewriteImports(tree, opts) {
|
|
|
183
212
|
deepSeen.add(`${file}\0${kept}`);
|
|
184
213
|
result.deepImports.push({ file, spec: kept });
|
|
185
214
|
}
|
|
186
|
-
return record(file, 'cross-project', spec, kept);
|
|
215
|
+
return record(file, mode === 'resource' ? 'resource' : 'cross-project', spec, kept);
|
|
187
216
|
}
|
|
188
217
|
if (sass || spec.startsWith('~'))
|
|
189
218
|
return undefined;
|
|
@@ -204,30 +233,94 @@ function rewriteImports(tree, opts) {
|
|
|
204
233
|
if (!local)
|
|
205
234
|
return undefined;
|
|
206
235
|
const target = mapPath(abs);
|
|
207
|
-
if (target === undefined || !inTree(target,
|
|
236
|
+
if (target === undefined || !inTree(target, 'code')) {
|
|
208
237
|
leave(file, spec, 'resolves through the source `baseUrl` to a file that was not imported');
|
|
209
238
|
return undefined;
|
|
210
239
|
}
|
|
211
240
|
if (wsBaseUrl !== undefined && path.posix.normalize(`${wsBaseUrl}/${spec}`) === target) {
|
|
212
241
|
return undefined; // still resolves through the workspace baseUrl
|
|
213
242
|
}
|
|
214
|
-
const alias = moveOf(abs) === move ? undefined : viaAlias(target);
|
|
243
|
+
const alias = moveOf(abs)?.to === move.to ? undefined : viaAlias(target);
|
|
215
244
|
return record(file, 'base-url', spec, alias ?? relativeTo(target));
|
|
216
245
|
};
|
|
246
|
+
/**
|
|
247
|
+
* A bare Sass path, resolved like Sass: from the stylesheet's folder, then through the
|
|
248
|
+
* source load paths (NX-61). Kept when it still resolves to the same file in the workspace.
|
|
249
|
+
*/
|
|
250
|
+
const rewriteBare = (spec) => {
|
|
251
|
+
if (only && !only.has(`${file}\0${spec}`))
|
|
252
|
+
return undefined;
|
|
253
|
+
const exists = (abs) => sassCandidates(abs).some((c) => isSourceFileAbs(c));
|
|
254
|
+
const own = path.posix.normalize(`${sourceDirOfFile}/${spec}`);
|
|
255
|
+
let abs;
|
|
256
|
+
let viaLoadPath = false;
|
|
257
|
+
if (exists(own))
|
|
258
|
+
abs = own;
|
|
259
|
+
else {
|
|
260
|
+
for (const dir of sourceLoadPaths(sourceFile)) {
|
|
261
|
+
const candidate = path.posix.normalize(`${dir}/${spec}`);
|
|
262
|
+
if (exists(candidate)) {
|
|
263
|
+
abs = candidate;
|
|
264
|
+
viaLoadPath = true;
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (abs === undefined)
|
|
270
|
+
return undefined;
|
|
271
|
+
// The source's node_modules is the workspace's (a common `includePaths: ["node_modules"]`).
|
|
272
|
+
if (abs.startsWith(`${sourceRoot}/node_modules/`))
|
|
273
|
+
return undefined;
|
|
274
|
+
if (!viaLoadPath && moveOf(abs)?.to === move.to)
|
|
275
|
+
return undefined;
|
|
276
|
+
const target = mapPath(abs);
|
|
277
|
+
if (target === undefined || !inTree(target, 'sass')) {
|
|
278
|
+
leave(file, spec, viaLoadPath
|
|
279
|
+
? 'resolves through the source Sass load paths to a file that was not imported'
|
|
280
|
+
: 'points to a file that was not copied');
|
|
281
|
+
return undefined;
|
|
282
|
+
}
|
|
283
|
+
const loadPaths = workspaceLoadPaths(treeDirOfFile);
|
|
284
|
+
// Sass takes the first folder where the path exists.
|
|
285
|
+
const first = [treeDirOfFile, ...loadPaths]
|
|
286
|
+
.map((dir) => path.posix.normalize(`${dir}/${spec}`))
|
|
287
|
+
.find((there) => inTree(there, 'sass'));
|
|
288
|
+
if (first === target)
|
|
289
|
+
return undefined;
|
|
290
|
+
return record(file, 'sass-load-path', spec, relativeTo(target));
|
|
291
|
+
};
|
|
217
292
|
let next = text;
|
|
218
293
|
if (code) {
|
|
219
294
|
next = next.replace(CODE_IMPORT, (whole, lead, q, spec) => {
|
|
220
|
-
const r = rewrite(spec,
|
|
295
|
+
const r = rewrite(spec, 'code');
|
|
221
296
|
return r === undefined ? whole : `${lead}${q}${r}${q}`;
|
|
222
297
|
});
|
|
223
|
-
|
|
224
|
-
else {
|
|
225
|
-
next = next.replace(SCSS_RULE, (rule) => rule.replace(QUOTED, (whole, q, spec) => {
|
|
298
|
+
const resource = (whole, q, spec) => {
|
|
226
299
|
if (!isRelative(spec))
|
|
227
300
|
return whole;
|
|
228
|
-
const r = rewrite(spec,
|
|
301
|
+
const r = rewrite(spec, 'resource');
|
|
229
302
|
return r === undefined ? whole : `${q}${r}${q}`;
|
|
230
|
-
}
|
|
303
|
+
};
|
|
304
|
+
next = next.replace(RESOURCE_URL, (whole, lead, q, spec) => `${lead}${resource(`${q}${spec}${q}`, q, spec)}`);
|
|
305
|
+
next = next.replace(RESOURCE_LIST, (whole, lead, list) => `${lead}${list.replace(QUOTED, (w, q, spec) => resource(w, q, spec))}]`);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
next = next.replace(SCSS_RULE, (whole) => {
|
|
309
|
+
// Only the URL list: `with (...)` values, `as`, `show` and `hide` are not paths.
|
|
310
|
+
const end = whole.search(/\s(?:with|as|show|hide)\b/);
|
|
311
|
+
const rule = end < 0 ? whole : whole.slice(0, end);
|
|
312
|
+
const rest = end < 0 ? '' : whole.slice(end);
|
|
313
|
+
return `${rule.replace(QUOTED, (whole, q, spec) => {
|
|
314
|
+
if (isRelative(spec)) {
|
|
315
|
+
const r = rewrite(spec, 'sass');
|
|
316
|
+
return r === undefined ? whole : `${q}${r}${q}`;
|
|
317
|
+
}
|
|
318
|
+
if (SASS_NOT_BARE.test(spec) || /url\(\s*$/.test(rule.slice(0, rule.indexOf(whole))))
|
|
319
|
+
return whole;
|
|
320
|
+
const r = rewriteBare(spec);
|
|
321
|
+
return r === undefined ? whole : `${q}${r}${q}`;
|
|
322
|
+
})}${rest}`;
|
|
323
|
+
});
|
|
231
324
|
}
|
|
232
325
|
if (next !== text)
|
|
233
326
|
tree.write(file, next);
|
|
@@ -379,4 +472,89 @@ function baseUrlReader(sourceRoot) {
|
|
|
379
472
|
};
|
|
380
473
|
return lookup;
|
|
381
474
|
}
|
|
475
|
+
/** stylePreprocessorOptions.includePaths of every target (options and configurations). */
|
|
476
|
+
function includePathsOf(targets) {
|
|
477
|
+
const out = [];
|
|
478
|
+
if (!targets || typeof targets !== 'object')
|
|
479
|
+
return out;
|
|
480
|
+
for (const target of Object.values(targets)) {
|
|
481
|
+
if (!target || typeof target !== 'object')
|
|
482
|
+
continue;
|
|
483
|
+
const t = target;
|
|
484
|
+
const blocks = [
|
|
485
|
+
t['options'],
|
|
486
|
+
...Object.values(t['configurations'] ?? {}),
|
|
487
|
+
];
|
|
488
|
+
for (const block of blocks) {
|
|
489
|
+
const spo = block?.['stylePreprocessorOptions'];
|
|
490
|
+
const list = spo?.['includePaths'];
|
|
491
|
+
if (Array.isArray(list))
|
|
492
|
+
for (const p of list)
|
|
493
|
+
if (typeof p === 'string')
|
|
494
|
+
out.push(p);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
return out;
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Source Sass load paths per stylesheet (NX-61): the includePaths of the source project that owns
|
|
501
|
+
* the file — the angular.json project with the longest root containing it, or the project.json at
|
|
502
|
+
* a copied folder — resolved against the source root. Sass only uses the owning project's paths.
|
|
503
|
+
*/
|
|
504
|
+
function sourceSassLoadPaths(sourceRoot, moves) {
|
|
505
|
+
const projects = [];
|
|
506
|
+
const abs = (p) => path.posix.normalize(`${sourceRoot}/${p}`).replace(/\/$/, '');
|
|
507
|
+
const angular = (0, source_1.readSourceJson)(sourceRoot, 'angular.json');
|
|
508
|
+
for (const project of Object.values(angular?.projects ?? {})) {
|
|
509
|
+
const p = project;
|
|
510
|
+
const root = typeof p?.['root'] === 'string' ? p['root'] : '';
|
|
511
|
+
projects.push({
|
|
512
|
+
root: root ? abs(root) : sourceRoot,
|
|
513
|
+
paths: includePathsOf(p?.['architect'] ?? p?.['targets']).map(abs),
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
for (const m of moves) {
|
|
517
|
+
const pj = (0, source_1.readSourceJson)(m.from, 'project.json');
|
|
518
|
+
if (pj)
|
|
519
|
+
projects.push({ root: m.from, paths: includePathsOf(pj.targets).map(abs) });
|
|
520
|
+
}
|
|
521
|
+
projects.sort((a, b) => b.root.length - a.root.length);
|
|
522
|
+
return (absFile) => {
|
|
523
|
+
const owner = projects.find((p) => absFile.startsWith(`${p.root}/`));
|
|
524
|
+
return owner ? [...new Set(owner.paths)] : [];
|
|
525
|
+
};
|
|
526
|
+
}
|
|
527
|
+
/** includePaths of one workspace project.json (workspace-relative, normalised). */
|
|
528
|
+
function projectLoadPaths(tree, projectJson) {
|
|
529
|
+
if (!tree.exists(projectJson))
|
|
530
|
+
return [];
|
|
531
|
+
try {
|
|
532
|
+
const json = JSON.parse(tree.read(projectJson, 'utf8') ?? '{}');
|
|
533
|
+
return [
|
|
534
|
+
...new Set(includePathsOf(json.targets).map((p) => path.posix.normalize(p).replace(/\/$/, ''))),
|
|
535
|
+
];
|
|
536
|
+
}
|
|
537
|
+
catch {
|
|
538
|
+
return [];
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
/** For a workspace folder: the Sass load paths of the project that owns it (nearest project.json). */
|
|
542
|
+
function workspaceSassLoadPaths(tree) {
|
|
543
|
+
const cache = new Map();
|
|
544
|
+
const lookup = (dir) => {
|
|
545
|
+
const hit = cache.get(dir);
|
|
546
|
+
if (hit)
|
|
547
|
+
return hit;
|
|
548
|
+
let out;
|
|
549
|
+
if (tree.exists(`${dir}/project.json`))
|
|
550
|
+
out = projectLoadPaths(tree, `${dir}/project.json`);
|
|
551
|
+
else if (dir === '.' || dir === '' || !dir.includes('/'))
|
|
552
|
+
out = [];
|
|
553
|
+
else
|
|
554
|
+
out = lookup(path.posix.dirname(dir));
|
|
555
|
+
cache.set(dir, out);
|
|
556
|
+
return out;
|
|
557
|
+
};
|
|
558
|
+
return lookup;
|
|
559
|
+
}
|
|
382
560
|
//# sourceMappingURL=rewrite.js.map
|