@goast/typescript 0.2.19 → 0.3.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 (150) hide show
  1. package/README.md +41 -11
  2. package/assets/client/angular/angular-service.utils.ts +80 -80
  3. package/assets/client/angular/request-builder.ts +372 -372
  4. package/assets/client/fetch/fetch-client.utils.ts +52 -52
  5. package/assets/stubs/easy-network-stub/easy-network-stub.utils.ts +258 -258
  6. package/cjs/index.js +1 -0
  7. package/cjs/lib/ast/nodes/argument.js +1 -1
  8. package/cjs/lib/ast/nodes/array-type.js +1 -1
  9. package/cjs/lib/ast/nodes/call.js +1 -1
  10. package/cjs/lib/ast/nodes/class.js +1 -1
  11. package/cjs/lib/ast/nodes/constructor-parameter.js +1 -1
  12. package/cjs/lib/ast/nodes/decorator.js +1 -1
  13. package/cjs/lib/ast/nodes/enum-value.js +1 -1
  14. package/cjs/lib/ast/nodes/enum.js +1 -1
  15. package/cjs/lib/ast/nodes/export.js +1 -1
  16. package/cjs/lib/ast/nodes/function.js +1 -1
  17. package/cjs/lib/ast/nodes/generic-parameter.js +1 -1
  18. package/cjs/lib/ast/nodes/indexer.js +1 -1
  19. package/cjs/lib/ast/nodes/interface.js +1 -1
  20. package/cjs/lib/ast/nodes/intersection-type.js +1 -1
  21. package/cjs/lib/ast/nodes/lookup-type.js +1 -1
  22. package/cjs/lib/ast/nodes/method.js +1 -1
  23. package/cjs/lib/ast/nodes/parameter.js +1 -1
  24. package/cjs/lib/ast/nodes/property.js +2 -2
  25. package/cjs/lib/ast/nodes/reference.js +1 -1
  26. package/cjs/lib/ast/nodes/string.js +1 -1
  27. package/cjs/lib/ast/nodes/tuple.js +1 -1
  28. package/cjs/lib/ast/nodes/type-alias.js +1 -1
  29. package/cjs/lib/ast/nodes/typeof.js +1 -1
  30. package/cjs/lib/ast/nodes/union-type.js +1 -1
  31. package/cjs/lib/ast/nodes/variable.js +1 -1
  32. package/cjs/lib/ast/utils/get-type-script-builder-options.js +2 -3
  33. package/cjs/lib/ast/utils/to-ts-node.js +1 -2
  34. package/cjs/lib/ast/utils/write-ts-generic-parameters.js +1 -2
  35. package/cjs/lib/ast/utils/write-ts-members.js +1 -2
  36. package/cjs/lib/ast/utils/write-ts-nodes.js +2 -3
  37. package/cjs/lib/ast/utils/write-ts-parameters.js +1 -2
  38. package/cjs/lib/file-builder.js +2 -2
  39. package/cjs/lib/generators/models/model-generator.js +13 -3
  40. package/cjs/lib/generators/models/models-generator.js +18 -7
  41. package/cjs/lib/generators/models/models.js +13 -2
  42. package/cjs/lib/generators/services/angular-services/angular-service-generator.js +17 -15
  43. package/cjs/lib/generators/services/angular-services/angular-services-generator.js +17 -12
  44. package/cjs/lib/generators/services/angular-services/models.js +19 -3
  45. package/cjs/lib/generators/services/angular-services/refs.js +2 -3
  46. package/cjs/lib/generators/services/easy-network-stub/easy-network-stub-generator.js +13 -12
  47. package/cjs/lib/generators/services/easy-network-stub/easy-network-stubs-generator.js +16 -11
  48. package/cjs/lib/generators/services/easy-network-stub/models.js +10 -2
  49. package/cjs/lib/generators/services/easy-network-stub/refs.js +2 -3
  50. package/cjs/lib/generators/services/fetch-clients/fetch-client-generator.js +16 -13
  51. package/cjs/lib/generators/services/fetch-clients/fetch-clients-generator.js +48 -13
  52. package/cjs/lib/generators/services/fetch-clients/models.js +13 -1
  53. package/cjs/lib/generators/services/fetch-clients/refs.js +2 -3
  54. package/cjs/lib/import-collection.js +1 -1
  55. package/cjs/lib/utils.js +5 -6
  56. package/esm/index.js +1 -0
  57. package/esm/lib/ast/nodes/argument.js +1 -1
  58. package/esm/lib/ast/nodes/array-type.js +1 -1
  59. package/esm/lib/ast/nodes/call.js +1 -1
  60. package/esm/lib/ast/nodes/class.js +1 -1
  61. package/esm/lib/ast/nodes/constructor-parameter.js +1 -1
  62. package/esm/lib/ast/nodes/decorator.js +1 -1
  63. package/esm/lib/ast/nodes/enum-value.js +1 -1
  64. package/esm/lib/ast/nodes/enum.js +1 -1
  65. package/esm/lib/ast/nodes/export.js +1 -1
  66. package/esm/lib/ast/nodes/function.js +1 -1
  67. package/esm/lib/ast/nodes/generic-parameter.js +1 -1
  68. package/esm/lib/ast/nodes/indexer.js +1 -1
  69. package/esm/lib/ast/nodes/interface.js +1 -1
  70. package/esm/lib/ast/nodes/intersection-type.js +1 -1
  71. package/esm/lib/ast/nodes/lookup-type.js +1 -1
  72. package/esm/lib/ast/nodes/method.js +1 -1
  73. package/esm/lib/ast/nodes/parameter.js +1 -1
  74. package/esm/lib/ast/nodes/property.js +2 -2
  75. package/esm/lib/ast/nodes/reference.js +1 -1
  76. package/esm/lib/ast/nodes/string.js +1 -1
  77. package/esm/lib/ast/nodes/tuple.js +1 -1
  78. package/esm/lib/ast/nodes/type-alias.js +1 -1
  79. package/esm/lib/ast/nodes/typeof.js +1 -1
  80. package/esm/lib/ast/nodes/union-type.js +1 -1
  81. package/esm/lib/ast/nodes/variable.js +1 -1
  82. package/esm/lib/ast/utils/get-type-script-builder-options.js +1 -1
  83. package/esm/lib/generators/models/model-generator.js +13 -3
  84. package/esm/lib/generators/models/models-generator.js +18 -7
  85. package/esm/lib/generators/models/models.js +13 -2
  86. package/esm/lib/generators/services/angular-services/angular-service-generator.js +17 -15
  87. package/esm/lib/generators/services/angular-services/angular-services-generator.js +17 -12
  88. package/esm/lib/generators/services/angular-services/models.js +19 -3
  89. package/esm/lib/generators/services/angular-services/refs.js +1 -1
  90. package/esm/lib/generators/services/easy-network-stub/easy-network-stub-generator.js +13 -12
  91. package/esm/lib/generators/services/easy-network-stub/easy-network-stubs-generator.js +16 -11
  92. package/esm/lib/generators/services/easy-network-stub/models.js +10 -2
  93. package/esm/lib/generators/services/easy-network-stub/refs.js +1 -1
  94. package/esm/lib/generators/services/fetch-clients/fetch-client-generator.js +16 -13
  95. package/esm/lib/generators/services/fetch-clients/fetch-clients-generator.js +46 -11
  96. package/esm/lib/generators/services/fetch-clients/models.js +13 -1
  97. package/esm/lib/generators/services/fetch-clients/refs.js +1 -1
  98. package/esm/lib/import-collection.js +1 -1
  99. package/package.json +8 -3
  100. package/types/index.d.ts +1 -0
  101. package/types/lib/ast/nodes/argument.d.ts +1 -1
  102. package/types/lib/ast/nodes/array-type.d.ts +1 -1
  103. package/types/lib/ast/nodes/arrow-function.d.ts +1 -1
  104. package/types/lib/ast/nodes/call.d.ts +1 -1
  105. package/types/lib/ast/nodes/class.d.ts +1 -1
  106. package/types/lib/ast/nodes/constructor-parameter.d.ts +1 -1
  107. package/types/lib/ast/nodes/constructor.d.ts +1 -1
  108. package/types/lib/ast/nodes/decorator.d.ts +2 -2
  109. package/types/lib/ast/nodes/doc.d.ts +1 -1
  110. package/types/lib/ast/nodes/enum-value.d.ts +2 -2
  111. package/types/lib/ast/nodes/enum.d.ts +1 -1
  112. package/types/lib/ast/nodes/export.d.ts +2 -2
  113. package/types/lib/ast/nodes/function-type.d.ts +1 -1
  114. package/types/lib/ast/nodes/function.d.ts +1 -1
  115. package/types/lib/ast/nodes/generic-parameter.d.ts +1 -1
  116. package/types/lib/ast/nodes/indexer.d.ts +1 -1
  117. package/types/lib/ast/nodes/interface.d.ts +1 -1
  118. package/types/lib/ast/nodes/intersection-type.d.ts +1 -1
  119. package/types/lib/ast/nodes/lookup-type.d.ts +1 -1
  120. package/types/lib/ast/nodes/method.d.ts +2 -2
  121. package/types/lib/ast/nodes/object-type.d.ts +1 -1
  122. package/types/lib/ast/nodes/object.d.ts +1 -1
  123. package/types/lib/ast/nodes/parameter.d.ts +1 -1
  124. package/types/lib/ast/nodes/property-accessor.d.ts +2 -2
  125. package/types/lib/ast/nodes/property.d.ts +15 -15
  126. package/types/lib/ast/nodes/reference.d.ts +4 -4
  127. package/types/lib/ast/nodes/string.d.ts +1 -1
  128. package/types/lib/ast/nodes/tuple.d.ts +1 -1
  129. package/types/lib/ast/nodes/type-alias.d.ts +1 -1
  130. package/types/lib/ast/nodes/typeof.d.ts +2 -2
  131. package/types/lib/ast/nodes/union-type.d.ts +1 -1
  132. package/types/lib/ast/nodes/variable.d.ts +1 -1
  133. package/types/lib/ast/references/angular.d.ts +8 -8
  134. package/types/lib/ast/references/easy-network-stub.d.ts +6 -6
  135. package/types/lib/ast/references/rxjs.d.ts +5 -5
  136. package/types/lib/ast/references/typescript.d.ts +46 -46
  137. package/types/lib/common-results.d.ts +1 -0
  138. package/types/lib/config.d.ts +53 -9
  139. package/types/lib/generators/models/model-generator.d.ts +1 -1
  140. package/types/lib/generators/models/models.d.ts +43 -8
  141. package/types/lib/generators/services/angular-services/angular-services-generator.d.ts +1 -1
  142. package/types/lib/generators/services/angular-services/models.d.ts +61 -20
  143. package/types/lib/generators/services/angular-services/refs.d.ts +9 -9
  144. package/types/lib/generators/services/easy-network-stub/easy-network-stubs-generator.d.ts +1 -1
  145. package/types/lib/generators/services/easy-network-stub/models.d.ts +35 -13
  146. package/types/lib/generators/services/easy-network-stub/refs.d.ts +14 -14
  147. package/types/lib/generators/services/fetch-clients/fetch-clients-generator.d.ts +4 -1
  148. package/types/lib/generators/services/fetch-clients/models.d.ts +63 -18
  149. package/types/lib/generators/services/fetch-clients/refs.d.ts +4 -4
  150. package/types/lib/utils.d.ts +2 -1
