@rxap/ts-morph 1.1.0-dev.19 → 1.1.0-dev.20
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 +11 -0
- package/package.json +2 -2
- package/src/lib/angular/add-route.d.ts +3 -2
- package/src/lib/angular/add-route.js +35 -3
- package/src/lib/angular/add-route.js.map +1 -1
- package/src/lib/angular/build-route-object.d.ts +8 -2
- package/src/lib/angular/build-route-object.js +12 -2
- package/src/lib/angular/build-route-object.js.map +1 -1
- package/src/lib/angular/coerce-routes.js +1 -1
- package/src/lib/angular/coerce-routes.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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
|
+
# [1.1.0-dev.20](https://gitlab.com/rxap/packages/compare/@rxap/ts-morph@1.1.0-dev.19...@rxap/ts-morph@1.1.0-dev.20) (2024-03-15)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- pass missing name property ([3329809](https://gitlab.com/rxap/packages/commit/332980968b8440738e3441074fd2e4f187c01666))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- auto detect the inset at index ([948d812](https://gitlab.com/rxap/packages/commit/948d8127d132622f442d69a593ef995b16febe40))
|
|
15
|
+
- support complex load children and component ([4c10be5](https://gitlab.com/rxap/packages/commit/4c10be5ce97e57c7f554870eb4f93a2555f621f3))
|
|
16
|
+
|
|
6
17
|
# [1.1.0-dev.19](https://gitlab.com/rxap/packages/compare/@rxap/ts-morph@1.1.0-dev.18...@rxap/ts-morph@1.1.0-dev.19) (2024-03-14)
|
|
7
18
|
|
|
8
19
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.1.0-dev.
|
|
2
|
+
"version": "1.1.0-dev.20",
|
|
3
3
|
"name": "@rxap/ts-morph",
|
|
4
4
|
"license": "GPL-3.0-or-later",
|
|
5
5
|
"dependencies": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"directory": "packages/ts-morph"
|
|
45
45
|
},
|
|
46
46
|
"type": "commonjs",
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "f314d2e61a80e93a7420d2c9ce36adec2ab88c9b",
|
|
48
48
|
"main": "./src/index.js",
|
|
49
49
|
"types": "./src/index.d.ts"
|
|
50
50
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { SourceFile } from 'ts-morph';
|
|
1
|
+
import { ArrayLiteralExpression, SourceFile } from 'ts-morph';
|
|
2
2
|
import { AngularRoute } from './build-route-object';
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function DefaultInsertAtFactory(route: AngularRoute): (array: ArrayLiteralExpression) => number;
|
|
4
|
+
export declare function AddRoute(sourceFile: SourceFile, route: AngularRoute, path?: string[], name?: string, insertAt?: (array: ArrayLiteralExpression) => number): void;
|
|
@@ -1,11 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AddRoute = void 0;
|
|
3
|
+
exports.AddRoute = exports.DefaultInsertAtFactory = void 0;
|
|
4
4
|
const ts_morph_1 = require("ts-morph");
|
|
5
5
|
const coerce_array_element_1 = require("../coerce-array-element");
|
|
6
6
|
const build_route_object_1 = require("./build-route-object");
|
|
7
7
|
const find_parent_route_1 = require("./find-parent-route");
|
|
8
|
-
function
|
|
8
|
+
function DefaultInsertAtFactory(route) {
|
|
9
|
+
return (array) => {
|
|
10
|
+
var _a;
|
|
11
|
+
const elementCount = array.getElements().length;
|
|
12
|
+
if (route.path === '') {
|
|
13
|
+
if (elementCount > 0) {
|
|
14
|
+
const lastElement = array.getElements()[elementCount - 1];
|
|
15
|
+
if (lastElement.isKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression)) {
|
|
16
|
+
if ((_a = lastElement.asKindOrThrow(ts_morph_1.SyntaxKind.ObjectLiteralExpression).getProperty('path')) === null || _a === void 0 ? void 0 : _a.getText().match(/\*\*/)) {
|
|
17
|
+
return elementCount - 2;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return array.getElements().length - 1;
|
|
22
|
+
}
|
|
23
|
+
let insertAt = 0;
|
|
24
|
+
if (elementCount > 0) {
|
|
25
|
+
// find the first object literal
|
|
26
|
+
// this ensures that use of variables for route imports like STATUS_CHECK_ROUTE is always the first element
|
|
27
|
+
for (const element of array.getElements()) {
|
|
28
|
+
if (!element.isKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression)) {
|
|
29
|
+
insertAt++;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return insertAt;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
exports.DefaultInsertAtFactory = DefaultInsertAtFactory;
|
|
40
|
+
function AddRoute(sourceFile, route, path, name = 'ROUTES', insertAt = DefaultInsertAtFactory(route)) {
|
|
9
41
|
const routes = sourceFile.getVariableDeclaration(name);
|
|
10
42
|
if (routes) {
|
|
11
43
|
let initializer = routes.getInitializerIfKindOrThrow(ts_morph_1.SyntaxKind.ArrayLiteralExpression);
|
|
@@ -13,7 +45,7 @@ function AddRoute(sourceFile, route, path, name = 'ROUTES', insertAt = 0) {
|
|
|
13
45
|
initializer = (0, find_parent_route_1.FindParentRoute)(initializer, path);
|
|
14
46
|
}
|
|
15
47
|
if (initializer) {
|
|
16
|
-
(0, coerce_array_element_1.CoerceArrayElement)(initializer, (0, build_route_object_1.BuildRouteObject)(route), (0, coerce_array_element_1.FindArrayElementByObjectProperty)('path', route.path),
|
|
48
|
+
(0, coerce_array_element_1.CoerceArrayElement)(initializer, (0, build_route_object_1.BuildRouteObject)(route), (0, coerce_array_element_1.FindArrayElementByObjectProperty)('path', route.path), insertAt);
|
|
17
49
|
}
|
|
18
50
|
else {
|
|
19
51
|
console.warn('Initializer not found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/add-route.ts"],"names":[],"mappings":";;;AAAA,uCAIkB;AAClB,kEAGiC;AACjC,6DAG8B;AAC9B,2DAAsD;AAEtD,SAAgB,QAAQ,CAAC,UAAsB,EAAE,KAAmB,EAAE,IAAe,EAAE,IAAI,GAAG,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"add-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/add-route.ts"],"names":[],"mappings":";;;AAAA,uCAIkB;AAClB,kEAGiC;AACjC,6DAG8B;AAC9B,2DAAsD;AAEtD,SAAgB,sBAAsB,CAAC,KAAmB;IACxD,OAAO,CAAC,KAA6B,EAAE,EAAE;;QACvC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;QAChD,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,EAAE;YACrB,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC1D,IAAI,WAAW,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;oBAC1D,IAAI,MAAA,WAAW,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,0CAAE,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;wBAC9G,OAAO,YAAY,GAAG,CAAC,CAAC;qBACzB;iBACF;aACF;YACD,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACvC;QACD,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,YAAY,GAAG,CAAC,EAAE;YACpB,gCAAgC;YAChC,2GAA2G;YAC3G,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;oBACvD,QAAQ,EAAE,CAAC;iBACZ;qBAAM;oBACL,MAAM;iBACP;aACF;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AA5BD,wDA4BC;AAED,SAAgB,QAAQ,CAAC,UAAsB,EAAE,KAAmB,EAAE,IAAe,EAAE,IAAI,GAAG,QAAQ,EAAE,WAAsD,sBAAsB,CAAC,KAAK,CAAC;IACzL,MAAM,MAAM,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,MAAM,EAAE;QACV,IAAI,WAAW,GAAkC,MAAM,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;QACvH,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE;YAChB,WAAW,GAAG,IAAA,mCAAe,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAClD;QACD,IAAI,WAAW,EAAE;YACf,IAAA,yCAAkB,EAChB,WAAW,EAAE,IAAA,qCAAgB,EAAC,KAAK,CAAC,EAAE,IAAA,uDAAgC,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;SACzG;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACvC;KACF;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;KAC5C;AACH,CAAC;AAhBD,4BAgBC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { WriterFunction } from 'ts-morph';
|
|
2
2
|
export interface AngularRoute {
|
|
3
3
|
path: string;
|
|
4
|
-
loadChildren?: string
|
|
5
|
-
|
|
4
|
+
loadChildren?: string | {
|
|
5
|
+
import: string;
|
|
6
|
+
then: string;
|
|
7
|
+
};
|
|
8
|
+
loadComponent?: string | {
|
|
9
|
+
import: string;
|
|
10
|
+
then: string;
|
|
11
|
+
};
|
|
6
12
|
}
|
|
7
13
|
export declare function BuildRouteObject(route: AngularRoute): WriterFunction;
|
|
@@ -7,10 +7,20 @@ function BuildRouteObject(route) {
|
|
|
7
7
|
path: w => w.quote(route.path),
|
|
8
8
|
};
|
|
9
9
|
if (route.loadChildren) {
|
|
10
|
-
|
|
10
|
+
if (typeof route.loadChildren === 'string') {
|
|
11
|
+
obj['loadChildren'] = `() => import('${route.loadChildren}')`;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
obj['loadChildren'] = `() => import('${route.loadChildren.import}').then((m) => m.${route.loadChildren.then})`;
|
|
15
|
+
}
|
|
11
16
|
}
|
|
12
17
|
if (route.loadComponent) {
|
|
13
|
-
|
|
18
|
+
if (typeof route.loadComponent === 'string') {
|
|
19
|
+
obj['loadComponent'] = `() => import('${route.loadComponent}')`;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
obj['loadComponent'] = `() => import('${route.loadComponent.import}').then((m) => m.${route.loadComponent.then})`;
|
|
23
|
+
}
|
|
14
24
|
}
|
|
15
25
|
return ts_morph_1.Writers.object(obj);
|
|
16
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-route-object.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/build-route-object.ts"],"names":[],"mappings":";;;AAAA,uCAGkB;AAQlB,SAAgB,gBAAgB,CAAC,KAAmB;IAClD,MAAM,GAAG,GAA4C;QACnD,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;KAC/B,CAAC;IACF,IAAI,KAAK,CAAC,YAAY,EAAE;QACtB,GAAG,CAAC,cAAc,CAAC,GAAG,iBAAkB,KAAK,CAAC,YAAa,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"build-route-object.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/build-route-object.ts"],"names":[],"mappings":";;;AAAA,uCAGkB;AAQlB,SAAgB,gBAAgB,CAAC,KAAmB;IAClD,MAAM,GAAG,GAA4C;QACnD,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;KAC/B,CAAC;IACF,IAAI,KAAK,CAAC,YAAY,EAAE;QACtB,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE;YAC1C,GAAG,CAAC,cAAc,CAAC,GAAG,iBAAkB,KAAK,CAAC,YAAa,IAAI,CAAC;SACjE;aAAM;YACL,GAAG,CAAC,cAAc,CAAC,GAAG,iBAAkB,KAAK,CAAC,YAAY,CAAC,MAAO,oBAAqB,KAAK,CAAC,YAAY,CAAC,IAAK,GAAG,CAAC;SACpH;KACF;IACD,IAAI,KAAK,CAAC,aAAa,EAAE;QACvB,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;YAC3C,GAAG,CAAC,eAAe,CAAC,GAAG,iBAAkB,KAAK,CAAC,aAAc,IAAI,CAAC;SACnE;aAAM;YACL,GAAG,CAAC,eAAe,CAAC,GAAG,iBAAkB,KAAK,CAAC,aAAa,CAAC,MAAO,oBAAqB,KAAK,CAAC,aAAa,CAAC,IAAK,GAAG,CAAC;SACvH;KACF;IACD,OAAO,kBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAnBD,4CAmBC"}
|
|
@@ -27,7 +27,7 @@ function CoerceRoutes(sourceFile, options = {}) {
|
|
|
27
27
|
},
|
|
28
28
|
]);
|
|
29
29
|
for (const { route, path } of (_a = options.itemList) !== null && _a !== void 0 ? _a : []) {
|
|
30
|
-
(0, add_route_1.AddRoute)(sourceFile, route, path);
|
|
30
|
+
(0, add_route_1.AddRoute)(sourceFile, route, path, name);
|
|
31
31
|
}
|
|
32
32
|
return variableDeclaration;
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce-routes.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/coerce-routes.ts"],"names":[],"mappings":";;;AAAA,uCAIkB;AAClB,oEAA+D;AAC/D,sDAAkD;AAClD,gFAA2E;AAC3E,2CAAuC;AASvC,SAAgB,YAAY,CAAC,UAAsB,EAAE,UAA+B,EAAE;;IAEpF,MAAM,EACJ,IAAI,GAAG,QAAQ,EACf,WAAW,GAAG,kCAAkC,EACjD,GAAG,OAAO,CAAC;IAEZ,0GAA0G;IAC1G,IAAI,mBAAmB,GAAG,IAAA,uDAAyB,EAAC,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9G,IAAI,mBAAmB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACjH,mBAAmB,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,CAAC;KAC5D;IACD,YAAY;IACZ,mBAAmB,GAAG,IAAA,uDAAyB,EAAC,UAAU,EAAE,IAAI,EAAE;QAChE,WAAW;QACX,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,IAAA,2CAAmB,EAAC,mBAAmB,CAAC,CAAC;IACzC,IAAA,8BAAa,EAAC,UAAU,EAAE;QACxB;YACE,YAAY,EAAE,CAAE,OAAO,CAAE;YACzB,eAAe,EAAE,iBAAiB;SACnC;KACF,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,EAAE;QACpD,IAAA,oBAAQ,EAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"coerce-routes.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/coerce-routes.ts"],"names":[],"mappings":";;;AAAA,uCAIkB;AAClB,oEAA+D;AAC/D,sDAAkD;AAClD,gFAA2E;AAC3E,2CAAuC;AASvC,SAAgB,YAAY,CAAC,UAAsB,EAAE,UAA+B,EAAE;;IAEpF,MAAM,EACJ,IAAI,GAAG,QAAQ,EACf,WAAW,GAAG,kCAAkC,EACjD,GAAG,OAAO,CAAC;IAEZ,0GAA0G;IAC1G,IAAI,mBAAmB,GAAG,IAAA,uDAAyB,EAAC,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9G,IAAI,mBAAmB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACjH,mBAAmB,CAAC,2BAA2B,EAAE,CAAC,MAAM,EAAE,CAAC;KAC5D;IACD,YAAY;IACZ,mBAAmB,GAAG,IAAA,uDAAyB,EAAC,UAAU,EAAE,IAAI,EAAE;QAChE,WAAW;QACX,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,IAAA,2CAAmB,EAAC,mBAAmB,CAAC,CAAC;IACzC,IAAA,8BAAa,EAAC,UAAU,EAAE;QACxB;YACE,YAAY,EAAE,CAAE,OAAO,CAAE;YACzB,eAAe,EAAE,iBAAiB;SACnC;KACF,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,EAAE;QACpD,IAAA,oBAAQ,EAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACzC;IAED,OAAO,mBAAmB,CAAC;AAE7B,CAAC;AA/BD,oCA+BC"}
|