@rxap/ts-morph 1.1.0-dev.27 → 1.1.0-dev.28

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 CHANGED
@@ -3,6 +3,13 @@
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.28](https://gitlab.com/rxap/packages/compare/@rxap/ts-morph@1.1.0-dev.27...@rxap/ts-morph@1.1.0-dev.28) (2024-04-10)
7
+
8
+ ### Features
9
+
10
+ - support complex remove instructions ([960fac0](https://gitlab.com/rxap/packages/commit/960fac050bec4e2b017c2006fac615ccede09ab2))
11
+ - support search and add route by component ([6dd9f2e](https://gitlab.com/rxap/packages/commit/6dd9f2e7fedfe4cbd3af86f88be7b8221c3ae867))
12
+
6
13
  # [1.1.0-dev.27](https://gitlab.com/rxap/packages/compare/@rxap/ts-morph@1.1.0-dev.26...@rxap/ts-morph@1.1.0-dev.27) (2024-04-10)
7
14
 
8
15
  ### Bug Fixes
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.0-dev.27",
2
+ "version": "1.1.0-dev.28",
3
3
  "name": "@rxap/ts-morph",
4
4
  "license": "GPL-3.0-or-later",
5
5
  "dependencies": {
@@ -45,6 +45,6 @@
45
45
  "directory": "packages/ts-morph"
46
46
  },
47
47
  "type": "commonjs",
48
- "gitHead": "6f0063949d865d0de862222bbbb16cb46b12460b",
48
+ "gitHead": "26c9b004b6836964712ac9c2cf60e99613b034b2",
49
49
  "main": "./src/index.js"
50
50
  }
@@ -1,4 +1,12 @@
1
1
  import { ArrayLiteralExpression, SourceFile } from 'ts-morph';
2
2
  import { AngularRoute } from './build-route-object';
3
+ import 'colors';
3
4
  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;
5
+ export interface AddRouteOptions {
6
+ route: AngularRoute;
7
+ path?: string[];
8
+ component?: string;
9
+ name?: string;
10
+ insertAt?: (array: ArrayLiteralExpression) => number;
11
+ }
12
+ export declare function AddRoute(sourceFile: SourceFile, options: AddRouteOptions): void;
@@ -5,6 +5,7 @@ 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
+ require("colors");
8
9
  function DefaultInsertAtFactory(route) {
9
10
  return (array) => {
10
11
  var _a, _b;
@@ -45,22 +46,31 @@ function DefaultInsertAtFactory(route) {
45
46
  };
46
47
  }
47
48
  exports.DefaultInsertAtFactory = DefaultInsertAtFactory;
48
- function AddRoute(sourceFile, route, path, name = 'ROUTES', insertAt = DefaultInsertAtFactory(route)) {
49
+ function AddRoute(sourceFile, options) {
50
+ const { component, route, path, name = 'ROUTES', insertAt = DefaultInsertAtFactory(route) } = options;
49
51
  const routes = sourceFile.getVariableDeclaration(name);
50
52
  if (routes) {
51
53
  let initializer = routes.getInitializerIfKindOrThrow(ts_morph_1.SyntaxKind.ArrayLiteralExpression);
52
54
  if (path === null || path === void 0 ? void 0 : path.length) {
53
- initializer = (0, find_parent_route_1.FindParentRouteChildrenArray)(initializer, path);
55
+ initializer = (0, find_parent_route_1.FindParentRouteChildrenArrayByPath)(initializer, path);
54
56
  }
55
57
  if (initializer) {
56
- (0, coerce_array_element_1.CoerceArrayElement)(initializer, (0, build_route_object_1.BuildRouteObject)(route), (0, coerce_array_element_1.FindArrayElementByObjectProperty)('path', route.path), insertAt);
58
+ if (component) {
59
+ initializer = (0, find_parent_route_1.FindParentRouteChildrenArrayByComponent)(initializer, component);
60
+ }
61
+ if (initializer) {
62
+ (0, coerce_array_element_1.CoerceArrayElement)(initializer, (0, build_route_object_1.BuildRouteObject)(route), (0, coerce_array_element_1.FindArrayElementByObjectProperty)('path', route.path), insertAt);
63
+ }
64
+ else {
65
+ console.log(`Could not find parent route by component for '${component}'`.yellow);
66
+ }
57
67
  }
58
68
  else {
59
- console.warn('Initializer not found');
69
+ console.log(`Could not find parent route by path for '${path}'`.yellow);
60
70
  }
61
71
  }
62
72
  else {
63
- console.warn(`${name} variable not found`);
73
+ console.log(`${name} variable not found`.red);
64
74
  }
65
75
  }
66
76
  exports.AddRoute = AddRoute;
@@ -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,2DAAmE;AAEnE,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;gBAAC,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;oBACxD,IAAI,CAAA,MAAA,OAAO,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,0CAAE,OAAO,EAAE,MAAK,EAAE,EAAE;wBACnG,QAAQ,EAAE,CAAC;qBACZ;yBAAM;wBACL,MAAM;qBACP;iBACF;qBAAM;oBACL,MAAM;iBACP;aACF;SACF;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAlCD,wDAkCC;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,gDAA4B,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC/D;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
+ {"version":3,"file":"add-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/add-route.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ function CoerceRouteGuard(sourceFile, path, guard, options = {}) {
8
8
  const { routeArrayName = 'ROUTES', type = 'canActivate' } = options;
9
9
  const routes = sourceFile.getVariableDeclaration(routeArrayName);
10
10
  if (routes) {
11
- const initializer = (0, ts_morph_1.FindParentRoute)(routes.getInitializerIfKindOrThrow(ts_morph_2.SyntaxKind.ArrayLiteralExpression), path);
11
+ const initializer = (0, ts_morph_1.FindParentRouteByPath)(routes.getInitializerIfKindOrThrow(ts_morph_2.SyntaxKind.ArrayLiteralExpression), path);
12
12
  if (initializer) {
13
13
  const guardArray = (_a = initializer.getProperty(type)) !== null && _a !== void 0 ? _a : initializer.addPropertyAssignment({
14
14
  name: type,
@@ -1 +1 @@
1
- {"version":3,"file":"coerce-route-guard.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/coerce-route-guard.ts"],"names":[],"mappings":";;;AAAA,6CAGwB;AACxB,uCAIkB;AAOlB,SAAgB,gBAAgB,CAAC,UAAsB,EAAE,IAAc,EAAE,KAAa,EAAE,UAAmC,EAAE;;IAC3H,MAAM,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACjE,IAAI,MAAM,EAAE;QACV,MAAM,WAAW,GAAG,IAAA,0BAAe,EAAC,MAAM,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAC;QACjH,IAAI,WAAW,EAAE;YACf,MAAM,UAAU,GAAG,MAAA,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,mCAAI,WAAW,CAAC,qBAAqB,CAAC;gBACpF,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,IAAI,UAAU,YAAY,6BAAkB,EAAE;gBAC5C,MAAM,qBAAqB,GAAG,UAAU,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;gBACxG,IAAA,6BAAkB,EAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;aAClD;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC5D;SACF;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACvC;KACF;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,GAAG,cAAc,qBAAqB,CAAC,CAAC;KACzD;AACH,CAAC;AAtBD,4CAsBC"}
1
+ {"version":3,"file":"coerce-route-guard.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/coerce-route-guard.ts"],"names":[],"mappings":";;;AAAA,6CAGwB;AACxB,uCAIkB;AAOlB,SAAgB,gBAAgB,CAAC,UAAsB,EAAE,IAAc,EAAE,KAAa,EAAE,UAAmC,EAAE;;IAC3H,MAAM,EAAE,cAAc,GAAG,QAAQ,EAAE,IAAI,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACjE,IAAI,MAAM,EAAE;QACV,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,MAAM,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAC;QACvH,IAAI,WAAW,EAAE;YACf,MAAM,UAAU,GAAG,MAAA,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,mCAAI,WAAW,CAAC,qBAAqB,CAAC;gBACpF,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,IAAI,UAAU,YAAY,6BAAkB,EAAE;gBAC5C,MAAM,qBAAqB,GAAG,UAAU,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;gBACxG,IAAA,6BAAkB,EAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;aAClD;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC5D;SACF;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACvC;KACF;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,GAAG,cAAc,qBAAqB,CAAC,CAAC;KACzD;AACH,CAAC;AAtBD,4CAsBC"}
@@ -1,11 +1,8 @@
1
1
  import { SourceFile, WriterFunction } from 'ts-morph';
2
- import { AngularRoute } from './build-route-object';
2
+ import { AddRouteOptions } from './add-route';
3
3
  export interface CoerceRoutesOptions {
4
4
  name?: string;
5
5
  initializer?: string | WriterFunction;
6
- itemList?: Array<{
7
- route: AngularRoute;
8
- path?: string[];
9
- }>;
6
+ itemList?: Array<Omit<AddRouteOptions, 'name'>>;
10
7
  }
11
8
  export declare function CoerceRoutes(sourceFile: SourceFile, options?: CoerceRoutesOptions): import("ts-morph").VariableDeclaration;
@@ -34,8 +34,8 @@ function CoerceRoutes(sourceFile, options = {}) {
34
34
  },
35
35
  ]);
36
36
  }
37
- for (const { route, path } of (_b = options.itemList) !== null && _b !== void 0 ? _b : []) {
38
- (0, add_route_1.AddRoute)(sourceFile, route, path, name);
37
+ for (const item of (_b = options.itemList) !== null && _b !== void 0 ? _b : []) {
38
+ (0, add_route_1.AddRoute)(sourceFile, Object.assign(Object.assign({}, item), { name }));
39
39
  }
40
40
  return variableDeclaration;
41
41
  }
@@ -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;IACH,IAAI,MAAA,OAAO,CAAC,QAAQ,0CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;QAC/D,IAAA,8BAAa,EAAC,UAAU,EAAE;YACxB;gBACE,YAAY,EAAE,CAAE,kBAAkB,CAAE;gBACpC,eAAe,EAAE,gBAAgB;aAClC;SACF,CAAC,CAAC;KACJ;IAED,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;AAvCD,oCAuCC"}
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,2CAGqB;AAQrB,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;IACH,IAAI,MAAA,OAAO,CAAC,QAAQ,0CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;QAC/D,IAAA,8BAAa,EAAC,UAAU,EAAE;YACxB;gBACE,YAAY,EAAE,CAAE,kBAAkB,CAAE;gBACpC,eAAe,EAAE,gBAAgB;aAClC;SACF,CAAC,CAAC;KACJ;IAED,KAAK,MAAM,IAAI,IAAI,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,EAAE;QACzC,IAAA,oBAAQ,EAAC,UAAU,kCAAO,IAAI,KAAE,IAAI,IAAG,CAAC;KACzC;IAED,OAAO,mBAAmB,CAAC;AAE7B,CAAC;AAvCD,oCAuCC"}
@@ -1,4 +1,6 @@
1
1
  import { ArrayLiteralExpression, ObjectLiteralExpression } from 'ts-morph';
2
2
  export declare function GetRouteChildrenArray(e: ObjectLiteralExpression): ArrayLiteralExpression;
3
- export declare function FindParentRoute(ale: ArrayLiteralExpression, path: string[]): ObjectLiteralExpression | null;
4
- export declare function FindParentRouteChildrenArray(ale: ArrayLiteralExpression, path: string[]): ArrayLiteralExpression | null;
3
+ export declare function FindParentRouteByPath(ale: ArrayLiteralExpression, path: string[]): ObjectLiteralExpression | null;
4
+ export declare function FindParentRouteByComponent(ale: ArrayLiteralExpression, component: string): ObjectLiteralExpression | null;
5
+ export declare function FindParentRouteChildrenArrayByPath(ale: ArrayLiteralExpression, path: string[]): ArrayLiteralExpression | null;
6
+ export declare function FindParentRouteChildrenArrayByComponent(ale: ArrayLiteralExpression, component: string): ArrayLiteralExpression | null;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FindParentRouteChildrenArray = exports.FindParentRoute = exports.GetRouteChildrenArray = void 0;
3
+ exports.FindParentRouteChildrenArrayByComponent = exports.FindParentRouteChildrenArrayByPath = exports.FindParentRouteByComponent = exports.FindParentRouteByPath = exports.GetRouteChildrenArray = void 0;
4
4
  const ts_morph_1 = require("ts-morph");
5
5
  function GetRouteChildrenArray(e) {
6
6
  var _a;
@@ -15,31 +15,26 @@ function GetRouteChildrenArray(e) {
15
15
  throw new Error('Children property is not a PropertyAssignment');
16
16
  }
17
17
  exports.GetRouteChildrenArray = GetRouteChildrenArray;
18
- function FindParentRoute(ale, path) {
18
+ function FindParentRouteByPath(ale, path) {
19
19
  const fragment = path.pop();
20
20
  for (const e of ale.getElements()) {
21
- if (e instanceof ts_morph_1.ObjectLiteralExpression) {
21
+ if (e.isKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression)) {
22
22
  const pathProperty = e.getProperty('path');
23
- if (pathProperty && pathProperty instanceof ts_morph_1.PropertyAssignment) {
23
+ if (pathProperty === null || pathProperty === void 0 ? void 0 : pathProperty.isKind(ts_morph_1.SyntaxKind.PropertyAssignment)) {
24
24
  const initializer = pathProperty.getInitializerIfKind(ts_morph_1.SyntaxKind.StringLiteral);
25
- if (initializer) {
26
- if (initializer.getLiteralText() === fragment) {
27
- if (path.length) {
28
- const children = GetRouteChildrenArray(e);
29
- // console.log('Continue search for parent route');
30
- return FindParentRoute(children, path);
31
- }
32
- else {
33
- // console.log('Found parent route');
34
- return e;
35
- }
25
+ if ((initializer === null || initializer === void 0 ? void 0 : initializer.getLiteralText()) === fragment) {
26
+ if (path.length) {
27
+ const children = GetRouteChildrenArray(e);
28
+ // console.log('Continue search for parent route');
29
+ return FindParentRouteByPath(children, path);
36
30
  }
37
31
  else {
38
- // console.log('Path property does not match', initializer.getLiteralText(), fragment);
32
+ // console.log('Found parent route');
33
+ return e;
39
34
  }
40
35
  }
41
36
  else {
42
- // console.log('Path property has no StringLiteral initializer');
37
+ // console.log('Path property does not match', initializer.getLiteralText(), fragment);
43
38
  }
44
39
  }
45
40
  else {
@@ -52,10 +47,30 @@ function FindParentRoute(ale, path) {
52
47
  }
53
48
  return null;
54
49
  }
55
- exports.FindParentRoute = FindParentRoute;
56
- function FindParentRouteChildrenArray(ale, path) {
57
- const parent = FindParentRoute(ale, path);
50
+ exports.FindParentRouteByPath = FindParentRouteByPath;
51
+ function FindParentRouteByComponent(ale, component) {
52
+ for (const e of ale.getElements()) {
53
+ if (e.isKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression)) {
54
+ const componentProperty = e.getProperty('component');
55
+ if (componentProperty === null || componentProperty === void 0 ? void 0 : componentProperty.isKind(ts_morph_1.SyntaxKind.PropertyAssignment)) {
56
+ const initializer = componentProperty.getInitializer();
57
+ if ((initializer === null || initializer === void 0 ? void 0 : initializer.getText()) === component) {
58
+ return e;
59
+ }
60
+ }
61
+ }
62
+ }
63
+ return null;
64
+ }
65
+ exports.FindParentRouteByComponent = FindParentRouteByComponent;
66
+ function FindParentRouteChildrenArrayByPath(ale, path) {
67
+ const parent = FindParentRouteByPath(ale, path);
68
+ return parent ? GetRouteChildrenArray(parent) : null;
69
+ }
70
+ exports.FindParentRouteChildrenArrayByPath = FindParentRouteChildrenArrayByPath;
71
+ function FindParentRouteChildrenArrayByComponent(ale, component) {
72
+ const parent = FindParentRouteByComponent(ale, component);
58
73
  return parent ? GetRouteChildrenArray(parent) : null;
59
74
  }
60
- exports.FindParentRouteChildrenArray = FindParentRouteChildrenArray;
75
+ exports.FindParentRouteChildrenArrayByComponent = FindParentRouteChildrenArrayByComponent;
61
76
  //# sourceMappingURL=find-parent-route.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find-parent-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/find-parent-route.ts"],"names":[],"mappings":";;;AAAA,uCAMkB;AAElB,SAAgB,qBAAqB,CAAC,CAA0B;;IAC9D,MAAM,gBAAgB,GAAG,MAAA,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,mCAAI,CAAC,CAAC,WAAW,CAAC;QAClE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,wBAAa,CAAC,kBAAkB;KACvC,CAAC,CAAC;IACH,IAAI,gBAAgB,YAAY,6BAAkB,EAAE;QAClD,OAAO,gBAAgB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;KACxF;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACnE,CAAC;AAVD,sDAUC;AAED,SAAgB,eAAe,CAAC,GAA2B,EAAE,IAAc;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE;QACjC,IAAI,CAAC,YAAY,kCAAuB,EAAE;YACxC,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,YAAY,IAAI,YAAY,YAAY,6BAAkB,EAAE;gBAC9D,MAAM,WAAW,GAAG,YAAY,CAAC,oBAAoB,CAAC,qBAAU,CAAC,aAAa,CAAC,CAAC;gBAChF,IAAI,WAAW,EAAE;oBACf,IAAI,WAAW,CAAC,cAAc,EAAE,KAAK,QAAQ,EAAE;wBAC7C,IAAI,IAAI,CAAC,MAAM,EAAE;4BACf,MAAM,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;4BAC1C,mDAAmD;4BACnD,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;yBACxC;6BAAM;4BACL,qCAAqC;4BACrC,OAAO,CAAC,CAAC;yBACV;qBACF;yBAAM;wBACL,uFAAuF;qBACxF;iBACF;qBAAM;oBACL,iEAAiE;iBAClE;aACF;iBAAM;gBACL,+CAA+C;aAChD;SACF;aAAM;YACL,4DAA4D;SAC7D;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AA/BD,0CA+BC;AAED,SAAgB,4BAA4B,CAAC,GAA2B,EAAE,IAAc;IACtF,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvD,CAAC;AAHD,oEAGC"}
1
+ {"version":3,"file":"find-parent-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/find-parent-route.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,10 @@ import 'colors';
3
3
  export interface RemoveRouteOptions {
4
4
  path?: string[];
5
5
  index?: number;
6
- loadRemoteModule?: string;
6
+ loadRemoteModule?: string | {
7
+ name: string;
8
+ entry?: string;
9
+ };
7
10
  component?: string;
8
11
  name?: string;
9
12
  }
@@ -5,6 +5,7 @@ const ts_morph_1 = require("@rxap/ts-morph");
5
5
  const ts_morph_2 = require("ts-morph");
6
6
  require("colors");
7
7
  function RemoveRoute(sourceFile, options) {
8
+ var _a;
8
9
  const { path, component, index, loadRemoteModule, name = 'ROUTES' } = options;
9
10
  if (!path && !component && index === undefined && !loadRemoteModule) {
10
11
  throw new Error('You must provide a path or a component or a index or a loadRemoteModule to remove a route');
@@ -36,7 +37,14 @@ function RemoveRoute(sourceFile, options) {
36
37
  const loadChildrenProperty = obj.getProperty('loadChildren');
37
38
  if (loadChildrenProperty) {
38
39
  const value = loadChildrenProperty.asKindOrThrow(ts_morph_2.SyntaxKind.PropertyAssignment).getInitializer();
39
- if (value.getText().match(new RegExp(`^\\(\\) =>[\\s\\S]+loadRemoteModule\\('${loadRemoteModule}'`))) {
40
+ let regex;
41
+ if (typeof loadRemoteModule === 'string') {
42
+ regex = new RegExp(`^\\(\\) =>[\\s\\S]+loadRemoteModule\\('${loadRemoteModule}'`);
43
+ }
44
+ else {
45
+ regex = new RegExp(`^\\(\\) =>[\\s\\S]+loadRemoteModule\\('${loadRemoteModule.name}',\\s*'${(_a = loadRemoteModule.entry) !== null && _a !== void 0 ? _a : './routes'}'\\)`);
46
+ }
47
+ if (value.getText().match(regex)) {
40
48
  arrayLiteralExpression.removeElement(item);
41
49
  return;
42
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remove-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/remove-route.ts"],"names":[],"mappings":";;;AAAA,6CAA2D;AAC3D,uCAGkB;AAClB,kBAAgB;AAUhB,SAAgB,WAAW,CAAC,UAAsB,EAAE,OAA2B;IAE7E,MAAM,EACJ,IAAI,EACJ,SAAS,EACT,KAAK,EACL,gBAAgB,EAChB,IAAI,GAAG,QAAQ,EAChB,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,gBAAgB,EAAE;QACnE,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;KAC9G;IAED,IAAI,IAAI,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACpC;IAED,MAAM,mBAAmB,GAAG,IAAA,oCAAyB,EAAC,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAEhH,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;IAElH,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO;KACR;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC;YACnE,IAAI,SAAS,EAAE;gBACb,MAAM,iBAAiB,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACvD,IAAI,iBAAiB,EAAE;oBACrB,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,CAAC,qBAAU,CAAC,kBAAkB,CAAC,CAAC,cAAc,EAAG,CAAC;oBAC/F,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE;wBACjC,sBAAsB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBAC3C,OAAO;qBACR;iBACF;aACF;YACD,IAAI,gBAAgB,EAAE;gBACpB,MAAM,oBAAoB,GAAG,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC7D,IAAI,oBAAoB,EAAE;oBACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,qBAAU,CAAC,kBAAkB,CAAC,CAAC,cAAc,EAAG,CAAC;oBAClG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,0CAA0C,gBAAgB,GAAG,CAAC,CAAC,EAAE;wBACpG,sBAAsB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBAC3C,OAAO;qBACR;iBACF;aACF;SACF;KACF;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAGjD,CAAC;AA1DD,kCA0DC"}
1
+ {"version":3,"file":"remove-route.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/remove-route.ts"],"names":[],"mappings":";;;AAAA,6CAA2D;AAC3D,uCAGkB;AAClB,kBAAgB;AAUhB,SAAgB,WAAW,CAAC,UAAsB,EAAE,OAA2B;;IAE7E,MAAM,EACJ,IAAI,EACJ,SAAS,EACT,KAAK,EACL,gBAAgB,EAChB,IAAI,GAAG,QAAQ,EAChB,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,gBAAgB,EAAE;QACnE,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;KAC9G;IAED,IAAI,IAAI,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;KACpC;IAED,MAAM,mBAAmB,GAAG,IAAA,oCAAyB,EAAC,UAAU,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAEhH,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,qBAAU,CAAC,sBAAsB,CAAC,CAAC;IAElH,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO;KACR;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC;YACnE,IAAI,SAAS,EAAE;gBACb,MAAM,iBAAiB,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACvD,IAAI,iBAAiB,EAAE;oBACrB,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,CAAC,qBAAU,CAAC,kBAAkB,CAAC,CAAC,cAAc,EAAG,CAAC;oBAC/F,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE;wBACjC,sBAAsB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBAC3C,OAAO;qBACR;iBACF;aACF;YACD,IAAI,gBAAgB,EAAE;gBACpB,MAAM,oBAAoB,GAAG,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC7D,IAAI,oBAAoB,EAAE;oBACxB,MAAM,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,qBAAU,CAAC,kBAAkB,CAAC,CAAC,cAAc,EAAG,CAAC;oBAClG,IAAI,KAAa,CAAC;oBAClB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;wBACxC,KAAK,GAAG,IAAI,MAAM,CAAC,0CAA0C,gBAAgB,GAAG,CAAC,CAAC;qBACnF;yBAAM;wBACL,KAAK,GAAG,IAAI,MAAM,CAAC,0CAA0C,gBAAgB,CAAC,IAAI,UAAU,MAAA,gBAAgB,CAAC,KAAK,mCAAI,UAAU,MAAM,CAAC,CAAC;qBACzI;oBACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;wBAChC,sBAAsB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBAC3C,OAAO;qBACR;iBACF;aACF;SACF;KACF;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAGjD,CAAC;AAhED,kCAgEC"}