@@ -64,7 +64,7 @@ class TsClass extends node_1.TsNode {
64
64
  }
65
65
  }
66
66
  exports.TsClass = TsClass;
67
- const createClass = (name, options) => new TsClass(Object.assign(Object.assign({}, options), { name }));
67
+ const createClass = (name, options) => new TsClass({ ...options, name });
68
68
  exports.tsClass = Object.assign(createClass, {
69
69
  write: write_ts_nodes_1.writeTsNodes,
70
70
  });
@@ -40,7 +40,7 @@ class TsConstructorParameter extends parameter_1.TsParameter {
40
40
  }
41
41
  }
42
42
  exports.TsConstructorParameter = TsConstructorParameter;
43
- const createConstructorParameter = (name, options) => new TsConstructorParameter(Object.assign(Object.assign({}, options), { name }));
43
+ const createConstructorParameter = (name, options) => new TsConstructorParameter({ ...options, name });
44
44
  exports.tsConstructorParameter = Object.assign(createConstructorParameter, {
45
45
  write: write_ts_parameters_1.writeTsParameters,
46
46
  });
@@ -25,7 +25,7 @@ class TsDecorator extends node_1.TsNode {
25
25
  }
26
26
  }
27
27
  exports.TsDecorator = TsDecorator;
28
- const createDecorator = (fn, args, options) => new TsDecorator(Object.assign(Object.assign({}, options), { function: fn, arguments: args }));
28
+ const createDecorator = (fn, args, options) => new TsDecorator({ ...options, function: fn, arguments: args });
29
29
  const writeDecorators = (builder, nodes, options) => {
30
30
  const filteredNodes = (0, core_1.toArray)(nodes).filter(core_1.notNullish);
31
31
  builder.forEach(filteredNodes, (b, d) => {
@@ -26,7 +26,7 @@ class TsEnumValue extends node_1.TsNode {
26
26
  }
27
27
  }
28
28
  exports.TsEnumValue = TsEnumValue;
29
- const createEnumValue = (name, options) => new TsEnumValue(Object.assign(Object.assign({}, options), { name }));
29
+ const createEnumValue = (name, options) => new TsEnumValue({ ...options, name });
30
30
  const writeEnumValues = (builder, nodes) => {
31
31
  (0, write_ts_nodes_1.writeTsNodes)(builder, nodes, { separator: ',\n' });
32
32
  };
@@ -40,7 +40,7 @@ class TsEnum extends node_1.TsNode {
40
40
  }
41
41
  }
42
42
  exports.TsEnum = TsEnum;
43
- const createEnum = (name, options) => new TsEnum(Object.assign(Object.assign({}, options), { name }));
43
+ const createEnum = (name, options) => new TsEnum({ ...options, name });
44
44
  exports.tsEnum = Object.assign(createEnum, {
45
45
  write: write_ts_nodes_1.writeTsNodes,
46
46
  });
@@ -20,7 +20,7 @@ class TsExport extends node_1.TsNode {
20
20
  }
21
21
  }
