@rxap/ts-morph 1.1.0-dev.9 → 1.2.0-dev.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/README.md +1 -1
  3. package/package.json +8 -6
  4. package/src/index.d.ts +13 -0
  5. package/src/index.js +13 -0
  6. package/src/index.js.map +1 -1
  7. package/src/lib/angular/add-route.d.ts +12 -0
  8. package/src/lib/angular/add-route.js +77 -0
  9. package/src/lib/angular/add-route.js.map +1 -0
  10. package/src/lib/angular/build-route-object.d.ts +20 -0
  11. package/src/lib/angular/build-route-object.js +68 -0
  12. package/src/lib/angular/build-route-object.js.map +1 -0
  13. package/src/lib/angular/coerce-app-config-provider.js +1 -1
  14. package/src/lib/angular/coerce-app-config-provider.js.map +1 -1
  15. package/src/lib/angular/coerce-app-navigation.d.ts +13 -0
  16. package/src/lib/angular/coerce-app-navigation.js +99 -0
  17. package/src/lib/angular/coerce-app-navigation.js.map +1 -0
  18. package/src/lib/angular/coerce-app-routes.d.ts +4 -0
  19. package/src/lib/angular/coerce-app-routes.js +27 -0
  20. package/src/lib/angular/coerce-app-routes.js.map +1 -0
  21. package/src/lib/angular/coerce-component-import.d.ts +1 -1
  22. package/src/lib/angular/coerce-component-import.js +9 -7
  23. package/src/lib/angular/coerce-component-import.js.map +1 -1
  24. package/src/lib/angular/coerce-component-input.js +10 -10
  25. package/src/lib/angular/coerce-component-input.js.map +1 -1
  26. package/src/lib/angular/coerce-component.d.ts +1 -1
  27. package/src/lib/angular/coerce-component.js +15 -2
  28. package/src/lib/angular/coerce-component.js.map +1 -1
  29. package/src/lib/angular/coerce-layout-routes.d.ts +4 -0
  30. package/src/lib/angular/coerce-layout-routes.js +63 -0
  31. package/src/lib/angular/coerce-layout-routes.js.map +1 -0
  32. package/src/lib/angular/coerce-route-guard.d.ts +6 -0
  33. package/src/lib/angular/coerce-route-guard.js +34 -0
  34. package/src/lib/angular/coerce-route-guard.js.map +1 -0
  35. package/src/lib/angular/coerce-routes.d.ts +8 -0
  36. package/src/lib/angular/coerce-routes.js +43 -0
  37. package/src/lib/angular/coerce-routes.js.map +1 -0
  38. package/src/lib/angular/find-parent-route.d.ts +6 -0
  39. package/src/lib/angular/find-parent-route.js +76 -0
  40. package/src/lib/angular/find-parent-route.js.map +1 -0
  41. package/src/lib/angular/get-component-decorator-object.js +5 -5
  42. package/src/lib/angular/get-component-decorator-object.js.map +1 -1
  43. package/src/lib/angular/remove-component-import.d.ts +3 -0
  44. package/src/lib/angular/remove-component-import.js +23 -0
  45. package/src/lib/angular/remove-component-import.js.map +1 -0
  46. package/src/lib/angular/remove-route.d.ts +13 -0
  47. package/src/lib/angular/remove-route.js +58 -0
  48. package/src/lib/angular/remove-route.js.map +1 -0
  49. package/src/lib/coerce-array-element.js +6 -1
  50. package/src/lib/coerce-array-element.js.map +1 -1
  51. package/src/lib/coerce-default-class-export.d.ts +1 -1
  52. package/src/lib/coerce-default-class-export.js +3 -16
  53. package/src/lib/coerce-default-class-export.js.map +1 -1
  54. package/src/lib/coerce-default-export.d.ts +2 -0
  55. package/src/lib/coerce-default-export.js +14 -0
  56. package/src/lib/coerce-default-export.js.map +1 -0
  57. package/src/lib/coerce-dependency-injection.d.ts +1 -1
  58. package/src/lib/coerce-dependency-injection.js +42 -31
  59. package/src/lib/coerce-dependency-injection.js.map +1 -1
  60. package/src/lib/coerce-imports.js +10 -0
  61. package/src/lib/coerce-imports.js.map +1 -1
  62. package/src/lib/coerce-statements.d.ts +1 -1
  63. package/src/lib/coerce-statements.js +8 -3
  64. package/src/lib/coerce-statements.js.map +1 -1
  65. package/src/lib/data-property.d.ts +10 -6
  66. package/src/lib/data-property.js +31 -7
  67. package/src/lib/data-property.js.map +1 -1
  68. package/src/lib/get-coerce-array-literal-form-object-literal.d.ts +1 -0
  69. package/src/lib/get-coerce-array-literal-form-object-literal.js +19 -1
  70. package/src/lib/get-coerce-array-literal-form-object-literal.js.map +1 -1
  71. package/src/lib/identifier.d.ts +10 -0
  72. package/src/lib/identifier.js +16 -0
  73. package/src/lib/identifier.js.map +1 -0
  74. package/src/lib/nest/add-health-endpoint.js +1 -0
  75. package/src/lib/nest/add-health-endpoint.js.map +1 -1
  76. package/src/lib/nest/coerce-nest-app-config.js +14 -1
  77. package/src/lib/nest/coerce-nest-app-config.js.map +1 -1
  78. package/src/lib/nest/coerce-nest-cache-module-import.d.ts +4 -0
  79. package/src/lib/nest/coerce-nest-cache-module-import.js +26 -0
  80. package/src/lib/nest/coerce-nest-cache-module-import.js.map +1 -0
  81. package/src/lib/type-import.d.ts +18 -3
  82. package/src/lib/type-import.js +28 -8
  83. package/src/lib/type-import.js.map +1 -1
  84. package/src/lib/upstream-options.d.ts +49 -7
  85. package/src/lib/upstream-options.js +69 -15
  86. package/src/lib/upstream-options.js.map +1 -1
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetComponentDecoratorObject = void 0;
4
- const ts_morph_1 = require("@rxap/ts-morph");
5
- const ts_morph_2 = require("ts-morph");
4
+ const ts_morph_1 = require("ts-morph");
5
+ const get_component_class_1 = require("./get-component-class");
6
6
  function GetComponentDecoratorObject(sourceFileOrClassDeclaration) {
7
- const classDeclaration = sourceFileOrClassDeclaration instanceof ts_morph_2.ClassDeclaration ? sourceFileOrClassDeclaration : (0, ts_morph_1.GetComponentClass)(sourceFileOrClassDeclaration);
7
+ const classDeclaration = sourceFileOrClassDeclaration instanceof ts_morph_1.ClassDeclaration ? sourceFileOrClassDeclaration : (0, get_component_class_1.GetComponentClass)(sourceFileOrClassDeclaration);
8
8
  const componentDecorator = classDeclaration.getDecorator('Component');
9
9
  let componentOptions = componentDecorator.getArguments()[0];
10
10
  if (!componentOptions) {
11
- componentOptions = componentDecorator.addArgument(ts_morph_2.Writers.object({}));
11
+ componentOptions = componentDecorator.addArgument(ts_morph_1.Writers.object({}));
12
12
  }
13
- if (!(componentOptions instanceof ts_morph_2.ObjectLiteralExpression)) {
13
+ if (!(componentOptions instanceof ts_morph_1.ObjectLiteralExpression)) {
14
14
  throw new Error('The Component options is not an object literal expression');
15
15
  }
16
16
  return componentOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"get-component-decorator-object.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/get-component-decorator-object.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;AACnD,uCAKkB;AAElB,SAAgB,2BAA2B,CACzC,4BAA2D;IAG3D,MAAM,gBAAgB,GAAG,4BAA4B,YAAY,2BAAgB,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAA,4BAAiB,EAAC,4BAA4B,CAAC,CAAC;IAGnK,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,YAAY,CAAC,WAAW,CAAE,CAAC;IACvE,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5D,IAAI,CAAC,gBAAgB,EAAE;QACrB,gBAAgB,GAAG,kBAAkB,CAAC,WAAW,CAAC,kBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;KACvE;IAED,IAAI,CAAC,CAAC,gBAAgB,YAAY,kCAAuB,CAAC,EAAE;QAC1D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;KAC9E;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAnBD,kEAmBC"}
1
+ {"version":3,"file":"get-component-decorator-object.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/get-component-decorator-object.ts"],"names":[],"mappings":";;;AAAA,uCAKkB;AAClB,+DAA0D;AAE1D,SAAgB,2BAA2B,CACzC,4BAA2D;IAG3D,MAAM,gBAAgB,GAAG,4BAA4B,YAAY,2BAAgB,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAA,uCAAiB,EAAC,4BAA4B,CAAC,CAAC;IAGnK,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,YAAY,CAAC,WAAW,CAAE,CAAC;IACvE,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5D,IAAI,CAAC,gBAAgB,EAAE;QACrB,gBAAgB,GAAG,kBAAkB,CAAC,WAAW,CAAC,kBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;KACvE;IAED,IAAI,CAAC,CAAC,gBAAgB,YAAY,kCAAuB,CAAC,EAAE;QAC1D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;KAC9E;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAnBD,kEAmBC"}
@@ -0,0 +1,3 @@
1
+ import { TypeImport } from '@rxap/ts-morph';
2
+ import { ClassDeclaration, SourceFile } from 'ts-morph';
3
+ export declare function RemoveComponentImport(sourceFileOrClassDeclaration: SourceFile | ClassDeclaration, componentImport: string | TypeImport): void;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RemoveComponentImport = void 0;
4
+ const ts_morph_1 = require("@rxap/ts-morph");
5
+ const ts_morph_2 = require("ts-morph");
6
+ function RemoveComponentImport(sourceFileOrClassDeclaration, componentImport) {
7
+ var _a, _b, _c;
8
+ const classDeclaration = sourceFileOrClassDeclaration instanceof ts_morph_2.ClassDeclaration ? sourceFileOrClassDeclaration : (0, ts_morph_1.GetComponentClass)(sourceFileOrClassDeclaration);
9
+ const sourceFile = sourceFileOrClassDeclaration instanceof ts_morph_2.SourceFile ? sourceFileOrClassDeclaration : sourceFileOrClassDeclaration.getSourceFile();
10
+ const importName = typeof componentImport === 'string' ? componentImport : (_a = componentImport.namedImport) !== null && _a !== void 0 ? _a : componentImport.name;
11
+ (_b = sourceFile.getImportDeclaration(importDeclaration => importDeclaration.getNamedImports().some(namedImport => namedImport.getName() === importName))) === null || _b === void 0 ? void 0 : _b.remove();
12
+ if ((0, ts_morph_1.IsTypeImport)(componentImport) && componentImport.moduleSpecifier) {
13
+ (_c = sourceFile.getImportDeclaration(componentImport.moduleSpecifier)) === null || _c === void 0 ? void 0 : _c.remove();
14
+ }
15
+ const componentDecoratorObject = (0, ts_morph_1.GetComponentDecoratorObject)(classDeclaration);
16
+ const importsArray = (0, ts_morph_1.GetArrayLiteralFromObjectLiteral)(componentDecoratorObject, 'imports');
17
+ const element = importsArray === null || importsArray === void 0 ? void 0 : importsArray.getElements().find(e => e.getText().includes(importName));
18
+ if (element) {
19
+ importsArray === null || importsArray === void 0 ? void 0 : importsArray.removeElement(element);
20
+ }
21
+ }
22
+ exports.RemoveComponentImport = RemoveComponentImport;
23
+ //# sourceMappingURL=remove-component-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-component-import.js","sourceRoot":"","sources":["../../../../../../packages/ts-morph/src/lib/angular/remove-component-import.ts"],"names":[],"mappings":";;;AAAA,6CAMwB;AACxB,uCAGkB;AAElB,SAAgB,qBAAqB,CACnC,4BAA2D,EAC3D,eAAoC;;IAGpC,MAAM,gBAAgB,GAAG,4BAA4B,YAAY,2BAAgB,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAA,4BAAiB,EAAC,4BAA4B,CAAC,CAAC;IACnK,MAAM,UAAU,GAAG,4BAA4B,YAAY,qBAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,4BAA4B,CAAC,aAAa,EAAE,CAAC;IAEpJ,MAAM,UAAU,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAA,eAAe,CAAC,WAAW,mCAAI,eAAe,CAAC,IAAI,CAAC;IAE/H,MAAA,UAAU,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,0CAAE,MAAM,EAAE,CAAC;IAE9J,IAAI,IAAA,uBAAY,EAAC,eAAe,CAAC,IAAI,eAAe,CAAC,eAAe,EAAE;QACpE,MAAA,UAAU,CAAC,oBAAoB,CAAC,eAAe,CAAC,eAAe,CAAC,0CAAE,MAAM,EAAE,CAAC;KAC5E;IAED,MAAM,wBAAwB,GAAG,IAAA,sCAA2B,EAAC,gBAAgB,CAAC,CAAC;IAE/E,MAAM,YAAY,GAAG,IAAA,2CAAgC,EAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;IAE3F,MAAM,OAAO,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACxF,IAAI,OAAO,EAAE;QACX,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,CAAC,OAAO,CAAC,CAAC;KACtC;AAEH,CAAC;AAzBD,sDAyBC"}
@@ -0,0 +1,13 @@
1
+ import { SourceFile } from 'ts-morph';
2
+ import 'colors';
3
+ export interface RemoveRouteOptions {
4
+ path?: string[];
5
+ index?: number;
6
+ loadRemoteModule?: string | {
7
+ name: string;
8
+ entry?: string;
9
+ };
10
+ component?: string;
11
+ name?: string;
12
+ }
13
+ export declare function RemoveRoute(sourceFile: SourceFile, options: RemoveRouteOptions): void;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RemoveRoute = void 0;
4
+ const ts_morph_1 = require("@rxap/ts-morph");
5
+ const ts_morph_2 = require("ts-morph");
6
+ require("colors");
7
+ function RemoveRoute(sourceFile, options) {
8
+ var _a;
9
+ const { path, component, index, loadRemoteModule, name = 'ROUTES' } = options;
10
+ if (!path && !component && index === undefined && !loadRemoteModule) {
11
+ throw new Error('You must provide a path or a component or a index or a loadRemoteModule to remove a route');
12
+ }
13
+ if (path) {
14
+ throw new Error('Not implemented');
15
+ }
16
+ const variableDeclaration = (0, ts_morph_1.CoerceVariableDeclaration)(sourceFile, name, { initializer: '[]', type: 'Route[]' });
17
+ const arrayLiteralExpression = variableDeclaration.getInitializerIfKindOrThrow(ts_morph_2.SyntaxKind.ArrayLiteralExpression);
18
+ if (index !== undefined) {
19
+ arrayLiteralExpression.removeElement(index);
20
+ return;
21
+ }
22
+ const items = arrayLiteralExpression.getElements();
23
+ for (const item of items) {
24
+ if (item.isKind(ts_morph_2.SyntaxKind.ObjectLiteralExpression)) {
25
+ const obj = item.asKindOrThrow(ts_morph_2.SyntaxKind.ObjectLiteralExpression);
26
+ if (component) {
27
+ const componentProperty = obj.getProperty('component');
28
+ if (componentProperty) {
29
+ const value = componentProperty.asKindOrThrow(ts_morph_2.SyntaxKind.PropertyAssignment).getInitializer();
30
+ if (value.getText() === component) {
31
+ arrayLiteralExpression.removeElement(item);
32
+ return;
33
+ }
34
+ }
35
+ }
36
+ if (loadRemoteModule) {
37
+ const loadChildrenProperty = obj.getProperty('loadChildren');
38
+ if (loadChildrenProperty) {
39
+ const value = loadChildrenProperty.asKindOrThrow(ts_morph_2.SyntaxKind.PropertyAssignment).getInitializer();
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)) {
48
+ arrayLiteralExpression.removeElement(item);
49
+ return;
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ console.log('No route found to remove'.yellow);
56
+ }
57
+ exports.RemoveRoute = RemoveRoute;
58
+ //# sourceMappingURL=remove-route.js.map
@@ -0,0 +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,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"}
@@ -36,7 +36,12 @@ function CoerceArrayElement(array, element, findExisting, insertAt) {
36
36
  }
37
37
  }
38
38
  if (insertAt) {
39
- return array.insertElement(insertAt(array), element);
39
+ const index = insertAt(array);
40
+ if (index < 0) {
41
+ console.warn('The insertAt function returned a negative index - normalizing to 0');
42
+ return array.insertElement(0, element);
43
+ }
44
+ return array.insertElement(index, element);
40
45
  }
41
46
  return array.addElement(element);
42
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coerce-array-element.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-array-element.ts"],"names":[],"mappings":";;;AAAA,uCAOkB;AAElB,SAAgB,gCAAgC,CAAC,QAAgB,EAAE,KAAa;IAC9E,OAAO,CAAC,CAAa,EAAE,EAAE;QACvB,IAAI,CAAC,YAAY,kCAAuB,EAAE;YACxC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,YAAY,6BAAkB,EAAE;gBACxC,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,qBAAU,CAAC,aAAa,CAAC,CAAC;gBAC3D,IAAI,CAAC,EAAE;oBACL,OAAO,CAAC,CAAC,cAAc,EAAE,KAAK,KAAK,CAAC;iBACrC;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAbD,4EAaC;AAED,SAAgB,0BAA0B,CAAC,OAAe;IACxD,OAAO,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC;AAC3D,CAAC;AAFD,gEAEC;AAED,SAAgB,kBAAkB,CAChC,KAA6B,EAC7B,OAAgC,EAChC,YAAyC,EACzC,QAAoD;IAGpD,IAAI,CAAC,YAAY,EAAE;QACjB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,YAAY,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;SACpD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;SAC3F;KACF;IAED,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;QACnC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,CAAC,CAAC;SACV;KACF;IAED,IAAI,QAAQ,EAAE;QACZ,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;KACtD;IAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAEnC,CAAC;AA3BD,gDA2BC"}
1
+ {"version":3,"file":"coerce-array-element.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-array-element.ts"],"names":[],"mappings":";;;AAAA,uCAOkB;AAElB,SAAgB,gCAAgC,CAAC,QAAgB,EAAE,KAAa;IAC9E,OAAO,CAAC,CAAa,EAAE,EAAE;QACvB,IAAI,CAAC,YAAY,kCAAuB,EAAE;YACxC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,YAAY,6BAAkB,EAAE;gBACxC,MAAM,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,qBAAU,CAAC,aAAa,CAAC,CAAC;gBAC3D,IAAI,CAAC,EAAE;oBACL,OAAO,CAAC,CAAC,cAAc,EAAE,KAAK,KAAK,CAAC;iBACrC;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAbD,4EAaC;AAED,SAAgB,0BAA0B,CAAC,OAAe;IACxD,OAAO,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC;AAC3D,CAAC;AAFD,gEAEC;AAED,SAAgB,kBAAkB,CAChC,KAA6B,EAC7B,OAAgC,EAChC,YAAyC,EACzC,QAAoD;IAGpD,IAAI,CAAC,YAAY,EAAE;QACjB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,YAAY,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;SACpD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;SAC3F;KACF;IAED,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;QACnC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,CAAC,CAAC;SACV;KACF;IAED,IAAI,QAAQ,EAAE;QACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;YACnF,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SACxC;QACD,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC5C;IAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAEnC,CAAC;AAhCD,gDAgCC"}
@@ -1,2 +1,2 @@
1
1
  import { ClassDeclaration, SourceFile } from 'ts-morph';
2
- export declare function CoerceDefaultClassExport(sourceFileOrClassDeclaration: SourceFile | ClassDeclaration, standalone?: boolean): void;
2
+ export declare function CoerceDefaultClassExport(sourceFileOrClassDeclaration: SourceFile | ClassDeclaration): void;
@@ -2,26 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CoerceDefaultClassExport = void 0;
4
4
  const ts_morph_1 = require("ts-morph");
5
- function CoerceDefaultClassExport(sourceFileOrClassDeclaration, standalone = false) {
5
+ const coerce_default_export_1 = require("./coerce-default-export");
6
+ function CoerceDefaultClassExport(sourceFileOrClassDeclaration) {
6
7
  const classDeclaration = sourceFileOrClassDeclaration instanceof ts_morph_1.SourceFile ? sourceFileOrClassDeclaration.getClasses().filter(cd => !cd.isDefaultExport())[0] : sourceFileOrClassDeclaration;
7
- const sourceFile = sourceFileOrClassDeclaration instanceof ts_morph_1.SourceFile ? sourceFileOrClassDeclaration : sourceFileOrClassDeclaration.getSourceFile();
8
8
  if (!ts_morph_1.ClassDeclaration) {
9
9
  throw new Error('No class declaration');
10
10
  }
11
- if (standalone) {
12
- console.log('standalone', sourceFile.getExportAssignments().map(ed => ed.getExpression().getText()));
13
- if (!sourceFile.getExportAssignments().some(ed => ed.getExpression().getText() === classDeclaration.getName())) {
14
- sourceFile.addExportAssignment({
15
- isExportEquals: false,
16
- expression: classDeclaration.getName(),
17
- });
18
- }
19
- }
20
- else {
21
- if (!sourceFile.getClasses().some(cd => cd.isDefaultExport() && cd.getName() === classDeclaration.getName())) {
22
- classDeclaration.setIsDefaultExport(true);
23
- }
24
- }
11
+ (0, coerce_default_export_1.CoerceDefaultExport)(classDeclaration);
25
12
  }
26
13
  exports.CoerceDefaultClassExport = CoerceDefaultClassExport;
27
14
  //# sourceMappingURL=coerce-default-class-export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coerce-default-class-export.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-default-class-export.ts"],"names":[],"mappings":";;;AAAA,uCAGkB;AAElB,SAAgB,wBAAwB,CAAC,4BAA2D,EAAE,UAAU,GAAG,KAAK;IAEtH,MAAM,gBAAgB,GAAG,4BAA4B,YAAY,qBAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;IAC9L,MAAM,UAAU,GAAG,4BAA4B,YAAY,qBAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,4BAA4B,CAAC,aAAa,EAAE,CAAC;IAEpJ,IAAI,CAAC,2BAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;IAED,IAAI,UAAU,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE;YAC9G,UAAU,CAAC,mBAAmB,CAAC;gBAC7B,cAAc,EAAE,KAAK;gBACrB,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAG;aACxC,CAAC,CAAC;SACJ;KACF;SAAM;QACL,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE;YAC5G,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SAC3C;KACF;AAEH,CAAC;AAvBD,4DAuBC"}
1
+ {"version":3,"file":"coerce-default-class-export.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-default-class-export.ts"],"names":[],"mappings":";;;AAAA,uCAGkB;AAClB,mEAA8D;AAE9D,SAAgB,wBAAwB,CAAC,4BAA2D;IAElG,MAAM,gBAAgB,GAAG,4BAA4B,YAAY,qBAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;IAE9L,IAAI,CAAC,2BAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;IAED,IAAA,2CAAmB,EAAC,gBAAgB,CAAC,CAAC;AAExC,CAAC;AAVD,4DAUC"}
@@ -0,0 +1,2 @@
1
+ import { NameableNodeSpecific, NamedNodeSpecificBase, Node } from 'ts-morph';
2
+ export declare function CoerceDefaultExport(node: (NamedNodeSpecificBase<any> | NameableNodeSpecific) & Node): void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoerceDefaultExport = void 0;
4
+ function CoerceDefaultExport(node) {
5
+ const sourceFile = node.getSourceFile();
6
+ if (!sourceFile.getExportAssignments().some(ed => ed.getExpression().getText() === node.getName())) {
7
+ sourceFile.addExportAssignment({
8
+ isExportEquals: false,
9
+ expression: node.getName(),
10
+ });
11
+ }
12
+ }
13
+ exports.CoerceDefaultExport = CoerceDefaultExport;
14
+ //# sourceMappingURL=coerce-default-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coerce-default-export.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-default-export.ts"],"names":[],"mappings":";;;AAMA,SAAgB,mBAAmB,CAAC,IAAgE;IAElG,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAExC,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;QAClG,UAAU,CAAC,mBAAmB,CAAC;YAC7B,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE,IAAI,CAAC,OAAO,EAAG;SAC5B,CAAC,CAAC;KACJ;AAEH,CAAC;AAXD,kDAWC"}
@@ -9,6 +9,6 @@ export interface InjectionDefinition {
9
9
  optional?: boolean;
10
10
  type?: string;
11
11
  scope?: Scope;
12
- module?: Module;
12
+ module: Module;
13
13
  }
14
14
  export declare function CoerceDependencyInjection(sourceFile: SourceFile, definition: InjectionDefinition, structures?: Array<OptionalKind<ImportDeclarationStructure>>): void;
@@ -2,55 +2,66 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CoerceDependencyInjection = exports.Module = void 0;
4
4
  const ts_morph_1 = require("ts-morph");
5
- const coerce_class_constructor_1 = require("./coerce-class-constructor");
5
+ const coerce_decorator_1 = require("./coerce-decorator");
6
6
  const coerce_imports_1 = require("./coerce-imports");
7
+ const coerce_property_declaration_1 = require("./coerce-property-declaration");
7
8
  var Module;
8
9
  (function (Module) {
9
10
  Module["ANGULAR"] = "@angular/core";
10
11
  Module["NEST"] = "@nestjs/common";
11
12
  })(Module || (exports.Module = Module = {}));
12
13
  function CoerceDependencyInjection(sourceFile, definition, structures = []) {
13
- var _a, _b, _c, _d;
14
- if (!definition.module) {
15
- definition.module = Module.ANGULAR;
16
- }
14
+ var _a, _b;
17
15
  const classDeclaration = sourceFile.getClasses()[0];
18
16
  if (!classDeclaration) {
19
17
  throw new Error('Could not find class declaration');
20
18
  }
21
- const constructorDeclarations = (0, coerce_class_constructor_1.CoerceClassConstructor)(classDeclaration);
22
- const constructorDeclaration = constructorDeclarations[0];
23
- if (constructorDeclaration.getParameter(definition.parameterName)) {
24
- return;
19
+ const constructorDeclaration = classDeclaration.getConstructors()[0];
20
+ if (constructorDeclaration) {
21
+ if (constructorDeclaration.getParameters().some((parameter) => parameter.getName() === definition.parameterName)) {
22
+ console.warn(`Parameter ${definition.parameterName} already exists in constructor`);
23
+ return;
24
+ }
25
25
  }
26
- const constructorParameter = {
27
- name: definition.parameterName,
28
- type: (_a = definition.type) !== null && _a !== void 0 ? _a : definition.injectionToken,
29
- scope: (_b = definition.scope) !== null && _b !== void 0 ? _b : ts_morph_1.Scope.Public,
26
+ const propertyDeclaration = (0, coerce_property_declaration_1.CoercePropertyDeclaration)(classDeclaration, definition.parameterName, {
27
+ scope: (_a = definition.scope) !== null && _a !== void 0 ? _a : ts_morph_1.Scope.Public,
30
28
  isReadonly: true,
31
- decorators: [
32
- {
33
- name: 'Inject',
34
- arguments: [definition.injectionToken],
35
- },
36
- ],
37
- };
38
- if (definition.optional) {
39
- (_c = constructorParameter.decorators) === null || _c === void 0 ? void 0 : _c.unshift({
40
- name: 'Optional',
41
- arguments: [],
29
+ });
30
+ if (definition.module === Module.ANGULAR) {
31
+ if (definition.optional) {
32
+ propertyDeclaration.setInitializer(`inject(${definition.injectionToken}, { optional: true })`);
33
+ }
34
+ else {
35
+ propertyDeclaration.setInitializer(`inject(${definition.injectionToken})`);
36
+ }
37
+ (0, coerce_imports_1.CoerceImports)(sourceFile, {
38
+ namedImports: ['inject'],
39
+ moduleSpecifier: definition.module,
42
40
  });
43
- constructorParameter.type = ts_morph_1.Writers.intersectionType((_d = definition.type) !== null && _d !== void 0 ? _d : definition.injectionToken, 'null');
41
+ }
42
+ else {
43
+ (0, coerce_decorator_1.CoerceDecorator)(propertyDeclaration, 'Inject', {
44
+ arguments: [definition.injectionToken],
45
+ });
46
+ if (definition.optional) {
47
+ (0, coerce_decorator_1.CoerceDecorator)(propertyDeclaration, 'Optional', {
48
+ arguments: [],
49
+ });
50
+ propertyDeclaration.setType(`${definition.type} | null`);
51
+ propertyDeclaration.setInitializer('null');
52
+ (0, coerce_imports_1.CoerceImports)(sourceFile, {
53
+ namedImports: ['Optional'],
54
+ moduleSpecifier: definition.module,
55
+ });
56
+ }
57
+ else {
58
+ propertyDeclaration.setType((_b = definition.type) !== null && _b !== void 0 ? _b : definition.injectionToken);
59
+ }
44
60
  (0, coerce_imports_1.CoerceImports)(sourceFile, {
45
- namedImports: ['Optional'],
61
+ namedImports: ['Inject'],
46
62
  moduleSpecifier: definition.module,
47
63
  });
48
64
  }
49
- constructorDeclaration.addParameter(constructorParameter);
50
- (0, coerce_imports_1.CoerceImports)(sourceFile, {
51
- namedImports: ['Inject'],
52
- moduleSpecifier: definition.module,
53
- });
54
65
  (0, coerce_imports_1.CoerceImports)(sourceFile, structures);
55
66
  }
56
67
  exports.CoerceDependencyInjection = CoerceDependencyInjection;
@@ -1 +1 @@
1
- {"version":3,"file":"coerce-dependency-injection.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-dependency-injection.ts"],"names":[],"mappings":";;;AAAA,uCAOkB;AAClB,yEAAoE;AACpE,qDAAiD;AAEjD,IAAY,MAGX;AAHD,WAAY,MAAM;IAChB,mCAAyB,CAAA;IACzB,iCAAuB,CAAA;AACzB,CAAC,EAHW,MAAM,sBAAN,MAAM,QAGjB;AAWD,SAAgB,yBAAyB,CACvC,UAAsB,EACtB,UAA+B,EAC/B,aAA8D,EAAE;;IAGhE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;KACpC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IAED,MAAM,uBAAuB,GAAG,IAAA,iDAAsB,EAAC,gBAAgB,CAAC,CAAC;IACzE,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE1D,IAAI,sBAAsB,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;QACjE,OAAO;KACR;IAED,MAAM,oBAAoB,GAAgD;QACxE,IAAI,EAAE,UAAU,CAAC,aAAa;QAC9B,IAAI,EAAE,MAAA,UAAU,CAAC,IAAI,mCAAI,UAAU,CAAC,cAAc;QAClD,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,mCAAI,gBAAK,CAAC,MAAM;QACvC,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,CAAE,UAAU,CAAC,cAAc,CAAE;aACzC;SACF;KACF,CAAC;IAEF,IAAI,UAAU,CAAC,QAAQ,EAAE;QACvB,MAAA,oBAAoB,CAAC,UAAU,0CAAE,OAAO,CAAC;YACvC,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;QACH,oBAAoB,CAAC,IAAI,GAAG,kBAAO,CAAC,gBAAgB,CAClD,MAAA,UAAU,CAAC,IAAI,mCAAI,UAAU,CAAC,cAAc,EAC5C,MAAM,CACP,CAAC;QACF,IAAA,8BAAa,EAAC,UAAU,EAAE;YACxB,YAAY,EAAE,CAAE,UAAU,CAAE;YAC5B,eAAe,EAAE,UAAU,CAAC,MAAM;SACnC,CAAC,CAAC;KACJ;IAED,sBAAsB,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAE1D,IAAA,8BAAa,EAAC,UAAU,EAAE;QACxB,YAAY,EAAE,CAAE,QAAQ,CAAE;QAC1B,eAAe,EAAE,UAAU,CAAC,MAAM;KACnC,CAAC,CAAC;IAEH,IAAA,8BAAa,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AA3DD,8DA2DC"}
1
+ {"version":3,"file":"coerce-dependency-injection.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-dependency-injection.ts"],"names":[],"mappings":";;;AAAA,uCAKkB;AAClB,yDAAqD;AACrD,qDAAiD;AACjD,+EAA0E;AAE1E,IAAY,MAGX;AAHD,WAAY,MAAM;IAChB,mCAAyB,CAAA;IACzB,iCAAuB,CAAA;AACzB,CAAC,EAHW,MAAM,sBAAN,MAAM,QAGjB;AAWD,SAAgB,yBAAyB,CACvC,UAAsB,EACtB,UAA+B,EAC/B,aAA8D,EAAE;;IAGhE,MAAM,gBAAgB,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IAED,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,sBAAsB,EAAE;QAC1B,IAAI,sBAAsB,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE;YAChH,OAAO,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,aAAa,gCAAgC,CAAC,CAAC;YACpF,OAAO;SACR;KACF;IAED,MAAM,mBAAmB,GAAG,IAAA,uDAAyB,EAAC,gBAAgB,EAAE,UAAU,CAAC,aAAa,EAAE;QAChG,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,mCAAI,gBAAK,CAAC,MAAM;QACvC,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE;QACxC,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvB,mBAAmB,CAAC,cAAc,CAAC,UAAU,UAAU,CAAC,cAAc,uBAAuB,CAAC,CAAC;SAChG;aAAM;YACL,mBAAmB,CAAC,cAAc,CAAC,UAAU,UAAU,CAAC,cAAc,GAAG,CAAC,CAAC;SAC5E;QACD,IAAA,8BAAa,EAAC,UAAU,EAAE;YACxB,YAAY,EAAE,CAAE,QAAQ,CAAE;YAC1B,eAAe,EAAE,UAAU,CAAC,MAAM;SACnC,CAAC,CAAC;KACJ;SAAM;QACL,IAAA,kCAAe,EAAC,mBAAmB,EAAE,QAAQ,EAAC;YAC5C,SAAS,EAAE,CAAE,UAAU,CAAC,cAAc,CAAE;SACzC,CAAC,CAAC;QACH,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvB,IAAA,kCAAe,EAAC,mBAAmB,EAAE,UAAU,EAAC;gBAC9C,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;YACH,mBAAmB,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,IAAI,SAAS,CAAC,CAAC;YACzD,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAA,8BAAa,EAAC,UAAU,EAAE;gBACxB,YAAY,EAAE,CAAE,UAAU,CAAE;gBAC5B,eAAe,EAAE,UAAU,CAAC,MAAM;aACnC,CAAC,CAAC;SACJ;aAAM;YACL,mBAAmB,CAAC,OAAO,CAAC,MAAA,UAAU,CAAC,IAAI,mCAAI,UAAU,CAAC,cAAc,CAAC,CAAC;SAC3E;QACD,IAAA,8BAAa,EAAC,UAAU,EAAE;YACxB,YAAY,EAAE,CAAE,QAAQ,CAAE;YAC1B,eAAe,EAAE,UAAU,CAAC,MAAM;SACnC,CAAC,CAAC;KACJ;IAED,IAAA,8BAAa,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AA3DD,8DA2DC"}
@@ -33,9 +33,19 @@ function CoerceImports(sourceFile, structures) {
33
33
  if (defaultImport) {
34
34
  coerceDefaultImport(sourceFile, moduleSpecifier, defaultImport);
35
35
  }
36
+ if (!namedImports && !namespaceImport && !defaultImport) {
37
+ coerceModuleSpecifierImport(sourceFile, moduleSpecifier);
38
+ }
36
39
  }
37
40
  }
38
41
  exports.CoerceImports = CoerceImports;
42
+ function coerceModuleSpecifierImport(sourceFile, moduleSpecifier) {
43
+ if (!sourceFile.getImportDeclaration(moduleSpecifier)) {
44
+ sourceFile.addImportDeclaration({
45
+ moduleSpecifier,
46
+ });
47
+ }
48
+ }
39
49
  /**
40
50
  * This method is used to coerce the default import of a module in a source file. If the import declaration for the specified module exists, it checks for the existence of a default import. If a default import does not exist, it sets the default import to the provided value. If a default import exists and it does not match the provided value, it removes the existing default import and sets it to the provided value. If the import declaration for the specified module does not exist, it adds a new import declaration with the provided module specifier and default import.
41
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"coerce-imports.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coerce-imports.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-imports.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { StatementedNode, StatementStructures, WriterFunction } from 'ts-morph';
2
- export declare function CoerceStatements(node: StatementedNode, statements: (string | WriterFunction | StatementStructures)[] | string | WriterFunction): void;
2
+ export declare function CoerceStatements(node: StatementedNode, statements: (string | WriterFunction | StatementStructures)[] | string | WriterFunction, overwrite?: boolean): void;
@@ -1,9 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CoerceStatements = void 0;
4
- function CoerceStatements(node, statements) {
5
- if (node.getStatements().length ===
6
- 0) {
4
+ function CoerceStatements(node, statements, overwrite = false) {
5
+ if (overwrite) {
6
+ const length = node.getStatements().length;
7
+ if (length > 0) {
8
+ node.removeStatements([0, length - 1]);
9
+ }
10
+ }
11
+ if (node.getStatements().length === 0) {
7
12
  node.addStatements(statements);
8
13
  }
9
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coerce-statements.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-statements.ts"],"names":[],"mappings":";;;AAMA,SAAgB,gBAAgB,CAC9B,IAAqB,EACrB,UAAuF;IAEvF,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM;QAC7B,CAAC,EAAE;QACH,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KAChC;AACH,CAAC;AARD,4CAQC"}
1
+ {"version":3,"file":"coerce-statements.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/coerce-statements.ts"],"names":[],"mappings":";;;AAMA,SAAgB,gBAAgB,CAC9B,IAAqB,EACrB,UAAuF,EACvF,SAAS,GAAG,KAAK;IAEjB,IAAI,SAAS,EAAE;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;QAC3C,IAAI,MAAM,GAAG,CAAC,EAAE;YACd,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;SACxC;KACF;IACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KAChC;AACH,CAAC;AAdD,4CAcC"}
@@ -1,18 +1,22 @@
1
- import { TypeImport } from '@rxap/ts-morph';
2
1
  import { Normalized } from '@rxap/utilities';
3
2
  import { OptionalKind, PropertySignatureStructure, SourceFile } from 'ts-morph';
4
- import { NormalizedTypeImport } from './type-import';
3
+ import { NormalizedTypeImport, TypeImport, TypeName } from './type-import';
5
4
  export interface DataProperty {
6
5
  name: string;
7
- type?: string | TypeImport;
6
+ type?: TypeImport | TypeName;
8
7
  isArray?: boolean;
9
8
  isOptional?: boolean;
10
9
  source?: string | null;
10
+ /**
11
+ * If set the property is an object with the given members
12
+ */
13
+ memberList?: Array<string | DataProperty>;
11
14
  }
12
- export interface NormalizedDataProperty extends Readonly<Normalized<DataProperty>> {
15
+ export interface NormalizedDataProperty extends Readonly<Normalized<Omit<DataProperty, 'memberList'>>> {
13
16
  type: NormalizedTypeImport;
14
17
  source: string | null;
18
+ memberList: Array<NormalizedDataProperty>;
15
19
  }
16
- export declare function NormalizeDataProperty(property: string | Readonly<DataProperty>, defaultType?: string): NormalizedDataProperty;
17
- export declare function NormalizeDataPropertyList(propertyList?: Array<string | DataProperty>, defaultType?: string): Array<NormalizedDataProperty>;
20
+ export declare function NormalizeDataProperty(property: TypeName | Readonly<DataProperty>, defaultType?: TypeImport | TypeName, isArray?: boolean): NormalizedDataProperty;
21
+ export declare function NormalizeDataPropertyList(propertyList?: Array<string | DataProperty>, defaultType?: TypeImport | TypeName): Array<NormalizedDataProperty>;
18
22
  export declare function NormalizeDataPropertyToPropertySignatureStructure(property: DataProperty, sourceFile: SourceFile): OptionalKind<PropertySignatureStructure>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NormalizeDataPropertyToPropertySignatureStructure = exports.NormalizeDataPropertyList = exports.NormalizeDataProperty = void 0;
4
+ const utilities_1 = require("@rxap/utilities");
4
5
  const type_import_1 = require("./type-import");
5
6
  const write_type_1 = require("./write-type");
6
7
  function guessType(name) {
@@ -25,26 +26,31 @@ function guessType(name) {
25
26
  }
26
27
  return 'unknown';
27
28
  }
28
- function NormalizeDataProperty(property, defaultType = 'unknown') {
29
- var _a, _b, _c, _d;
29
+ const notAllowedInVariableNames = [
30
+ " ", "!", "\"", "#", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/",
31
+ ":", ";", "<", "=", ">", "?", "@", "[", "\\", "]", "^", "`", "{", "|", "}", "~"
32
+ ];
33
+ function NormalizeDataProperty(property, defaultType = 'unknown', isArray = false) {
34
+ var _a, _b, _c, _d, _e, _f;
30
35
  let name;
31
36
  let type = 'unknown';
32
- let isArray = false;
33
37
  let isOptional = false;
34
38
  let source = null;
39
+ let memberList = [];
35
40
  if (typeof property === 'string') {
36
41
  // name:type
37
42
  // username:string
38
43
  const fragments = property.split(':');
39
44
  name = fragments[0];
40
- type = fragments[1] || guessType(name); // convert an empty string to undefined
45
+ type = fragments[1] || type; // convert an empty string to undefined
41
46
  }
42
47
  else {
43
48
  name = property.name;
44
- type = (_a = property.type) !== null && _a !== void 0 ? _a : guessType(name);
49
+ type = (_a = property.type) !== null && _a !== void 0 ? _a : type;
45
50
  isArray = (_b = property.isArray) !== null && _b !== void 0 ? _b : isArray;
46
51
  isOptional = (_c = property.isOptional) !== null && _c !== void 0 ? _c : isOptional;
47
52
  source = (_d = property.source) !== null && _d !== void 0 ? _d : source;
53
+ memberList = NormalizeDataPropertyList(property.memberList, defaultType);
48
54
  }
49
55
  if (name.endsWith('[]')) {
50
56
  isArray = true;
@@ -55,16 +61,34 @@ function NormalizeDataProperty(property, defaultType = 'unknown') {
55
61
  name = name.slice(6, -1);
56
62
  }
57
63
  type !== null && type !== void 0 ? type : (type = defaultType);
58
- if (type === 'unknown') {
59
- type = guessType(name);
64
+ if (type === 'unknown' || (typeof type === 'object' && type.name === 'unknown')) {
65
+ if (defaultType === 'unknown') {
66
+ type = guessType(name);
67
+ }
68
+ else {
69
+ type = defaultType;
70
+ }
71
+ }
72
+ if (memberList.length) {
73
+ type = type_import_1.TypeNames.Deferred;
60
74
  }
61
75
  name = name.replace(/\.\?/g, '.').split('.').join('.?');
76
+ if (!isNaN(Number(name[0]))) {
77
+ name = `_${name}`;
78
+ }
79
+ if (notAllowedInVariableNames.some(c => name.includes(c))) {
80
+ const leadingUnderscoreCount = (_f = (_e = name.match(/^_*/)) === null || _e === void 0 ? void 0 : _e[0].length) !== null && _f !== void 0 ? _f : 0;
81
+ const nameWithoutLeadingUnderscores = name.slice(leadingUnderscoreCount);
82
+ name = (0, utilities_1.camelize)(nameWithoutLeadingUnderscores);
83
+ name = '_'.repeat(leadingUnderscoreCount) + name;
84
+ }
62
85
  return Object.freeze({
63
86
  name,
64
87
  type: (0, type_import_1.NormalizeTypeImport)(type),
65
88
  isArray,
66
89
  isOptional,
67
90
  source,
91
+ memberList,
68
92
  });
69
93
  }
70
94
  exports.NormalizeDataProperty = NormalizeDataProperty;
@@ -1 +1 @@
1
- {"version":3,"file":"data-property.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/data-property.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-property.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/data-property.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { ArrayLiteralExpression, ObjectLiteralExpression } from 'ts-morph';
2
+ export declare function GetArrayLiteralFromObjectLiteral(objectLiteral: ObjectLiteralExpression, propertyKey: string): ArrayLiteralExpression | null;
2
3
  export declare function GetCoerceArrayLiteralFromObjectLiteral(objectLiteral: ObjectLiteralExpression, propertyKey: string): ArrayLiteralExpression;
@@ -1,7 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GetCoerceArrayLiteralFromObjectLiteral = void 0;
3
+ exports.GetCoerceArrayLiteralFromObjectLiteral = exports.GetArrayLiteralFromObjectLiteral = void 0;
4
4
  const ts_morph_1 = require("ts-morph");
5
+ function GetArrayLiteralFromObjectLiteral(objectLiteral, propertyKey) {
6
+ const arrayLiteralAssignment = objectLiteral.getProperty(propertyKey);
7
+ if (!arrayLiteralAssignment) {
8
+ return null;
9
+ }
10
+ if (!(arrayLiteralAssignment instanceof ts_morph_1.PropertyAssignment)) {
11
+ throw new Error('The imports property is not type of Property Assignment!');
12
+ }
13
+ const arrayLiteral = arrayLiteralAssignment.getInitializer();
14
+ if (!arrayLiteral) {
15
+ throw new Error('The imports property a not a initializer');
16
+ }
17
+ if (!(arrayLiteral instanceof ts_morph_1.ArrayLiteralExpression)) {
18
+ throw new Error('The imports property initializer is not an array');
19
+ }
20
+ return arrayLiteral;
21
+ }
22
+ exports.GetArrayLiteralFromObjectLiteral = GetArrayLiteralFromObjectLiteral;
5
23
  function GetCoerceArrayLiteralFromObjectLiteral(objectLiteral, propertyKey) {
6
24
  let arrayLiteralAssignment = objectLiteral.getProperty(propertyKey);
7
25
  if (!arrayLiteralAssignment) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-coerce-array-literal-form-object-literal.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/get-coerce-array-literal-form-object-literal.ts"],"names":[],"mappings":";;;AAAA,uCAIkB;AAElB,SAAgB,sCAAsC,CACpD,aAAsC,EACtC,WAAmB;IAGnB,IAAI,sBAAsB,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAEpE,IAAI,CAAC,sBAAsB,EAAE;QAC3B,sBAAsB,GAAG,aAAa,CAAC,qBAAqB,CAAC;YAC3D,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;KACJ;IAED,IAAI,CAAC,CAAC,sBAAsB,YAAY,6BAAkB,CAAC,EAAE;QAC3D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,cAAc,EAAE,CAAC;IAE7D,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,CAAC,YAAY,YAAY,iCAAsB,CAAC,EAAE;QACrD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,OAAO,YAAY,CAAC;AAEtB,CAAC;AA9BD,wFA8BC"}
1
+ {"version":3,"file":"get-coerce-array-literal-form-object-literal.js","sourceRoot":"","sources":["../../../../../packages/ts-morph/src/lib/get-coerce-array-literal-form-object-literal.ts"],"names":[],"mappings":";;;AAAA,uCAIkB;AAElB,SAAgB,gCAAgC,CAC9C,aAAsC,EACtC,WAAmB;IAGnB,MAAM,sBAAsB,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAEtE,IAAI,CAAC,sBAAsB,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,CAAC,sBAAsB,YAAY,6BAAkB,CAAC,EAAE;QAC3D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,cAAc,EAAE,CAAC;IAE7D,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,CAAC,YAAY,YAAY,iCAAsB,CAAC,EAAE;QACrD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,OAAO,YAAY,CAAC;AAEtB,CAAC;AA3BD,4EA2BC;AAED,SAAgB,sCAAsC,CACpD,aAAsC,EACtC,WAAmB;IAGnB,IAAI,sBAAsB,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAEpE,IAAI,CAAC,sBAAsB,EAAE;QAC3B,sBAAsB,GAAG,aAAa,CAAC,qBAAqB,CAAC;YAC3D,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;KACJ;IAED,IAAI,CAAC,CAAC,sBAAsB,YAAY,6BAAkB,CAAC,EAAE;QAC3D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,cAAc,EAAE,CAAC;IAE7D,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,CAAC,YAAY,YAAY,iCAAsB,CAAC,EAAE;QACrD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IAED,OAAO,YAAY,CAAC;AAEtB,CAAC;AA9BD,wFA8BC"}