@nx/devkit 19.2.0-canary.20240604-0594deb → 19.2.0-rc.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/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/devkit",
|
3
|
-
"version": "19.2.0-
|
3
|
+
"version": "19.2.0-rc.0",
|
4
4
|
"private": false,
|
5
5
|
"description": "The Nx Devkit is used to customize Nx for different technologies and use cases. It contains many utility functions for reading and writing files, updating configuration, working with Abstract Syntax Trees(ASTs), and more. Learn more about [extending Nx by leveraging the Nx Devkit](https://nx.dev/extending-nx/intro/getting-started) on our docs.",
|
6
6
|
"repository": {
|
@@ -36,7 +36,7 @@
|
|
36
36
|
"semver": "^7.5.3",
|
37
37
|
"yargs-parser": "21.1.1",
|
38
38
|
"minimatch": "9.0.3",
|
39
|
-
"@nrwl/devkit": "19.2.0-
|
39
|
+
"@nrwl/devkit": "19.2.0-rc.0"
|
40
40
|
},
|
41
41
|
"peerDependencies": {
|
42
42
|
"nx": ">= 17 <= 20"
|
package/public-api.d.ts
CHANGED
@@ -14,7 +14,7 @@ export { formatFiles } from './src/generators/format-files';
|
|
14
14
|
/**
|
15
15
|
* @category Generators
|
16
16
|
*/
|
17
|
-
export { generateFiles } from './src/generators/generate-files';
|
17
|
+
export { generateFiles, OverwriteStrategy, } from './src/generators/generate-files';
|
18
18
|
/**
|
19
19
|
* @category Generators
|
20
20
|
*/
|
package/public-api.js
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
* a. We might need to duplicate code instead of importing from nx until all supported versions of nx contain the file.
|
10
10
|
*/
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.moveFilesToNewDirectory = exports.convertNxExecutor = exports.convertNxGenerator = exports.offsetFromRoot = exports.ChangeType = exports.applyChangesToString = exports.extractLayoutDirectory = exports.getWorkspaceLayout = exports.names = exports.installPackagesTask = exports.NX_VERSION = exports.removeDependenciesFromPackageJson = exports.ensurePackage = exports.addDependenciesToPackageJson = exports.readTargetOptions = exports.targetToTargetString = exports.parseTargetString = exports.visitNotIgnoredFiles = exports.runTasksInSerial = exports.updateTsConfigsToJs = exports.toJS = exports.generateFiles = exports.formatFiles = void 0;
|
12
|
+
exports.moveFilesToNewDirectory = exports.convertNxExecutor = exports.convertNxGenerator = exports.offsetFromRoot = exports.ChangeType = exports.applyChangesToString = exports.extractLayoutDirectory = exports.getWorkspaceLayout = exports.names = exports.installPackagesTask = exports.NX_VERSION = exports.removeDependenciesFromPackageJson = exports.ensurePackage = exports.addDependenciesToPackageJson = exports.readTargetOptions = exports.targetToTargetString = exports.parseTargetString = exports.visitNotIgnoredFiles = exports.runTasksInSerial = exports.updateTsConfigsToJs = exports.toJS = exports.OverwriteStrategy = exports.generateFiles = exports.formatFiles = void 0;
|
13
13
|
/**
|
14
14
|
* @category Generators
|
15
15
|
*/
|
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "formatFiles", { enumerable: true, get: function
|
|
20
20
|
*/
|
21
21
|
var generate_files_1 = require("./src/generators/generate-files");
|
22
22
|
Object.defineProperty(exports, "generateFiles", { enumerable: true, get: function () { return generate_files_1.generateFiles; } });
|
23
|
+
Object.defineProperty(exports, "OverwriteStrategy", { enumerable: true, get: function () { return generate_files_1.OverwriteStrategy; } });
|
23
24
|
/**
|
24
25
|
* @category Generators
|
25
26
|
*/
|
@@ -1,4 +1,21 @@
|
|
1
|
-
import { Tree } from 'nx/src/devkit-exports';
|
1
|
+
import { type Tree } from 'nx/src/devkit-exports';
|
2
|
+
/**
|
3
|
+
* Specify what should be done when a file is generated but already exists on the system
|
4
|
+
*/
|
5
|
+
export declare enum OverwriteStrategy {
|
6
|
+
Overwrite = "overwrite",
|
7
|
+
KeepExisting = "keepExisting",
|
8
|
+
ThrowIfExisting = "throwIfExisting"
|
9
|
+
}
|
10
|
+
/**
|
11
|
+
* Options for the generateFiles function
|
12
|
+
*/
|
13
|
+
export interface GenerateFilesOptions {
|
14
|
+
/**
|
15
|
+
* Specify what should be done when a file is generated but already exists on the system
|
16
|
+
*/
|
17
|
+
overwriteStrategy?: OverwriteStrategy;
|
18
|
+
}
|
2
19
|
/**
|
3
20
|
* Generates a folder of files based on provided templates.
|
4
21
|
*
|
@@ -20,7 +37,8 @@ import { Tree } from 'nx/src/devkit-exports';
|
|
20
37
|
* @param srcFolder - the source folder of files (absolute path)
|
21
38
|
* @param target - the target folder (relative to the tree root)
|
22
39
|
* @param substitutions - an object of key-value pairs
|
40
|
+
* @param options - See {@link GenerateFilesOptions}
|
23
41
|
*/
|
24
42
|
export declare function generateFiles(tree: Tree, srcFolder: string, target: string, substitutions: {
|
25
43
|
[k: string]: any;
|
26
|
-
}): void;
|
44
|
+
}, options?: GenerateFilesOptions): void;
|
@@ -1,10 +1,19 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.generateFiles = void 0;
|
3
|
+
exports.generateFiles = exports.OverwriteStrategy = void 0;
|
4
4
|
const fs_1 = require("fs");
|
5
5
|
const path = require("path");
|
6
6
|
const binary_extensions_1 = require("../utils/binary-extensions");
|
7
7
|
const devkit_exports_1 = require("nx/src/devkit-exports");
|
8
|
+
/**
|
9
|
+
* Specify what should be done when a file is generated but already exists on the system
|
10
|
+
*/
|
11
|
+
var OverwriteStrategy;
|
12
|
+
(function (OverwriteStrategy) {
|
13
|
+
OverwriteStrategy["Overwrite"] = "overwrite";
|
14
|
+
OverwriteStrategy["KeepExisting"] = "keepExisting";
|
15
|
+
OverwriteStrategy["ThrowIfExisting"] = "throwIfExisting";
|
16
|
+
})(OverwriteStrategy || (exports.OverwriteStrategy = OverwriteStrategy = {}));
|
8
17
|
/**
|
9
18
|
* Generates a folder of files based on provided templates.
|
10
19
|
*
|
@@ -26,8 +35,13 @@ const devkit_exports_1 = require("nx/src/devkit-exports");
|
|
26
35
|
* @param srcFolder - the source folder of files (absolute path)
|
27
36
|
* @param target - the target folder (relative to the tree root)
|
28
37
|
* @param substitutions - an object of key-value pairs
|
38
|
+
* @param options - See {@link GenerateFilesOptions}
|
29
39
|
*/
|
30
|
-
function generateFiles(tree, srcFolder, target, substitutions
|
40
|
+
function generateFiles(tree, srcFolder, target, substitutions, options = {
|
41
|
+
overwriteStrategy: OverwriteStrategy.Overwrite,
|
42
|
+
}) {
|
43
|
+
options ??= {};
|
44
|
+
options.overwriteStrategy ??= OverwriteStrategy.Overwrite;
|
31
45
|
const ejs = require('ejs');
|
32
46
|
const files = allFilesInDir(srcFolder);
|
33
47
|
if (files.length === 0) {
|
@@ -37,6 +51,15 @@ function generateFiles(tree, srcFolder, target, substitutions) {
|
|
37
51
|
files.forEach((filePath) => {
|
38
52
|
let newContent;
|
39
53
|
const computedPath = computePath(srcFolder, target, filePath, substitutions);
|
54
|
+
if (tree.exists(computedPath)) {
|
55
|
+
if (options.overwriteStrategy === OverwriteStrategy.KeepExisting) {
|
56
|
+
return;
|
57
|
+
}
|
58
|
+
else if (options.overwriteStrategy === OverwriteStrategy.ThrowIfExisting) {
|
59
|
+
throw new Error(`Generated file already exists, not allowed by overwrite strategy in generator (${computedPath})`);
|
60
|
+
}
|
61
|
+
// else: file should be overwritten, so just fall through to file generation
|
62
|
+
}
|
40
63
|
if ((0, binary_extensions_1.isBinaryPath)(filePath)) {
|
41
64
|
newContent = (0, fs_1.readFileSync)(filePath);
|
42
65
|
}
|