22
22
  exports.TsExport = TsExport;
23
- const createExport = (name, filePath, options) => new TsExport(Object.assign(Object.assign({}, options), { name, filePath }));
23
+ const createExport = (name, filePath, options) => new TsExport({ ...options, name, filePath });
24
24
  exports.createExport = createExport;
25
25
  exports.tsExport = Object.assign(exports.createExport, {
26
26
  write: write_ts_nodes_1.writeTsNodes,
@@ -54,7 +54,7 @@ class TsFunction extends node_1.TsNode {
54
54
  }
55
55
  }
56
56
  exports.TsFunction = TsFunction;
57
- const createFunction = (name, options) => new TsFunction(Object.assign(Object.assign({}, options), { name }));
57
+ const createFunction = (name, options) => new TsFunction({ ...options, name });
58
58
  exports.tsFunction = Object.assign(createFunction, {
59
59
  write: write_ts_nodes_1.writeTsNodes,
60
60
  });
@@ -34,7 +34,7 @@ class TsGenericParameter extends node_1.TsNode {
34
34
  }
35
35
  }
36
36
  exports.TsGenericParameter = TsGenericParameter;
37
- const createGenericParameter = (name, options) => new TsGenericParameter(Object.assign(Object.assign({}, options), { name }));
37
+ const createGenericParameter = (name, options) => new TsGenericParameter({ ...options, name });
38
38
  exports.tsGenericParameter = Object.assign(createGenericParameter, {
39
39
  write: write_ts_generic_parameters_1.writeTsGenericParameters,
40
40
  });
@@ -26,7 +26,7 @@ class TsIndexer extends node_1.TsNode {
26
26
  }
27
27
  }
28
28
  exports.TsIndexer = TsIndexer;
29
- const createIndexer = (keyType, valueType, options) => new TsIndexer(Object.assign(Object.assign({}, options), { keyType, valueType }));
29
+ const createIndexer = (keyType, valueType, options) => new TsIndexer({ ...options, keyType, valueType });
30
30
  exports.tsIndexer = Object.assign(createIndexer, {
31
31
  write: write_ts_nodes_1.writeTsNodes,
32
32
  });
@@ -54,7 +54,7 @@ class TsInterface extends node_1.TsNode {
54
54
  }
55
55
  }
56
56
  exports.TsInterface = TsInterface;
57
- const createInterface = (name, options) => new TsInterface(Object.assign(Object.assign({}, options), { name }));
57
+ const createInterface = (name, options) => new TsInterface({ ...options, name });
58
58
  exports.tsInterface = Object.assign(createInterface, {
59
59
  write: write_ts_nodes_1.writeTsNodes,
60
60
  });
@@ -26,7 +26,7 @@ class TsIntersectionType extends node_1.TsNode {
26
26
  }
27
27
  }
28
28
  exports.TsIntersectionType = TsIntersectionType;
