@rxap/workspace-ts-morph 19.1.13-dev.3 → 19.1.13-dev.5
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/CHANGELOG.md +8 -0
- package/package.json +5 -5
- package/src/lib/apply-ts-morph-project.d.ts +2 -1
- package/src/lib/apply-ts-morph-project.js +22 -7
- package/src/lib/apply-ts-morph-project.js.map +1 -1
- package/src/lib/ts-morph-transform.d.ts +12 -15
- package/src/lib/ts-morph-transform.js +62 -66
- package/src/lib/ts-morph-transform.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [19.1.13-dev.5](https://gitlab.com/rxap/packages/compare/@rxap/workspace-ts-morph@19.1.13-dev.4...@rxap/workspace-ts-morph@19.1.13-dev.5) (2026-01-19)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rxap/workspace-ts-morph
|
|
9
|
+
|
|
10
|
+
## [19.1.13-dev.4](https://gitlab.com/rxap/packages/compare/@rxap/workspace-ts-morph@19.1.13-dev.3...@rxap/workspace-ts-morph@19.1.13-dev.4) (2026-01-13)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @rxap/workspace-ts-morph
|
|
13
|
+
|
|
6
14
|
## [19.1.13-dev.3](https://gitlab.com/rxap/packages/compare/@rxap/workspace-ts-morph@19.1.13-dev.2...@rxap/workspace-ts-morph@19.1.13-dev.3) (2025-09-18)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @rxap/workspace-ts-morph
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "19.1.13-dev.
|
|
2
|
+
"version": "19.1.13-dev.5",
|
|
3
3
|
"name": "@rxap/workspace-ts-morph",
|
|
4
4
|
"description": "This package provides utilities for transforming workspace files using the TypeScript compiler API via ts-morph. It includes functions to add directories to a ts-morph project, apply ts-morph project changes to a tree, and perform transformations on Angular and Nest projects. The package also offers an init generator for adding peer dependencies to a project.\n",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@nx/devkit": "20.5.0",
|
|
8
|
-
"@rxap/ts-morph": "^1.6.0-dev.
|
|
9
|
-
"@rxap/utilities": "^16.5.0-dev.
|
|
10
|
-
"@rxap/workspace-utilities": "^19.
|
|
8
|
+
"@rxap/ts-morph": "^1.6.0-dev.3",
|
|
9
|
+
"@rxap/utilities": "^16.5.0-dev.1",
|
|
10
|
+
"@rxap/workspace-utilities": "^19.9.0-dev.0",
|
|
11
11
|
"ts-morph": "^18.0.0",
|
|
12
12
|
"tslib": "2.6.2"
|
|
13
13
|
},
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"schematics": "./generators.json",
|
|
42
42
|
"type": "commonjs",
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "5ad37909a73f9e3eaab7208cdf5b0e12eb759c7e",
|
|
44
44
|
"types": "./src/index.d.ts",
|
|
45
45
|
"main": "./src/index.js"
|
|
46
46
|
}
|
|
@@ -8,6 +8,7 @@ import { Project } from 'ts-morph';
|
|
|
8
8
|
* @param {string} [basePath=''] - The base path in the file tree where the project files will be located. Defaults to an empty string, representing the root.
|
|
9
9
|
* @param {boolean} [organizeImports=true] - A flag indicating whether to organize imports within each source file. Defaults to true.
|
|
10
10
|
* @param {boolean} [fixMissingImports=false] - A flag indicating whether to automatically fix missing imports within each source file. Defaults to false.
|
|
11
|
+
* @param {boolean} [prettier=true] - A flag indicating whether to format the source files using Prettier. Defaults to true.
|
|
11
12
|
*
|
|
12
13
|
* This function performs the following operations:
|
|
13
14
|
* 1. Optionally fixes missing imports and organizes imports in all source files of the project if the respective flags are set.
|
|
@@ -20,4 +21,4 @@ import { Project } from 'ts-morph';
|
|
|
20
21
|
*
|
|
21
22
|
* Note: This function utilizes the `TreeAdapter` to interact with the file tree, ensuring that file operations are abstracted and can handle different tree implementations.
|
|
22
23
|
*/
|
|
23
|
-
export declare function ApplyTsMorphProject(tree: TreeLike, project: Project, basePath?: string, organizeImports?: boolean, fixMissingImports?: boolean): void
|
|
24
|
+
export declare function ApplyTsMorphProject(tree: TreeLike, project: Project, basePath?: string, organizeImports?: boolean, fixMissingImports?: boolean, prettier?: boolean): Promise<void[]>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ApplyTsMorphProject = ApplyTsMorphProject;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const ts_morph_1 = require("@rxap/ts-morph");
|
|
5
6
|
const workspace_utilities_1 = require("@rxap/workspace-utilities");
|
|
6
7
|
const path_1 = require("path");
|
|
8
|
+
const prettier_1 = require("prettier");
|
|
7
9
|
/**
|
|
8
10
|
* Determines if two `SourceFile` objects are the same by comparing their leaf nodes.
|
|
9
11
|
*
|
|
@@ -60,6 +62,7 @@ function areSame(sourceFile1, sourceFile2) {
|
|
|
60
62
|
* @param {string} [basePath=''] - The base path in the file tree where the project files will be located. Defaults to an empty string, representing the root.
|
|
61
63
|
* @param {boolean} [organizeImports=true] - A flag indicating whether to organize imports within each source file. Defaults to true.
|
|
62
64
|
* @param {boolean} [fixMissingImports=false] - A flag indicating whether to automatically fix missing imports within each source file. Defaults to false.
|
|
65
|
+
* @param {boolean} [prettier=true] - A flag indicating whether to format the source files using Prettier. Defaults to true.
|
|
63
66
|
*
|
|
64
67
|
* This function performs the following operations:
|
|
65
68
|
* 1. Optionally fixes missing imports and organizes imports in all source files of the project if the respective flags are set.
|
|
@@ -72,7 +75,7 @@ function areSame(sourceFile1, sourceFile2) {
|
|
|
72
75
|
*
|
|
73
76
|
* Note: This function utilizes the `TreeAdapter` to interact with the file tree, ensuring that file operations are abstracted and can handle different tree implementations.
|
|
74
77
|
*/
|
|
75
|
-
function ApplyTsMorphProject(tree, project, basePath = '', organizeImports = true, fixMissingImports = false) {
|
|
78
|
+
function ApplyTsMorphProject(tree, project, basePath = '', organizeImports = true, fixMissingImports = false, prettier = true) {
|
|
76
79
|
if (organizeImports || fixMissingImports) {
|
|
77
80
|
project
|
|
78
81
|
.getSourceFiles()
|
|
@@ -86,20 +89,32 @@ function ApplyTsMorphProject(tree, project, basePath = '', organizeImports = tru
|
|
|
86
89
|
});
|
|
87
90
|
}
|
|
88
91
|
const treeAdapter = new workspace_utilities_1.TreeAdapter(tree);
|
|
89
|
-
project
|
|
90
|
-
.getSourceFiles()
|
|
91
|
-
.forEach(sourceFile => {
|
|
92
|
+
return Promise.all(project
|
|
93
|
+
.getSourceFiles().map((sourceFile) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
92
94
|
const filePath = (0, path_1.join)(basePath, sourceFile.getFilePath());
|
|
93
95
|
if (tree.exists(filePath)) {
|
|
94
|
-
const currentContent = treeAdapter.read(filePath
|
|
96
|
+
const currentContent = treeAdapter.read(filePath, 'utf-8');
|
|
95
97
|
const tmpProject = (0, ts_morph_1.CreateProject)();
|
|
96
|
-
const newContent = sourceFile
|
|
98
|
+
const newContent = yield getFormatedFullText(sourceFile, filePath, prettier);
|
|
97
99
|
if (!areSame(sourceFile, tmpProject.createSourceFile('/tmp.ts', currentContent))) {
|
|
98
100
|
treeAdapter.overwrite(filePath, newContent);
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
else {
|
|
102
|
-
|
|
104
|
+
console.log(`Applying changes to ${filePath}`);
|
|
105
|
+
treeAdapter.create(filePath, yield getFormatedFullText(sourceFile, filePath, prettier));
|
|
106
|
+
}
|
|
107
|
+
})));
|
|
108
|
+
}
|
|
109
|
+
function getFormatedFullText(sourceFile, filePath, prettier) {
|
|
110
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
if (prettier) {
|
|
112
|
+
const options = yield (0, prettier_1.resolveConfig)(filePath);
|
|
113
|
+
const content = sourceFile.getFullText();
|
|
114
|
+
return yield (0, prettier_1.format)(content, Object.assign(Object.assign({}, options), { parser: 'typescript', filepath: filePath }));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return sourceFile.getFullText();
|
|
103
118
|
}
|
|
104
119
|
});
|
|
105
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-ts-morph-project.js","sourceRoot":"","sources":["../../../../../../packages/workspace/ts-morph/src/lib/apply-ts-morph-project.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"apply-ts-morph-project.js","sourceRoot":"","sources":["../../../../../../packages/workspace/ts-morph/src/lib/apply-ts-morph-project.ts"],"names":[],"mappings":";;AAwFA,kDAwCC;;AAhID,6CAA+C;AAC/C,mEAKmC;AACnC,+BAA4B;AAM5B,uCAAiD;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,SAAS,OAAO,CAAC,WAAuB,EAAE,WAAuB;IAC/D,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAE7C,iDAAiD;IACjD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAEhC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,CAAC,YAAY,CAAC,UAAsB;QAC3C,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE9B,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAU;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7B,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,mBAAmB,CACjC,IAAc,EACd,OAAgB,EAChB,QAAQ,GAAG,EAAE,EACb,eAAe,GAAG,IAAI,EACtB,iBAAiB,GAAG,KAAK,EACzB,QAAQ,GAAG,IAAI;IAEf,IAAI,eAAe,IAAI,iBAAiB,EAAE,CAAC;QACzC,OAAO;aACJ,cAAc,EAAE;aAChB,OAAO,CAAC,UAAU,CAAC,EAAE;YACpB,IAAI,iBAAiB,EAAE,CAAC;gBACtB,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACjC,CAAC;YACD,IAAI,eAAe,EAAE,CAAC;gBACpB,UAAU,CAAC,eAAe,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,iCAAW,CAAC,IAAI,CAAC,CAAC;IAE1C,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO;SACvB,cAAc,EAAE,CAAC,GAAG,CAAC,CAAM,UAAU,EAAC,EAAE;QACvC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAE,CAAC;YAC5D,MAAM,UAAU,GAAG,IAAA,wBAAa,GAAE,CAAC;YACnC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;gBACjF,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;YAC/C,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1F,CAAC;IAEH,CAAC,CAAA,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAe,mBAAmB,CAAC,UAAsB,EAAE,QAAgB,EAAE,QAAiB;;QAC5F,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,MAAM,IAAA,iBAAM,EAAC,OAAO,kCAAO,OAAO,KAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,IAAG,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;CAAA"}
|
|
@@ -15,12 +15,9 @@ export interface TsMorphTransformOptions {
|
|
|
15
15
|
*/
|
|
16
16
|
includeNonTsFiles?: boolean;
|
|
17
17
|
}
|
|
18
|
-
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: SourceFile[]) => void, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: string[]): void
|
|
19
|
-
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: SourceFile) => void, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: string): void
|
|
20
|
-
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: undefined) => void, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: undefined): void
|
|
21
|
-
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: SourceFile[]) => Promise<void>, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: string[]): Promise<void>;
|
|
22
|
-
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: SourceFile) => Promise<void>, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: string): Promise<void>;
|
|
23
|
-
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: undefined) => Promise<void>, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: undefined): Promise<void>;
|
|
18
|
+
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: SourceFile[]) => Promise<void> | void, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: string[]): Promise<void>;
|
|
19
|
+
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: SourceFile) => Promise<void> | void, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: string): Promise<void>;
|
|
20
|
+
export declare function TsMorphTransform(tree: TreeLike, sourceRoot: string, cb: (project: Project, sourceFile: undefined) => Promise<void> | void, options?: TsMorphTransformOptions, projectOptions?: Partial<ProjectOptions>, filePath?: undefined): Promise<void>;
|
|
24
21
|
export interface TsMorphNestProjectTransformOptions extends TsMorphTransformOptions {
|
|
25
22
|
project: string;
|
|
26
23
|
feature?: string | null;
|
|
@@ -32,24 +29,24 @@ export interface TsMorphNestProjectTransformOptions extends TsMorphTransformOpti
|
|
|
32
29
|
kind?: any;
|
|
33
30
|
} | undefined;
|
|
34
31
|
}
|
|
35
|
-
export declare function TsMorphNestProjectTransform(tree: TreeLike, options: Readonly<TsMorphNestProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile[]) => void, filePath: string[]): void
|
|
32
|
+
export declare function TsMorphNestProjectTransform(tree: TreeLike, options: Readonly<TsMorphNestProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile[]) => void, filePath: string[]): Promise<void>;
|
|
36
33
|
/**
|
|
37
34
|
* @deprecated pass the filePath as array
|
|
38
35
|
*/
|
|
39
|
-
export declare function TsMorphNestProjectTransform(tree: TreeLike, options: Readonly<TsMorphNestProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile) => void, filePath: string): void
|
|
40
|
-
export declare function TsMorphNestProjectTransform(tree: TreeLike, options: Readonly<TsMorphNestProjectTransformOptions>, cb: (project: Project, sourceFile: undefined) => void, filePath?: undefined): void
|
|
36
|
+
export declare function TsMorphNestProjectTransform(tree: TreeLike, options: Readonly<TsMorphNestProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile) => void, filePath: string): Promise<void>;
|
|
37
|
+
export declare function TsMorphNestProjectTransform(tree: TreeLike, options: Readonly<TsMorphNestProjectTransformOptions>, cb: (project: Project, sourceFile: undefined) => void, filePath?: undefined): Promise<void>;
|
|
41
38
|
export interface TsMorphAngularProjectTransformOptions extends BuildAngularBasePathOptions, TsMorphTransformOptions {
|
|
42
39
|
projectOptions?: Partial<ProjectOptions>;
|
|
43
40
|
basePath?: string;
|
|
44
41
|
}
|
|
45
|
-
export declare function TsMorphAngularProjectTransform(tree: TreeLike, options: Readonly<TsMorphAngularProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile[]) => void, filePath: string[]): void
|
|
46
|
-
export declare function TsMorphAngularProjectTransform(tree: TreeLike, options: Readonly<TsMorphAngularProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile) => void, filePath: string): void
|
|
47
|
-
export declare function TsMorphAngularProjectTransform(tree: TreeLike, options: Readonly<TsMorphAngularProjectTransformOptions>, cb: (project: Project, sourceFile: undefined) => void, filePath?: undefined): void
|
|
42
|
+
export declare function TsMorphAngularProjectTransform(tree: TreeLike, options: Readonly<TsMorphAngularProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile[]) => void, filePath: string[]): Promise<void>;
|
|
43
|
+
export declare function TsMorphAngularProjectTransform(tree: TreeLike, options: Readonly<TsMorphAngularProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile) => void, filePath: string): Promise<void>;
|
|
44
|
+
export declare function TsMorphAngularProjectTransform(tree: TreeLike, options: Readonly<TsMorphAngularProjectTransformOptions>, cb: (project: Project, sourceFile: undefined) => void, filePath?: undefined): Promise<void>;
|
|
48
45
|
export interface TsMorphProjectTransformOptions extends TsMorphTransformOptions {
|
|
49
46
|
projectOptions?: Partial<ProjectOptions>;
|
|
50
47
|
project: string;
|
|
51
48
|
}
|
|
52
|
-
export declare function TsMorphProjectTransform(tree: TreeLike, options: Readonly<TsMorphProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile[]) => void, filePath: string[]): void
|
|
53
|
-
export declare function TsMorphProjectTransform(tree: TreeLike, options: Readonly<TsMorphProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile) => void, filePath: string): void
|
|
54
|
-
export declare function TsMorphProjectTransform(tree: TreeLike, options: Readonly<TsMorphProjectTransformOptions>, cb: (project: Project, sourceFile: undefined) => void, filePath?: undefined): void
|
|
49
|
+
export declare function TsMorphProjectTransform(tree: TreeLike, options: Readonly<TsMorphProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile[]) => void, filePath: string[]): Promise<void>;
|
|
50
|
+
export declare function TsMorphProjectTransform(tree: TreeLike, options: Readonly<TsMorphProjectTransformOptions>, cb: (project: Project, sourceFile: SourceFile) => void, filePath: string): Promise<void>;
|
|
51
|
+
export declare function TsMorphProjectTransform(tree: TreeLike, options: Readonly<TsMorphProjectTransformOptions>, cb: (project: Project, sourceFile: undefined) => void, filePath?: undefined): Promise<void>;
|
|
55
52
|
export type TsMorphTransformFunction<Options extends TsMorphNestProjectTransformOptions | TsMorphAngularProjectTransformOptions> = ((tree: TreeLike, options: Readonly<Options>, cb: (project: Project, sourceFile: SourceFile[]) => void, filePath: string[]) => void);
|
|
@@ -4,6 +4,7 @@ exports.TsMorphTransform = TsMorphTransform;
|
|
|
4
4
|
exports.TsMorphNestProjectTransform = TsMorphNestProjectTransform;
|
|
5
5
|
exports.TsMorphAngularProjectTransform = TsMorphAngularProjectTransform;
|
|
6
6
|
exports.TsMorphProjectTransform = TsMorphProjectTransform;
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
7
8
|
const ts_morph_1 = require("@rxap/ts-morph");
|
|
8
9
|
const utilities_1 = require("@rxap/utilities");
|
|
9
10
|
const workspace_utilities_1 = require("@rxap/workspace-utilities");
|
|
@@ -31,83 +32,78 @@ const apply_ts_morph_project_1 = require("./apply-ts-morph-project");
|
|
|
31
32
|
* - Throws an error if a specified file does not exist and is not marked as optional when `replace` is false.
|
|
32
33
|
* - Throws an error if `filePathFilter` is not an array but multiple files are attempted to be processed.
|
|
33
34
|
*/
|
|
34
|
-
function TsMorphTransform(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
else {
|
|
42
|
-
filePath = [filePathFilter];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
const project = (0, ts_morph_1.CreateProject)(projectOptions);
|
|
46
|
-
console.log(`TsMorphTransform for sourceRoot '${sourceRoot}' with fileList: [ ${(0, utilities_1.coerceArray)(filePathFilter).join(', ')} ]`.grey);
|
|
47
|
-
if (!replace) {
|
|
48
|
-
(0, add_dir_1.AddDir)(tree, sourceRoot, project, (fileName, dirPath) => {
|
|
49
|
-
let include = false;
|
|
50
|
-
if (!filePath || !filter) {
|
|
51
|
-
include = true;
|
|
35
|
+
function TsMorphTransform(tree_1, sourceRoot_1, cb_1) {
|
|
36
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* (tree, sourceRoot, cb, options = {}, projectOptions = {}, filePathFilter) {
|
|
37
|
+
const { replace = false, filter = true, } = options;
|
|
38
|
+
let filePath = undefined;
|
|
39
|
+
if (filePathFilter) {
|
|
40
|
+
if (Array.isArray(filePathFilter)) {
|
|
41
|
+
filePath = filePathFilter;
|
|
52
42
|
}
|
|
53
43
|
else {
|
|
54
|
-
|
|
55
|
-
if (dirPath.endsWith(fileName)) {
|
|
56
|
-
throw new Error(`The dirPath '${dirPath}' ends with the fileName '${fileName}'`);
|
|
57
|
-
}
|
|
58
|
-
include = filePath.map(f => f.replace(/\?$/, '')).some(f => fullPath.endsWith(f));
|
|
59
|
-
}
|
|
60
|
-
if (include && !options.includeNonTsFiles && !fileName.endsWith('.ts')) {
|
|
61
|
-
include = false;
|
|
44
|
+
filePath = [filePathFilter];
|
|
62
45
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
if (
|
|
75
|
-
|
|
76
|
-
sf = project.createSourceFile(fileName, '');
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
console.log(project.getSourceFiles().map(f => f.getFilePath()));
|
|
80
|
-
throw new Error(`The file ${fileName} does not exists with the source root ${sourceRoot}`);
|
|
81
|
-
}
|
|
46
|
+
}
|
|
47
|
+
const project = (0, ts_morph_1.CreateProject)(projectOptions);
|
|
48
|
+
process.env['RXAP_GENERATOR_DEBUG'] === 'true' && console.log(`TsMorphTransform for sourceRoot '${sourceRoot}' with fileList: [ ${(0, utilities_1.coerceArray)(filePathFilter).join(', ')} ]`.grey);
|
|
49
|
+
if (!replace) {
|
|
50
|
+
(0, add_dir_1.AddDir)(tree, sourceRoot, project, (fileName, dirPath) => {
|
|
51
|
+
let include = false;
|
|
52
|
+
if (!filePath || !filter) {
|
|
53
|
+
include = true;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const fullPath = (0, path_1.join)(dirPath, fileName);
|
|
57
|
+
if (dirPath.endsWith(fileName)) {
|
|
58
|
+
throw new Error(`The dirPath '${dirPath}' ends with the fileName '${fileName}'`);
|
|
82
59
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
60
|
+
include = filePath.map(f => f.replace(/\?$/, '')).some(f => fullPath.endsWith(f));
|
|
61
|
+
}
|
|
62
|
+
if (include && !options.includeNonTsFiles && !fileName.endsWith('.ts')) {
|
|
63
|
+
include = false;
|
|
64
|
+
}
|
|
65
|
+
return include;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
let sourceFile = undefined;
|
|
69
|
+
if (filePath) {
|
|
70
|
+
if (Array.isArray(filePath)) {
|
|
71
|
+
sourceFile = filePath.map((f, index) => {
|
|
72
|
+
const fileName = f.replace(/\?$/, '');
|
|
73
|
+
const isOptional = f.endsWith('?');
|
|
74
|
+
let sf = project.getSourceFile(fileName);
|
|
75
|
+
if (!sf) {
|
|
76
|
+
if (Array.isArray(filePathFilter)) {
|
|
77
|
+
if (replace || isOptional) {
|
|
78
|
+
sf = project.createSourceFile(fileName, '');
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.log(project.getSourceFiles().map(f => f.getFilePath()));
|
|
82
|
+
throw new Error(`The file ${fileName} does not exists with the source root ${sourceRoot}`);
|
|
83
|
+
}
|
|
89
84
|
}
|
|
90
85
|
else {
|
|
91
|
-
|
|
86
|
+
if (index !== 0) {
|
|
87
|
+
throw new Error('FATAL: The filePathFilter is not an array and the index is not 0');
|
|
88
|
+
}
|
|
89
|
+
if (replace || isOptional) {
|
|
90
|
+
sf = project.createSourceFile(fileName, '');
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
throw new Error(`The file ${fileName} does not exists with the source root ${sourceRoot}`);
|
|
94
|
+
}
|
|
92
95
|
}
|
|
93
96
|
}
|
|
97
|
+
return sf;
|
|
98
|
+
});
|
|
99
|
+
if (!Array.isArray(filePathFilter)) {
|
|
100
|
+
sourceFile = sourceFile[0];
|
|
94
101
|
}
|
|
95
|
-
return sf;
|
|
96
|
-
});
|
|
97
|
-
if (!Array.isArray(filePathFilter)) {
|
|
98
|
-
sourceFile = sourceFile[0];
|
|
99
102
|
}
|
|
100
103
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return result.then(() => {
|
|
105
|
-
(0, apply_ts_morph_project_1.ApplyTsMorphProject)(tree, project, sourceRoot, false);
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
(0, apply_ts_morph_project_1.ApplyTsMorphProject)(tree, project, sourceRoot, false);
|
|
110
|
-
}
|
|
104
|
+
yield cb(project, sourceFile);
|
|
105
|
+
yield (0, apply_ts_morph_project_1.ApplyTsMorphProject)(tree, project, sourceRoot, false);
|
|
106
|
+
});
|
|
111
107
|
}
|
|
112
108
|
/**
|
|
113
109
|
* Transforms a NestJS project using TypeScript morph transformations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-morph-transform.js","sourceRoot":"","sources":["../../../../../../packages/workspace/ts-morph/src/lib/ts-morph-transform.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ts-morph-transform.js","sourceRoot":"","sources":["../../../../../../packages/workspace/ts-morph/src/lib/ts-morph-transform.ts"],"names":[],"mappings":"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"}
|