@nx/js 18.0.4 → 18.0.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/js",
3
- "version": "18.0.4",
3
+ "version": "18.0.6",
4
4
  "private": false,
5
5
  "description": "The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects. ",
6
6
  "repository": {
@@ -57,9 +57,9 @@
57
57
  "semver": "^7.5.3",
58
58
  "source-map-support": "0.5.19",
59
59
  "tslib": "^2.3.0",
60
- "@nx/devkit": "18.0.4",
61
- "@nx/workspace": "18.0.4",
62
- "@nrwl/js": "18.0.4"
60
+ "@nx/devkit": "18.0.6",
61
+ "@nx/workspace": "18.0.6",
62
+ "@nrwl/js": "18.0.6"
63
63
  },
64
64
  "peerDependencies": {
65
65
  "verdaccio": "^5.0.4"
@@ -42,7 +42,7 @@ function normalizeOptions(options, root, sourceRoot, projectRoot) {
42
42
  // default to current directory if projectRootParts is [].
43
43
  // Eg: when a project is at the root level, outside of layout dir
44
44
  const swcCwd = projectRootParts.join('/') || '.';
45
- const swcrcPath = (0, get_swcrc_path_1.getSwcrcPath)(options, root, projectRoot);
45
+ const { swcrcPath, tmpSwcrcPath } = (0, get_swcrc_path_1.getSwcrcPath)(options, root, projectRoot);
46
46
  const swcCliOptions = {
47
47
  srcPath: projectDir,
48
48
  destPath: (0, path_1.relative)((0, path_1.join)(root, swcCwd), outputPath),
@@ -60,6 +60,7 @@ function normalizeOptions(options, root, sourceRoot, projectRoot) {
60
60
  outputPath,
61
61
  tsConfig: (0, path_1.join)(root, options.tsConfig),
62
62
  swcCliOptions,
63
+ tmpSwcrcPath,
63
64
  };
64
65
  }
65
66
  async function* swcExecutor(_options, context) {
@@ -79,14 +80,11 @@ async function* swcExecutor(_options, context) {
79
80
  // remap paths for SWC compilation
80
81
  options.swcCliOptions.srcPath = options.swcCliOptions.swcCwd;
81
82
  options.swcCliOptions.swcCwd = '.';
82
- options.swcCliOptions.destPath = options.swcCliOptions.destPath
83
- .split('../')
84
- .at(-1)
85
- .concat('/', options.swcCliOptions.srcPath);
83
+ options.swcCliOptions.destPath = (0, path_1.join)(options.swcCliOptions.destPath.split((0, path_1.normalize)('../')).at(-1), options.swcCliOptions.srcPath);
86
84
  // tmp swcrc with dependencies to exclude
87
85
  // - buildable libraries
88
86
  // - other libraries that are not dependent on the current project
89
- options.swcCliOptions.swcrcPath = (0, inline_2.generateTmpSwcrc)(inlineProjectGraph, options.swcCliOptions.swcrcPath);
87
+ options.swcCliOptions.swcrcPath = (0, inline_2.generateTmpSwcrc)(inlineProjectGraph, options.swcCliOptions.swcrcPath, options.tmpSwcrcPath);
90
88
  }
91
89
  function determineModuleFormatFromSwcrc(absolutePathToSwcrc) {
92
90
  const swcrc = (0, devkit_1.readJsonFile)(absolutePathToSwcrc);
@@ -136,7 +134,8 @@ async function* swcExecutor(_options, context) {
136
134
  }
137
135
  exports.swcExecutor = swcExecutor;
138
136
  function removeTmpSwcrc(swcrcPath) {
139
- if (swcrcPath.includes('tmp/') && swcrcPath.includes('.generated.swcrc')) {
137
+ if (swcrcPath.includes((0, path_1.normalize)('tmp/')) &&
138
+ swcrcPath.includes('.generated.swcrc')) {
140
139
  (0, fs_extra_1.removeSync)((0, path_1.dirname)(swcrcPath));
141
140
  }
142
141
  }
@@ -25,7 +25,6 @@ async function libraryGenerator(tree, schema) {
25
25
  }
26
26
  exports.libraryGenerator = libraryGenerator;
27
27
  async function libraryGeneratorInternal(tree, schema) {
28
- const filesDir = (0, path_1.join)(__dirname, './files');
29
28
  const tasks = [];
30
29
  tasks.push(await (0, init_1.default)(tree, {
31
30
  ...schema,
@@ -33,7 +32,7 @@ async function libraryGeneratorInternal(tree, schema) {
33
32
  tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',
34
33
  }));
35
34
  const options = await normalizeOptions(tree, schema);
36
- createFiles(tree, options, `${filesDir}/lib`);
35
+ createFiles(tree, options);
37
36
  addProject(tree, options);
38
37
  if (!options.skipPackageJson) {
39
38
  tasks.push(addProjectDependencies(tree, options));
@@ -69,7 +68,7 @@ async function libraryGeneratorInternal(tree, schema) {
69
68
  const jestCallback = await addJest(tree, options);
70
69
  tasks.push(jestCallback);
71
70
  if (options.bundler === 'swc' || options.bundler === 'rollup') {
72
- replaceJestConfig(tree, options, `${filesDir}/jest-config`);
71
+ replaceJestConfig(tree, options);
73
72
  }
74
73
  }
75
74
  else if (options.unitTestRunner === 'vitest' &&
@@ -284,10 +283,10 @@ function addBabelRc(tree, options) {
284
283
  };
285
284
  (0, devkit_1.writeJson)(tree, (0, path_1.join)(options.projectRoot, filename), babelrc);
286
285
  }
287
- function createFiles(tree, options, filesDir) {
286
+ function createFiles(tree, options) {
288
287
  const { className, name, propertyName } = (0, devkit_1.names)(options.projectNames.projectFileName);
289
288
  createProjectTsConfigJson(tree, options);
290
- (0, devkit_1.generateFiles)(tree, filesDir, options.projectRoot, {
289
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, './files/lib'), options.projectRoot, {
291
290
  ...options,
292
291
  dot: '.',
293
292
  className,
@@ -301,6 +300,22 @@ function createFiles(tree, options, filesDir) {
301
300
  buildable: options.bundler && options.bundler !== 'none',
302
301
  hasUnitTestRunner: options.unitTestRunner !== 'none',
303
302
  });
303
+ if (!options.rootProject) {
304
+ (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, './files/readme'), options.projectRoot, {
305
+ ...options,
306
+ dot: '.',
307
+ className,
308
+ name,
309
+ propertyName,
310
+ js: !!options.js,
311
+ cliCommand: 'nx',
312
+ strict: undefined,
313
+ tmpl: '',
314
+ offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot),
315
+ buildable: options.bundler && options.bundler !== 'none',
316
+ hasUnitTestRunner: options.unitTestRunner !== 'none',
317
+ });
318
+ }
304
319
  if (options.bundler === 'swc' || options.bundler === 'rollup') {
305
320
  (0, add_swc_dependencies_1.addSwcDependencies)(tree);
306
321
  (0, add_swc_config_1.addSwcConfig)(tree, options.projectRoot, options.bundler === 'swc' ? 'commonjs' : 'es6');
@@ -377,7 +392,8 @@ async function addJest(tree, options) {
377
392
  : undefined,
378
393
  });
379
394
  }
380
- function replaceJestConfig(tree, options, filesDir) {
395
+ function replaceJestConfig(tree, options) {
396
+ const filesDir = (0, path_1.join)(__dirname, './files/jest-config');
381
397
  // the existing config has to be deleted otherwise the new config won't overwrite it
382
398
  const existingJestConfig = (0, devkit_1.joinPathFragments)(filesDir, `jest.config.${options.js ? 'js' : 'ts'}`);
383
399
  if (tree.exists(existingJestConfig)) {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveVersionSpec = void 0;
4
4
  const npa = require("npm-package-arg");
5
+ const devkit_1 = require("@nx/devkit");
5
6
  function resolveVersionSpec(name, version, spec, location) {
6
7
  // yarn classic uses link instead of file, normalize to match what npm expects
7
8
  spec = spec.replace(/^link:/, 'file:');
@@ -21,6 +22,8 @@ function resolveVersionSpec(name, version, spec, location) {
21
22
  }
22
23
  }
23
24
  const npaResult = npa.resolve(name, spec, location);
24
- return npaResult.fetchSpec;
25
+ return npaResult.fetchSpec.includes('\\')
26
+ ? (0, devkit_1.normalizePath)(npaResult.fetchSpec)
27
+ : npaResult.fetchSpec;
25
28
  }
26
29
  exports.resolveVersionSpec = resolveVersionSpec;
@@ -127,7 +127,7 @@ function calculateDependenciesFromTaskGraph(taskGraph, projectGraph, root, proje
127
127
  const depTask = taskGraph.tasks[taskName];
128
128
  const depProjectNode = projectGraph.nodes?.[depTask.target.project];
129
129
  if (depProjectNode?.type !== 'lib') {
130
- return null;
130
+ continue;
131
131
  }
132
132
  let outputs = (0, devkit_1.getOutputsForTargetAndConfiguration)(depTask.target, depTask.overrides, depProjectNode);
133
133
  if (outputs.length === 0) {
@@ -83,4 +83,5 @@ export interface NormalizedSwcExecutorOptions
83
83
  swcExclude: string[];
84
84
  skipTypeCheck: boolean;
85
85
  swcCliOptions: SwcCliOptions;
86
+ tmpSwcrcPath: string;
86
87
  }
@@ -1,2 +1,5 @@
1
1
  import { SwcExecutorOptions } from '../schema';
2
- export declare function getSwcrcPath(options: SwcExecutorOptions, contextRoot: string, projectRoot: string): string;
2
+ export declare function getSwcrcPath(options: SwcExecutorOptions, contextRoot: string, projectRoot: string): {
3
+ swcrcPath: string;
4
+ tmpSwcrcPath: string;
5
+ };
@@ -3,8 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSwcrcPath = void 0;
4
4
  const path_1 = require("path");
5
5
  function getSwcrcPath(options, contextRoot, projectRoot) {
6
- return options.swcrc
6
+ const swcrcPath = options.swcrc
7
7
  ? (0, path_1.join)(contextRoot, options.swcrc)
8
8
  : (0, path_1.join)(contextRoot, projectRoot, '.swcrc');
9
+ const tmpSwcrcPath = (0, path_1.join)(contextRoot, projectRoot, 'tmp', '.generated.swcrc');
10
+ return {
11
+ swcrcPath,
12
+ tmpSwcrcPath,
13
+ };
9
14
  }
10
15
  exports.getSwcrcPath = getSwcrcPath;
@@ -1,2 +1,2 @@
1
1
  import type { InlineProjectGraph } from '../inline';
2
- export declare function generateTmpSwcrc(inlineProjectGraph: InlineProjectGraph, swcrcPath: string): string;
2
+ export declare function generateTmpSwcrc(inlineProjectGraph: InlineProjectGraph, swcrcPath: string, tmpSwcrcPath: string): string;
@@ -2,10 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateTmpSwcrc = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
- function generateTmpSwcrc(inlineProjectGraph, swcrcPath) {
5
+ function generateTmpSwcrc(inlineProjectGraph, swcrcPath, tmpSwcrcPath) {
6
6
  const swcrc = (0, devkit_1.readJsonFile)(swcrcPath);
7
7
  swcrc['exclude'] = swcrc['exclude'].concat(Object.values(inlineProjectGraph.externals).map((external) => `${external.root}/**/.*.ts$`), 'node_modules/**/*.ts$');
8
- const tmpSwcrcPath = `tmp${swcrcPath}`;
9
8
  (0, devkit_1.writeJsonFile)(tmpSwcrcPath, swcrc);
10
9
  return tmpSwcrcPath;
11
10
  }