29
- const createIntersectionType = (types, options) => new TsIntersectionType(Object.assign(Object.assign({}, options), { types }));
29
+ const createIntersectionType = (types, options) => new TsIntersectionType({ ...options, types });
30
30
  exports.tsIntersectionType = Object.assign(createIntersectionType, {
31
31
  write: write_ts_nodes_1.writeTsNodes,
32
32
  });
@@ -24,7 +24,7 @@ class TsLookupType extends node_1.TsNode {
24
24
  }
25
25
  }
26
26
  exports.TsLookupType = TsLookupType;
27
- const createLookupType = (type, index, options) => new TsLookupType(Object.assign(Object.assign({}, options), { type, index }));
27
+ const createLookupType = (type, index, options) => new TsLookupType({ ...options, type, index });
28
28
  exports.tsLookupType = Object.assign(createLookupType, {
29
29
  write: write_ts_nodes_1.writeTsNodes,
30
30
  });
@@ -75,7 +75,7 @@ class TsMethod extends node_1.TsNode {
75
75
  }
76
76
  }
77
77
  exports.TsMethod = TsMethod;
78
- const createMethod = (name, options) => new TsMethod(Object.assign(Object.assign({}, options), { name }));
78
+ const createMethod = (name, options) => new TsMethod({ ...options, name });
79
79
  exports.createMethod = createMethod;
80
80
  exports.tsMethod = Object.assign(exports.createMethod, {
81
81
  write: write_ts_nodes_1.writeTsNodes,
@@ -39,7 +39,7 @@ class TsParameter extends node_1.TsNode {
39
39
  }
40
40
  }
41
41
  exports.TsParameter = TsParameter;
42
- const createParameter = (name, options) => new TsParameter(Object.assign(Object.assign({}, options), { name }));
42
+ const createParameter = (name, options) => new TsParameter({ ...options, name });
43
43
  exports.tsParameter = Object.assign(createParameter, {
44
44
  write: write_ts_parameters_1.writeTsParameters,
45
45
  });
@@ -108,9 +108,9 @@ class TsAccessorProperty extends TsProperty {
108
108
  exports.TsAccessorProperty = TsAccessorProperty;
109
109
  const createProperty = (name, options) => {
110
110
  if (options && ('get' in options || 'set' in options)) {
111
- return new TsAccessorProperty(Object.assign(Object.assign({}, options), { name }));
111
+ return new TsAccessorProperty({ ...options, name });
112
112
  }
113
- return new TsSimpleProperty(Object.assign(Object.assign({}, options), { name }));
113
+ return new TsSimpleProperty({ ...options, name });
114
114
  };
115
115
  exports.tsProperty = Object.assign(createProperty, {
116
116
  write: write_ts_nodes_1.writeTsNodes,
@@ -36,7 +36,7 @@ TsReference.addImportHandlers = [
36
36
  handler: (builder, reference) => builder.addImport(reference.name, reference.moduleNameOrfilePath),
37
37
  },
38
38
  ];
39
- const createReference = (name, moduleNameOrfilePath, options) => new TsReference(Object.assign(Object.assign({}, options), { name, moduleNameOrfilePath }));
39
+ const createReference = (name, moduleNameOrfilePath, options) => new TsReference({ ...options, name, moduleNameOrfilePath });
40
40
  function _createFactory(name, moduleNameOrfilePath) {
41
41
  return Object.assign(() => createReference(name, moduleNameOrfilePath), {
42
42
  refName: name,
@@ -24,7 +24,7 @@ class TsString extends node_1.TsNode {
24
24
  }
25
25
  }
26
26
  exports.TsString = TsString;
27
- const createString = (value, options) => new TsString(Object.assign(Object.assign({}, options), { value }));
27
+ const createString = (value, options) => new TsString({ ...options, value });
28
28
  exports.tsString = Object.assign(createString, {
29
29
  write: write_ts_nodes_1.writeTsNodes,
30
30
  });
@@ -27,7 +27,7 @@ class TsTuple extends node_1.TsNode {
27
27
  }
28
28
  }
29
29
  exports.TsTuple = TsTuple;
30
- const createTuple = (elements, options) => new TsTuple(Object.assign(Object.assign({}, options), { elements }));
30
+ const createTuple = (elements, options) => new TsTuple({ ...options, elements });
31
31
  exports.tsTuple = Object.assign(createTuple, {
32
32
  write: write_ts_nodes_1.writeTsNodes,
33
33
  });
@@ -32,7 +32,7 @@ class TsTypeAlias extends node_1.TsNode {
32
32
  }
33
33
  }
34
34
  exports.TsTypeAlias = TsTypeAlias;
35
- const createTypeAlias = (name, type, options) => new TsTypeAlias(Object.assign(Object.assign({}, options), { name, type }));
35
+ const createTypeAlias = (name, type, options) => new TsTypeAlias({ ...options, name, type });
36
36
  exports.tsTypeAlias = Object.assign(createTypeAlias, {
37
37
  write: write_ts_nodes_1.writeTsNodes,
38
38
  });
@@ -16,7 +16,7 @@ class TsTypeof extends node_1.TsNode {
16
16
  }
17
17
  }
18
18
  exports.TsTypeof = TsTypeof;
19
- const createTypeof = (value, options) => new TsTypeof(Object.assign(Object.assign({}, options), { value }));
19
+ const createTypeof = (value, options) => new TsTypeof({ ...options, value });
20
20
  exports.createTypeof = createTypeof;
21
21
  exports.tsTypeof = Object.assign(exports.createTypeof, {
22
22
  write: write_ts_nodes_1.writeTsNodes,
@@ -26,7 +26,7 @@ class TsUnionType extends node_1.TsNode {
26
26
  }
27
27
  }
28
28
  exports.TsUnionType = TsUnionType;
29
- const createUnionType = (types, options) => new TsUnionType(Object.assign(Object.assign({}, options), { types }));
29
+ const createUnionType = (types, options) => new TsUnionType({ ...options, types });
30
30
  exports.tsUnionType = Object.assign(createUnionType, {
31
31
  write: write_ts_nodes_1.writeTsNodes,
32
32
  });
@@ -34,7 +34,7 @@ class TsVariable extends node_1.TsNode {
34
34
  }
35
35
  }
36
36
  exports.TsVariable = TsVariable;
37
- const createVariable = (name, options) => new TsVariable(Object.assign(Object.assign({}, options), { name }));
37
+ const createVariable = (name, options) => new TsVariable({ ...options, name });
38
38
  exports.tsVariable = Object.assign(createVariable, {
39
39
  write: write_ts_nodes_1.writeTsNodes,
40
40
  });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTypeScriptBuilderOptions = void 0;
3
+ exports.getTypeScriptBuilderOptions = getTypeScriptBuilderOptions;
4
4
  const core_1 = require("@goast/core");
5
5
  const config_1 = require("../../config");
6
6
  const file_builder_1 = require("../../file-builder");
@@ -12,8 +12,7 @@ function getTypeScriptBuilderOptions(builder) {
12
12
  if (tsConfigSymbol in builder.options) {
13
13
  return builder.options[tsConfigSymbol];
14
14
  }
15
- const options = Object.assign(Object.assign(Object.assign({}, core_1.defaultOpenApiGeneratorConfig), config_1.defaultTypeScriptGeneratorConfig), builder.options);
15
+ const options = { ...core_1.defaultOpenApiGeneratorConfig, ...config_1.defaultTypeScriptGeneratorConfig, ...builder.options };
16
16
  builder[tsConfigSymbol] = options;
17
17
  return options;
18
18
  }
19
- exports.getTypeScriptBuilderOptions = getTypeScriptBuilderOptions;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toTsNode = void 0;
3
+ exports.toTsNode = toTsNode;
4
4
  const object_1 = require("../nodes/object");
5
5
  const property_1 = require("../nodes/property");
6
6
  const string_1 = require("../nodes/string");
@@ -21,4 +21,3 @@ function toTsNode(value) {
21
21
  }
22
22
  return (0, string_1.tsString)(String(value));
23
23
  }
24
- exports.toTsNode = toTsNode;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeTsGenericParameters = void 0;
3
+ exports.writeTsGenericParameters = writeTsGenericParameters;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_ts_nodes_1 = require("./write-ts-nodes");
6
6
  function writeTsGenericParameters(builder, nodes) {
@@ -8,4 +8,3 @@ function writeTsGenericParameters(builder, nodes) {
8
8
  const multiline = filteredNodes.length > 2;
9
9
  builder.parenthesizeIf(filteredNodes.length > 0, '<>', (b) => (0, write_ts_nodes_1.writeTsNodes)(b, filteredNodes, { separator: multiline ? ',\n' : ', ' }), { multiline });
10
10
  }
11
- exports.writeTsGenericParameters = writeTsGenericParameters;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeTsMembers = void 0;
3
+ exports.writeTsMembers = writeTsMembers;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_ts_nodes_1 = require("./write-ts-nodes");
6
6
  const doc_1 = require("../nodes/doc");
@@ -15,4 +15,3 @@ function writeTsMembers(builder, members, options) {
15
15
  .append((b) => (0, write_ts_nodes_1.writeTsNode)(b, m))
16
16
  .if(i < filteredMembers.length - 1, (b) => b.ensurePreviousLineEmpty()), (b) => b.append((b) => (0, write_ts_nodes_1.writeTsNode)(b, m)).ensureCurrentLineEmpty()));
17
17
  }
