@nx/js 19.1.0-beta.0 → 19.1.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/package.json +8 -6
- package/src/executors/release-publish/release-publish.impl.js +1 -1
- package/src/generators/library/files/jest-config/jest.config.__ext__ +1 -1
- package/src/generators/library/library.js +6 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +3 -1
- package/src/utils/package-json/update-package-json.d.ts +2 -1
- package/src/utils/package-json/update-package-json.js +17 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/js",
|
|
3
|
-
"version": "19.1.0-beta.
|
|
3
|
+
"version": "19.1.0-beta.2",
|
|
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": {
|
|
@@ -14,9 +14,11 @@
|
|
|
14
14
|
"Node",
|
|
15
15
|
"Swc",
|
|
16
16
|
"Tsc",
|
|
17
|
-
"CLI"
|
|
17
|
+
"CLI",
|
|
18
|
+
"Front-end",
|
|
19
|
+
"Backend"
|
|
18
20
|
],
|
|
19
|
-
"main": "
|
|
21
|
+
"main": "src/index.js",
|
|
20
22
|
"typings": "src/index.d.ts",
|
|
21
23
|
"license": "MIT",
|
|
22
24
|
"bugs": {
|
|
@@ -56,9 +58,9 @@
|
|
|
56
58
|
"semver": "^7.5.3",
|
|
57
59
|
"source-map-support": "0.5.19",
|
|
58
60
|
"tslib": "^2.3.0",
|
|
59
|
-
"@nx/devkit": "19.1.0-beta.
|
|
60
|
-
"@nx/workspace": "19.1.0-beta.
|
|
61
|
-
"@nrwl/js": "19.1.0-beta.
|
|
61
|
+
"@nx/devkit": "19.1.0-beta.2",
|
|
62
|
+
"@nx/workspace": "19.1.0-beta.2",
|
|
63
|
+
"@nrwl/js": "19.1.0-beta.2"
|
|
62
64
|
},
|
|
63
65
|
"peerDependencies": {
|
|
64
66
|
"verdaccio": "^5.0.4"
|
|
@@ -147,7 +147,7 @@ async function runExecutor(options, context) {
|
|
|
147
147
|
console.log('Skipped npm view because --first-release was set');
|
|
148
148
|
}
|
|
149
149
|
const npmPublishCommandSegments = [
|
|
150
|
-
`npm publish ${packageRoot} --json --"${registryConfigKey}=${registry}" --tag=${tag}`,
|
|
150
|
+
`npm publish "${packageRoot}" --json --"${registryConfigKey}=${registry}" --tag=${tag}`,
|
|
151
151
|
];
|
|
152
152
|
if (options.otp) {
|
|
153
153
|
npmPublishCommandSegments.push(`--otp=${options.otp}`);
|
|
@@ -20,7 +20,7 @@ if (swcJestConfig.swcrc === undefined) {
|
|
|
20
20
|
|
|
21
21
|
<% if(js) {%>module.exports =<% } else { %>export default<% } %> {
|
|
22
22
|
displayName: '<%= project %>',
|
|
23
|
-
preset: '<%= offsetFromRoot %>
|
|
23
|
+
preset: '<%= offsetFromRoot %><%= jestPreset %>',
|
|
24
24
|
transform: {
|
|
25
25
|
'^.+\\.[tj]s$': ['@swc/jest', swcJestConfig],
|
|
26
26
|
},
|
|
@@ -425,9 +425,11 @@ function replaceJestConfig(tree, options) {
|
|
|
425
425
|
if (tree.exists(existingJestConfig)) {
|
|
426
426
|
tree.delete(existingJestConfig);
|
|
427
427
|
}
|
|
428
|
+
const jestPreset = findRootJestPreset(tree) ?? 'jest.presets.js';
|
|
428
429
|
// replace with JS:SWC specific jest config
|
|
429
430
|
(0, devkit_1.generateFiles)(tree, filesDir, options.projectRoot, {
|
|
430
431
|
ext: options.js ? 'js' : 'ts',
|
|
432
|
+
jestPreset,
|
|
431
433
|
js: !!options.js,
|
|
432
434
|
project: options.name,
|
|
433
435
|
offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot),
|
|
@@ -748,4 +750,8 @@ function logNxReleaseDocsInfo() {
|
|
|
748
750
|
title: `📦 To learn how to publish this library, see https://nx.dev/core-features/manage-releases.`,
|
|
749
751
|
});
|
|
750
752
|
}
|
|
753
|
+
function findRootJestPreset(tree) {
|
|
754
|
+
const ext = ['js', 'cjs', 'mjs'].find((ext) => tree.exists(`jest.preset.${ext}`));
|
|
755
|
+
return ext ? `jest.preset.${ext}` : null;
|
|
756
|
+
}
|
|
751
757
|
exports.default = libraryGenerator;
|
package/src/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export * from './utils/package-json/update-package-json';
|
|
|
13
13
|
export * from './utils/package-json/create-entry-points';
|
|
14
14
|
export { libraryGenerator } from './generators/library/library';
|
|
15
15
|
export { initGenerator } from './generators/init/init';
|
|
16
|
+
export { setupVerdaccio } from './generators/setup-verdaccio/generator';
|
|
16
17
|
export { isValidVariable } from './utils/is-valid-variable';
|
|
17
18
|
export { createLockFile, getLockFileName, } from 'nx/src/plugins/js/lock-file/lock-file';
|
|
18
19
|
export { createPackageJson } from 'nx/src/plugins/js/package-json/create-package-json';
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createPackageJson = exports.getLockFileName = exports.createLockFile = exports.isValidVariable = exports.initGenerator = exports.libraryGenerator = void 0;
|
|
3
|
+
exports.createPackageJson = exports.getLockFileName = exports.createLockFile = exports.isValidVariable = exports.setupVerdaccio = exports.initGenerator = exports.libraryGenerator = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
tslib_1.__exportStar(require("./utils/typescript/add-tslib-dependencies"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./utils/typescript/load-ts-transformers"), exports);
|
|
@@ -19,6 +19,8 @@ var library_1 = require("./generators/library/library");
|
|
|
19
19
|
Object.defineProperty(exports, "libraryGenerator", { enumerable: true, get: function () { return library_1.libraryGenerator; } });
|
|
20
20
|
var init_1 = require("./generators/init/init");
|
|
21
21
|
Object.defineProperty(exports, "initGenerator", { enumerable: true, get: function () { return init_1.initGenerator; } });
|
|
22
|
+
var generator_1 = require("./generators/setup-verdaccio/generator");
|
|
23
|
+
Object.defineProperty(exports, "setupVerdaccio", { enumerable: true, get: function () { return generator_1.setupVerdaccio; } });
|
|
22
24
|
var is_valid_variable_1 = require("./utils/is-valid-variable");
|
|
23
25
|
Object.defineProperty(exports, "isValidVariable", { enumerable: true, get: function () { return is_valid_variable_1.isValidVariable; } });
|
|
24
26
|
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
|
@@ -3,6 +3,7 @@ import { DependentBuildableProjectNode } from '../buildable-libs-utils';
|
|
|
3
3
|
import type { PackageJson } from 'nx/src/utils/package-json';
|
|
4
4
|
export type SupportedFormat = 'cjs' | 'esm';
|
|
5
5
|
export interface UpdatePackageJsonOption {
|
|
6
|
+
rootDir?: string;
|
|
6
7
|
projectRoot: string;
|
|
7
8
|
main: string;
|
|
8
9
|
additionalEntryPoints?: string[];
|
|
@@ -23,7 +24,7 @@ interface Exports {
|
|
|
23
24
|
'.': string;
|
|
24
25
|
[name: string]: string;
|
|
25
26
|
}
|
|
26
|
-
export declare function getExports(options: Pick<UpdatePackageJsonOption, 'main' | 'projectRoot' | 'outputFileName' | 'additionalEntryPoints'> & {
|
|
27
|
+
export declare function getExports(options: Pick<UpdatePackageJsonOption, 'main' | 'rootDir' | 'projectRoot' | 'outputFileName' | 'additionalEntryPoints'> & {
|
|
27
28
|
fileExt: string;
|
|
28
29
|
}): Exports;
|
|
29
30
|
export declare function getUpdatedPackageJsonContent(packageJson: PackageJson, options: UpdatePackageJsonOption): PackageJson;
|
|
@@ -41,10 +41,15 @@ function updatePackageJson(options, context, target, dependencies, fileMap = nul
|
|
|
41
41
|
(0, devkit_1.writeJsonFile)(`${options.outputPath}/package.json`, packageJson);
|
|
42
42
|
if (options.generateLockfile) {
|
|
43
43
|
const packageManager = (0, devkit_1.detectPackageManager)(context.root);
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
if (packageManager === 'bun') {
|
|
45
|
+
devkit_1.logger.warn(`Bun lockfile generation is unsupported. Remove "generateLockfile" option or set it to false.`);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const lockFile = (0, lock_file_1.createLockFile)(packageJson, context.projectGraph, packageManager);
|
|
49
|
+
(0, fs_extra_1.writeFileSync)(`${options.outputPath}/${(0, lock_file_1.getLockFileName)(packageManager)}`, lockFile, {
|
|
50
|
+
encoding: 'utf-8',
|
|
51
|
+
});
|
|
52
|
+
}
|
|
48
53
|
}
|
|
49
54
|
}
|
|
50
55
|
exports.updatePackageJson = updatePackageJson;
|
|
@@ -99,7 +104,7 @@ function getExports(options) {
|
|
|
99
104
|
: (0, path_1.basename)(options.main).replace(/\.[tj]s$/, '');
|
|
100
105
|
const relativeMainFileDir = options.outputFileName
|
|
101
106
|
? './'
|
|
102
|
-
: (0, get_main_file_dir_1.getRelativeDirectoryToProjectRoot)(options.main, options.projectRoot);
|
|
107
|
+
: (0, get_main_file_dir_1.getRelativeDirectoryToProjectRoot)(options.main, options.rootDir ?? options.projectRoot);
|
|
103
108
|
const exports = {
|
|
104
109
|
'.': relativeMainFileDir + mainFile + options.fileExt,
|
|
105
110
|
};
|
|
@@ -123,23 +128,23 @@ function getUpdatedPackageJsonContent(packageJson, options) {
|
|
|
123
128
|
const hasCjsFormat = !options.format || options.format?.includes('cjs');
|
|
124
129
|
const hasEsmFormat = options.format?.includes('esm');
|
|
125
130
|
if (options.generateExportsField) {
|
|
126
|
-
packageJson.exports
|
|
131
|
+
packageJson.exports ??=
|
|
127
132
|
typeof packageJson.exports === 'string' ? {} : { ...packageJson.exports };
|
|
128
|
-
packageJson.exports['./package.json']
|
|
133
|
+
packageJson.exports['./package.json'] ??= './package.json';
|
|
129
134
|
}
|
|
130
135
|
if (hasEsmFormat) {
|
|
131
136
|
const esmExports = getExports({
|
|
132
137
|
...options,
|
|
133
138
|
fileExt: options.outputFileExtensionForEsm ?? '.js',
|
|
134
139
|
});
|
|
135
|
-
packageJson.module
|
|
140
|
+
packageJson.module ??= esmExports['.'];
|
|
136
141
|
if (!hasCjsFormat) {
|
|
137
142
|
packageJson.type = 'module';
|
|
138
143
|
packageJson.main ??= esmExports['.'];
|
|
139
144
|
}
|
|
140
145
|
if (options.generateExportsField) {
|
|
141
146
|
for (const [exportEntry, filePath] of Object.entries(esmExports)) {
|
|
142
|
-
packageJson.exports[exportEntry]
|
|
147
|
+
packageJson.exports[exportEntry] ??= hasCjsFormat
|
|
143
148
|
? { import: filePath }
|
|
144
149
|
: filePath;
|
|
145
150
|
}
|
|
@@ -153,7 +158,7 @@ function getUpdatedPackageJsonContent(packageJson, options) {
|
|
|
153
158
|
...options,
|
|
154
159
|
fileExt: options.outputFileExtensionForCjs ?? '.js',
|
|
155
160
|
});
|
|
156
|
-
packageJson.main
|
|
161
|
+
packageJson.main ??= cjsExports['.'];
|
|
157
162
|
if (!hasEsmFormat) {
|
|
158
163
|
packageJson.type = 'commonjs';
|
|
159
164
|
}
|
|
@@ -163,7 +168,7 @@ function getUpdatedPackageJsonContent(packageJson, options) {
|
|
|
163
168
|
packageJson.exports[exportEntry]['default'] ??= filePath;
|
|
164
169
|
}
|
|
165
170
|
else {
|
|
166
|
-
packageJson.exports[exportEntry]
|
|
171
|
+
packageJson.exports[exportEntry] ??= filePath;
|
|
167
172
|
}
|
|
168
173
|
}
|
|
169
174
|
}
|
|
@@ -172,7 +177,7 @@ function getUpdatedPackageJsonContent(packageJson, options) {
|
|
|
172
177
|
const mainFile = (0, path_1.basename)(options.main).replace(/\.[tj]s$/, '');
|
|
173
178
|
const relativeMainFileDir = (0, get_main_file_dir_1.getRelativeDirectoryToProjectRoot)(options.main, options.projectRoot);
|
|
174
179
|
const typingsFile = `${relativeMainFileDir}${mainFile}.d.ts`;
|
|
175
|
-
packageJson.types
|
|
180
|
+
packageJson.types ??= typingsFile;
|
|
176
181
|
}
|
|
177
182
|
return packageJson;
|
|
178
183
|
}
|