18
- exports.writeTsMembers = writeTsMembers;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeTsNodes = exports.writeTsNode = void 0;
3
+ exports.writeTsNode = writeTsNode;
4
+ exports.writeTsNodes = writeTsNodes;
4
5
  const core_1 = require("@goast/core");
5
6
  const node_1 = require("../node");
6
7
  function writeTsNode(builder, node) {
@@ -11,7 +12,6 @@ function writeTsNode(builder, node) {
11
12
  builder.append(node);
12
13
  }
13
14
  }
14
- exports.writeTsNode = writeTsNode;
15
15
  function writeTsNodes(builder, nodes, options) {
16
16
  const filteredNodes = (0, core_1.toArray)(nodes).filter(core_1.notNullish);
17
17
  if (filteredNodes.length === 1) {
@@ -21,4 +21,3 @@ function writeTsNodes(builder, nodes, options) {
21
21
  builder.forEach(filteredNodes, writeTsNode, { separator: options === null || options === void 0 ? void 0 : options.separator });
22
22
  }
23
23
  }
24
- exports.writeTsNodes = writeTsNodes;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeTsParameters = void 0;
3
+ exports.writeTsParameters = writeTsParameters;
4
4
  const core_1 = require("@goast/core");
5
5
  const write_ts_nodes_1 = require("./write-ts-nodes");
6
6
  function writeTsParameters(builder, nodes) {
@@ -11,4 +11,3 @@ function writeTsParameters(builder, nodes) {
11
11
  multiline,
12
12
  });
13
13
  }
14
- exports.writeTsParameters = writeTsParameters;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypeScriptFileBuilder = exports.isTypeScriptAppendValue = void 0;
3
+ exports.TypeScriptFileBuilder = void 0;
4
+ exports.isTypeScriptAppendValue = isTypeScriptAppendValue;
4
5
  const path_1 = require("path");
5
6
  const fs_extra_1 = require("fs-extra");
6
7
  const core_1 = require("@goast/core");
@@ -10,7 +11,6 @@ const import_collection_1 = require("./import-collection");
10
11
  function isTypeScriptAppendValue(value) {
11
12
  return (0, core_1.isAppendValue)(value) || value instanceof node_1.TsNode;
12
13
  }
13
- exports.isTypeScriptAppendValue = isTypeScriptAppendValue;
14
14
  class TypeScriptFileBuilder extends core_1.SourceBuilder {
15
15
  get options() {
16
16
  return super.options;
@@ -11,13 +11,22 @@ class DefaultTypeScriptModelGenerator extends file_generator_1.TypeScriptFileGen
11
11
  if (this.shouldGenerateTypeDeclaration(ctx, ctx.schema)) {
12
12
  const name = this.getDeclarationTypeName(ctx, ctx.schema);
13
13
  const filePath = this.getFilePath(ctx, ctx.schema);
14
+ const fileContent = this.getFileContent(ctx);
14
15
  file_builder_1.TypeScriptFileBuilder.generate({
15
16
  logName: `model ${name}`,
16
17
  filePath,
17
18
  options: ctx.config,
18
- generator: (b) => b.append(this.getFileContent(ctx)),
19
+ generator: (b) => b.append(fileContent),
19
20
  });
20
- return { component: name, filePath, imports: [{ kind: 'file', name, modulePath: filePath }] };
21
+ return {
22
+ component: name,
23
+ filePath,
24
+ imports: [{ kind: 'file', name, modulePath: filePath }],
25
+ additionalExports: fileContent.values
26
+ .filter((x) => typeof x === 'object' && x !== null && 'export' in x && x.export === true && 'name' in x)
27
+ .filter((x) => x.name !== name)
28
+ .map((x) => x.name),
29
+ };
21
30
  }
22
31
  else {
23
32
  const builder = new file_builder_1.TypeScriptFileBuilder(undefined, ctx.config);
@@ -321,7 +330,8 @@ class DefaultTypeScriptModelGenerator extends file_generator_1.TypeScriptFileGen
321
330
  .filter((item, index, self) => self.indexOf(item) === index);
322
331
  }
323
332
  getFilePath(ctx, schema) {
324
- return (0, path_1.resolve)(ctx.config.outputDir, ctx.config.modelsDirPath, `${(0, core_1.toCasing)(schema.name, ctx.config.fileNameCasing)}.ts`);
333
+ var _a;
334
+ return (0, path_1.resolve)(ctx.config.outputDir, ctx.config.modelsDir, `${(0, core_1.toCasing)(schema.name, (_a = ctx.config.modelFileNameCasing) !== null && _a !== void 0 ? _a : ctx.config.fileNameCasing)}.ts`);
325
335
  }
326
336
  }
327
337
  exports.DefaultTypeScriptModelGenerator = DefaultTypeScriptModelGenerator;
@@ -14,8 +14,10 @@ class TypeScriptModelsGenerator extends core_1.OpenApiSchemasGenerationProviderB
14
14
  }
15
15
  initResult() {
16
16
  return {
17
- models: {},
18
- indexFiles: { models: undefined },
17
+ typescript: {
18
+ models: {},
19
+ indexFiles: { models: undefined },
20
+ },
19
21
  };
20
22
  }
21
23
  buildContext(context, config) {
@@ -23,15 +25,18 @@ class TypeScriptModelsGenerator extends core_1.OpenApiSchemasGenerationProviderB
23
25
  }
24
26
  onGenerate(ctx) {
25
27
  const output = super.onGenerate(ctx);
26
- output.indexFiles.models = this.generateIndexFile(ctx);
28
+ output.typescript.indexFiles.models = this.generateIndexFile(ctx);
27
29
  return output;
28
30
  }
29
31
  generateSchema(ctx, schema) {
30
32
  const modelGenerator = this._modelGeneratorFactory.create();
31
- return modelGenerator.generate(Object.assign(Object.assign({}, ctx), { schema }));
33
+ return modelGenerator.generate({
34
+ ...ctx,
35
+ schema,
36
+ });
32
37
  }
33
38
  addSchemaResult(ctx, schema, result) {
34
- ctx.output.models[schema.id] = result;
39
+ ctx.output.typescript.models[schema.id] = result;
35
40
  }
36
41
  generateIndexFile(ctx) {
37
42
  const filePath = this.getIndexFilePath(ctx);
@@ -44,10 +49,16 @@ class TypeScriptModelsGenerator extends core_1.OpenApiSchemasGenerationProviderB
44
49
  return filePath;
45
50
  }
46
51
  getIndexFilePath(ctx) {
47
- return ctx.config.indexFilePath ? (0, path_1.resolve)(ctx.config.outputDir, ctx.config.indexFilePath) : null;
52
+ return ctx.config.modelsIndexFile ? (0, path_1.resolve)(ctx.config.outputDir, ctx.config.modelsIndexFile) : null;
48
53
  }
49
54
  getIndexFileContent(ctx) {
50
- return (0, core_1.appendValueGroup)(Object.values(ctx.output.models).map((x) => (x.filePath ? ast_1.ts.export(x.component, x.filePath) : null)));
55
+ return (0, core_1.appendValueGroup)(Object.values(ctx.output.typescript.models).flatMap((x) => {
56
+ var _a, _b;
57
+ const { filePath } = x;
58
+ if (!filePath)
59
+ return [];
60
+ return [ast_1.ts.export(x.component, filePath), ...((_b = (_a = x.additionalExports) === null || _a === void 0 ? void 0 : _a.map((e) => ast_1.ts.export(e, filePath))) !== null && _b !== void 0 ? _b : [])];
61
+ }));
51
62
  }
52
63
  }
53
64
  exports.TypeScriptModelsGenerator = TypeScriptModelsGenerator;
@@ -2,5 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultTypeScriptModelsGeneratorConfig = exports.defaultTypeScriptModelGeneratorConfig = void 0;
4
4
  const config_1 = require("../../config");
5
- exports.defaultTypeScriptModelGeneratorConfig = Object.assign(Object.assign({}, config_1.defaultTypeScriptGeneratorConfig), { enumGeneration: 'union', immutableTypes: false, inlineUnnamedSchemas: true, modelsDirPath: 'models', typeDeclaration: 'type' });
6
- exports.defaultTypeScriptModelsGeneratorConfig = Object.assign(Object.assign({}, exports.defaultTypeScriptModelGeneratorConfig), { indexFilePath: 'models.ts' });
5
+ exports.defaultTypeScriptModelGeneratorConfig = {
6
+ ...config_1.defaultTypeScriptGeneratorConfig,
7
+ enumGeneration: 'union',
8
+ immutableTypes: false,
9
+ inlineUnnamedSchemas: true,
10
+ modelsDir: 'models',
11
+ modelFileNameCasing: undefined,
12
+ typeDeclaration: 'type',
13
+ };
14
+ exports.defaultTypeScriptModelsGeneratorConfig = {
15
+ ...exports.defaultTypeScriptModelGeneratorConfig,
16
+ modelsIndexFile: 'models.ts',
17
+ };
@@ -102,7 +102,7 @@ class DefaultTypeScriptAngularServiceGenerator extends file_generator_1.TypeScri
102
102
  parser: (_a = value === null || value === void 0 ? void 0 : value.parser) !== null && _a !== void 0 ? _a : 'text',
103
103
  type: typeof (value === null || value === void 0 ? void 0 : value.type) === 'function'
104
104
  ? this.getSchemaType(ctx, value.type(ctx.data.schemas))
105
- : value !== null && value !== void 0 ? value : ast_1.ts.refs.never(),
105
+ : (value !== null && value !== void 0 ? value : ast_1.ts.refs.never()),
106
106
  },
107
107
  ];
108
108
  }),
@@ -140,7 +140,7 @@ class DefaultTypeScriptAngularServiceGenerator extends file_generator_1.TypeScri
140
140
  description: parameter.description,
141
141
  tags: [parameter.deprecated ? ast_1.ts.docTag('deprecated') : null],
142
142
  }),
143
- type: schema ? (b) => b.appendModelUsage(ctx.input.models[schema.id]) : this.getAnyType(ctx),
143
+ type: schema ? (b) => b.appendModelUsage(ctx.input.typescript.models[schema.id]) : this.getAnyType(ctx),
144
144
  optional: !parameter.required,
145
145
  }));
146
146
  }
@@ -149,7 +149,7 @@ class DefaultTypeScriptAngularServiceGenerator extends file_generator_1.TypeScri
149
149
  const schema = body.content[0].schema;
150
150
  type.members.push(ast_1.ts.property('body', {
151
151
  doc: ast_1.ts.doc({ description: body.description }),
152
- type: schema ? (b) => b.appendModelUsage(ctx.input.models[schema.id]) : this.getAnyType(ctx),
152
+ type: schema ? (b) => b.appendModelUsage(ctx.input.typescript.models[schema.id]) : this.getAnyType(ctx),
153
153
  optional: !body.required,
154
154
  }));
155
155
  }
@@ -231,13 +231,13 @@ class DefaultTypeScriptAngularServiceGenerator extends file_generator_1.TypeScri
231
231
  }
232
232
  : null,
233
233
  '',
234
- (0, core_1.builderTemplate) `return ${ctx.refs.waitForResponse([responseModelType])}(${core_1.builderTemplate.indent `
235
- this.http.request(rb.build({${core_1.builderTemplate.indent `
236
- responseType: ${ast_1.ts.string(responseType)},
237
- accept: ${ast_1.ts.string(accept)},
238
- context,`}
239
- })),
240
- {${core_1.builderTemplate.indent `
234
+ (0, core_1.builderTemplate) `return ${ctx.refs.waitForResponse([responseModelType])}(${core_1.builderTemplate.indent `
235
+ this.http.request(rb.build({${core_1.builderTemplate.indent `
236
+ responseType: ${ast_1.ts.string(responseType)},
237
+ accept: ${ast_1.ts.string(accept)},
238
+ context,`}
239
+ })),
240
+ {${core_1.builderTemplate.indent `
241
241
  errorResponseTypes: ${ast_1.ts.object({
242
242
  members: [
243
243
  ...Object.entries(this.getEndpointStatusCodes(ctx, endpoint))
@@ -246,8 +246,8 @@ class DefaultTypeScriptAngularServiceGenerator extends file_generator_1.TypeScri
246
246
  return ast_1.ts.property(key, { value: ast_1.ts.string(value.parser) });
247
247
  }),
248
248
  ],
249
- })}`}
250
- }`}
249
+ })}`}
250
+ }`}
251
251
  )`,
252
252
  ], '\n'),
253
253
  });
@@ -272,16 +272,18 @@ class DefaultTypeScriptAngularServiceGenerator extends file_generator_1.TypeScri
272
272
  return (0, core_1.toCasing)(endpoint.name, ctx.config.functionNameCasing);
273
273
  }
274
274
  getServiceFilePath(ctx) {
275
- return (0, path_1.resolve)(ctx.config.outputDir, ctx.config.servicesDirPath, `${(0, core_1.toCasing)(ctx.service.name, ctx.config.fileNameCasing)}.ts`);
275
+ var _a;
276
+ return (0, path_1.resolve)(ctx.config.outputDir, ctx.config.servicesDir, `${(0, core_1.toCasing)(ctx.service.name, (_a = ctx.config.serviceFileNameCasing) !== null && _a !== void 0 ? _a : ctx.config.fileNameCasing)}.ts`);
276
277
  }
277
278
  getResponseModelFilePath(ctx) {
278
- return (0, path_1.resolve)(ctx.config.outputDir, ctx.config.responseModelsDirPath, `${(0, core_1.toCasing)(ctx.service.name, ctx.config.responseModelFileNameCasing)}.ts`);
279
+ var _a;
280
+ return (0, path_1.resolve)(ctx.config.outputDir, ctx.config.responseModelsDir, `${(0, core_1.toCasing)(ctx.service.name, (_a = ctx.config.responseModelFileNameCasing) !== null && _a !== void 0 ? _a : ctx.config.fileNameCasing)}.ts`);
279
281
  }
280
282
  hasEndpointParams(ctx, endpoint) {
281
283
  return endpoint.parameters.length > 0 || endpoint.requestBody !== undefined;
282
284
  }
283
285
  getSchemaType(ctx, schema, fallback) {
284
- const output = schema && ctx.input.models[schema.id];
286
+ const output = schema && ctx.input.typescript.models[schema.id];
285
287
  if (!output)
286
288
  return fallback !== null && fallback !== void 0 ? fallback : this.getAnyType(ctx);
287
289
  return (b) => b.appendModelUsage(output);
@@ -18,8 +18,10 @@ class TypeScriptAngularServicesGenerator extends core_1.OpenApiServicesGeneratio
18
18
  }
19
19
  initResult() {
20
20
  return {
21
- services: {},
22
- indexFiles: { services: undefined, responseModels: undefined },
21
+ typescript: {
22
+ services: {},
23
+ indexFiles: { services: undefined, responseModels: undefined },
24
+ },
23
25
  };
24
26
  }
25
27
  buildContext(context, config) {
@@ -31,20 +33,23 @@ class TypeScriptAngularServicesGenerator extends core_1.OpenApiServicesGeneratio
31
33
  onGenerate(ctx) {
32
34
  const output = super.onGenerate(ctx);
33
35
  this.generateUtilsFiles(ctx);
34
- output.indexFiles = this.generateIndexFiles(ctx);
36
+ output.typescript.indexFiles = this.generateIndexFiles(ctx);
35
37
  return output;
36
38
  }
37
39
  generateService(ctx, service) {
38
40
  const clientGenerator = this._clientGeneratorFactory.create();
39
- return clientGenerator.generate(Object.assign(Object.assign({}, ctx), { service }));
41
+ return clientGenerator.generate({
42
+ ...ctx,
43
+ service,
44
+ });
40
45
  }
41
46
  addServiceResult(ctx, service, result) {
42
- ctx.output.services[service.id] = result;
47
+ ctx.output.typescript.services[service.id] = result;
43
48
  }
44
49
  // #region Utils
45
50
  generateUtilsFiles(ctx) {
46
51
  const sourceDir = (0, path_1.resolve)((0, path_1.dirname)(require.resolve('@goast/typescript')), '../assets/client/angular');
47
- const targetDir = (0, path_1.resolve)(ctx.config.outputDir, ctx.config.utilsDirPath);
52
+ const targetDir = (0, path_1.resolve)(ctx.config.outputDir, ctx.config.utilsDir);
48
53
  (0, fs_extra_1.ensureDirSync)(targetDir);
49
54
  this.copyFile('Request Builder', sourceDir, targetDir, 'request-builder.ts');
50
55
  this.copyFile('Angular Service Utils', sourceDir, targetDir, 'angular-service.utils.ts');
@@ -149,7 +154,7 @@ class TypeScriptAngularServicesGenerator extends core_1.OpenApiServicesGeneratio
149
154
  'return ',
150
155
  ast_1.ts.tuple([
151
156
  (b) => b.append('config ? { provide: ', ctx.refs.apiConfiguration(), ', useValue: config } : ', ctx.refs.apiConfiguration()),
152
- ...Object.values(ctx.output.services).map((x) => ast_1.ts.reference(x.component, x.filePath)),
157
+ ...Object.values(ctx.output.typescript.services).map((x) => ast_1.ts.reference(x.component, x.filePath)),
153
158
  ]),
154
159
  ';',
155
160
  ]),
@@ -188,20 +193,20 @@ class TypeScriptAngularServicesGenerator extends core_1.OpenApiServicesGeneratio
188
193
  ctx.config.provideKind === 'provide-fn'
189
194
  ? ast_1.ts.export(ctx.refs.provide.refName, ctx.refs.provide.moduleNameOrfilePath)
190
195
  : null,
191
- ...Object.values(ctx.output.services).map((x) => ast_1.ts.export(x.component, x.filePath)),
196
+ ...Object.values(ctx.output.typescript.services).map((x) => ast_1.ts.export(x.component, x.filePath)),
192
197
  ]);
193
198
  }
194
199
  getResponseModelsIndexFileContent(ctx) {
195
- return (0, core_1.appendValueGroup)(Object.values(ctx.output.services)
200
+ return (0, core_1.appendValueGroup)(Object.values(ctx.output.typescript.services)
196
201
  .flatMap((x) => Object.values(x.responseModels))
197
202
  .map((x) => ast_1.ts.export(x.component, x.filePath)));
198
203
  }
199
204
  getServicesIndexFilePath(ctx) {
200
- return ctx.config.servicesIndexFilePath ? (0, path_1.resolve)(ctx.config.outputDir, ctx.config.servicesIndexFilePath) : null;
205
+ return ctx.config.servicesIndexFile ? (0, path_1.resolve)(ctx.config.outputDir, ctx.config.servicesIndexFile) : null;
201
206
  }
202
207
  getResponseModelsIndexFilePath(ctx) {
203
- return ctx.config.responseModelsIndexFilePath
204
- ? (0, path_1.resolve)(ctx.config.outputDir, ctx.config.responseModelsIndexFilePath)
208
+ return ctx.config.responseModelsIndexFile
209
+ ? (0, path_1.resolve)(ctx.config.outputDir, ctx.config.responseModelsIndexFile)
205
210
  : null;
206
211
  }
207
212
  // #endregion