@azure-tools/typespec-ts 0.55.0-dev.8 → 0.55.0-dev.9

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 (173) hide show
  1. package/README.md +1 -77
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +24 -80
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/lib.d.ts +2 -12
  6. package/dist/src/lib.d.ts.map +1 -1
  7. package/dist/src/lib.js +0 -65
  8. package/dist/src/lib.js.map +1 -1
  9. package/dist/src/rlc-common/helpers/name-constructors.d.ts.map +1 -1
  10. package/dist/src/rlc-common/helpers/name-constructors.js +1 -7
  11. package/dist/src/rlc-common/helpers/name-constructors.js.map +1 -1
  12. package/dist/src/rlc-common/index.d.ts +0 -16
  13. package/dist/src/rlc-common/index.d.ts.map +1 -1
  14. package/dist/src/rlc-common/index.js +0 -16
  15. package/dist/src/rlc-common/index.js.map +1 -1
  16. package/dist/src/rlc-common/interfaces.d.ts +0 -10
  17. package/dist/src/rlc-common/interfaces.d.ts.map +1 -1
  18. package/dist/src/rlc-common/interfaces.js.map +1 -1
  19. package/dist/src/rlc-common/metadata/build-package-file.d.ts.map +1 -1
  20. package/dist/src/rlc-common/metadata/build-package-file.js +0 -12
  21. package/dist/src/rlc-common/metadata/build-package-file.js.map +1 -1
  22. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +1 -1
  23. package/dist/src/rlc-common/metadata/build-readme-file.js +4 -89
  24. package/dist/src/rlc-common/metadata/build-readme-file.js.map +1 -1
  25. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts +0 -1
  26. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts.map +1 -1
  27. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js +2 -2
  28. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js.map +1 -1
  29. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts +0 -1
  30. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts.map +1 -1
  31. package/dist/src/rlc-common/metadata/package-json/package-common.js.map +1 -1
  32. package/dist/src/rlc-common/test/build-snippets.d.ts.map +1 -1
  33. package/dist/src/rlc-common/test/build-snippets.js +0 -1
  34. package/dist/src/rlc-common/test/build-snippets.js.map +1 -1
  35. package/dist/src/rlc-common/test/template.d.ts +1 -1
  36. package/dist/src/rlc-common/test/template.d.ts.map +1 -1
  37. package/dist/src/rlc-common/test/template.js +0 -4
  38. package/dist/src/rlc-common/test/template.js.map +1 -1
  39. package/dist/src/transform/transform-schemas.js +1 -1
  40. package/dist/src/transform/transform-schemas.js.map +1 -1
  41. package/dist/src/transform/transform.d.ts.map +1 -1
  42. package/dist/src/transform/transform.js +5 -11
  43. package/dist/src/transform/transform.js.map +1 -1
  44. package/dist/src/transform/transfrom-rlc-options.d.ts +2 -2
  45. package/dist/src/transform/transfrom-rlc-options.d.ts.map +1 -1
  46. package/dist/src/transform/transfrom-rlc-options.js +19 -39
  47. package/dist/src/transform/transfrom-rlc-options.js.map +1 -1
  48. package/dist/src/utils/client-utils.d.ts +1 -1
  49. package/dist/src/utils/client-utils.d.ts.map +1 -1
  50. package/dist/src/utils/client-utils.js +4 -5
  51. package/dist/src/utils/client-utils.js.map +1 -1
  52. package/dist/src/utils/emit-util.d.ts +0 -1
  53. package/dist/src/utils/emit-util.d.ts.map +1 -1
  54. package/dist/src/utils/emit-util.js +0 -13
  55. package/dist/src/utils/emit-util.js.map +1 -1
  56. package/dist/src/utils/model-utils.d.ts +1 -1
  57. package/dist/src/utils/model-utils.d.ts.map +1 -1
  58. package/dist/src/utils/model-utils.js +4 -11
  59. package/dist/src/utils/model-utils.js.map +1 -1
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +9 -15
  62. package/src/index.ts +27 -105
  63. package/src/lib.ts +1 -77
  64. package/src/rlc-common/helpers/name-constructors.ts +1 -8
  65. package/src/rlc-common/index.ts +0 -16
  66. package/src/rlc-common/interfaces.ts +0 -11
  67. package/src/rlc-common/metadata/build-package-file.ts +0 -13
  68. package/src/rlc-common/metadata/build-readme-file.ts +4 -99
  69. package/src/rlc-common/metadata/package-json/build-azure-monorepo-package.ts +2 -3
  70. package/src/rlc-common/metadata/package-json/package-common.ts +0 -1
  71. package/src/rlc-common/test/build-snippets.ts +0 -1
  72. package/src/rlc-common/test/template.ts +0 -4
  73. package/src/transform/transform-schemas.ts +1 -1
  74. package/src/transform/transform.ts +4 -14
  75. package/src/transform/transfrom-rlc-options.ts +19 -63
  76. package/src/utils/client-utils.ts +4 -5
  77. package/src/utils/emit-util.ts +1 -14
  78. package/src/utils/model-utils.ts +4 -17
  79. package/dist/src/rlc-common/build-client-definitions.d.ts +0 -6
  80. package/dist/src/rlc-common/build-client-definitions.d.ts.map +0 -1
  81. package/dist/src/rlc-common/build-client-definitions.js +0 -157
  82. package/dist/src/rlc-common/build-client-definitions.js.map +0 -1
  83. package/dist/src/rlc-common/build-client.d.ts +0 -9
  84. package/dist/src/rlc-common/build-client.d.ts.map +0 -1
  85. package/dist/src/rlc-common/build-client.js +0 -375
  86. package/dist/src/rlc-common/build-client.js.map +0 -1
  87. package/dist/src/rlc-common/build-index-file.d.ts +0 -6
  88. package/dist/src/rlc-common/build-index-file.d.ts.map +0 -1
  89. package/dist/src/rlc-common/build-index-file.js +0 -180
  90. package/dist/src/rlc-common/build-index-file.js.map +0 -1
  91. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts +0 -6
  92. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts.map +0 -1
  93. package/dist/src/rlc-common/build-is-unexpected-helper.js +0 -219
  94. package/dist/src/rlc-common/build-is-unexpected-helper.js.map +0 -1
  95. package/dist/src/rlc-common/build-logger.d.ts +0 -6
  96. package/dist/src/rlc-common/build-logger.d.ts.map +0 -1
  97. package/dist/src/rlc-common/build-logger.js +0 -23
  98. package/dist/src/rlc-common/build-logger.js.map +0 -1
  99. package/dist/src/rlc-common/build-method-shortcuts.d.ts +0 -5
  100. package/dist/src/rlc-common/build-method-shortcuts.d.ts.map +0 -1
  101. package/dist/src/rlc-common/build-method-shortcuts.js +0 -54
  102. package/dist/src/rlc-common/build-method-shortcuts.js.map +0 -1
  103. package/dist/src/rlc-common/build-object-types.d.ts +0 -29
  104. package/dist/src/rlc-common/build-object-types.d.ts.map +0 -1
  105. package/dist/src/rlc-common/build-object-types.js +0 -410
  106. package/dist/src/rlc-common/build-object-types.js.map +0 -1
  107. package/dist/src/rlc-common/build-paginate-helper.d.ts +0 -6
  108. package/dist/src/rlc-common/build-paginate-helper.d.ts.map +0 -1
  109. package/dist/src/rlc-common/build-paginate-helper.js +0 -27
  110. package/dist/src/rlc-common/build-paginate-helper.js.map +0 -1
  111. package/dist/src/rlc-common/build-parameter-types.d.ts +0 -14
  112. package/dist/src/rlc-common/build-parameter-types.d.ts.map +0 -1
  113. package/dist/src/rlc-common/build-parameter-types.js +0 -338
  114. package/dist/src/rlc-common/build-parameter-types.js.map +0 -1
  115. package/dist/src/rlc-common/build-polling-helper.d.ts +0 -6
  116. package/dist/src/rlc-common/build-polling-helper.d.ts.map +0 -1
  117. package/dist/src/rlc-common/build-polling-helper.js +0 -59
  118. package/dist/src/rlc-common/build-polling-helper.js.map +0 -1
  119. package/dist/src/rlc-common/build-response-types.d.ts +0 -6
  120. package/dist/src/rlc-common/build-response-types.d.ts.map +0 -1
  121. package/dist/src/rlc-common/build-response-types.js +0 -140
  122. package/dist/src/rlc-common/build-response-types.js.map +0 -1
  123. package/dist/src/rlc-common/build-samples.d.ts +0 -3
  124. package/dist/src/rlc-common/build-samples.d.ts.map +0 -1
  125. package/dist/src/rlc-common/build-samples.js +0 -30
  126. package/dist/src/rlc-common/build-samples.js.map +0 -1
  127. package/dist/src/rlc-common/build-schema-type.d.ts +0 -20
  128. package/dist/src/rlc-common/build-schema-type.d.ts.map +0 -1
  129. package/dist/src/rlc-common/build-schema-type.js +0 -64
  130. package/dist/src/rlc-common/build-schema-type.js.map +0 -1
  131. package/dist/src/rlc-common/build-serialize-helper.d.ts +0 -6
  132. package/dist/src/rlc-common/build-serialize-helper.d.ts.map +0 -1
  133. package/dist/src/rlc-common/build-serialize-helper.js +0 -36
  134. package/dist/src/rlc-common/build-serialize-helper.js.map +0 -1
  135. package/dist/src/rlc-common/build-top-level-index-file.d.ts +0 -6
  136. package/dist/src/rlc-common/build-top-level-index-file.d.ts.map +0 -1
  137. package/dist/src/rlc-common/build-top-level-index-file.js +0 -44
  138. package/dist/src/rlc-common/build-top-level-index-file.js.map +0 -1
  139. package/dist/src/rlc-common/helpers/path-utils.d.ts +0 -2
  140. package/dist/src/rlc-common/helpers/path-utils.d.ts.map +0 -1
  141. package/dist/src/rlc-common/helpers/path-utils.js +0 -9
  142. package/dist/src/rlc-common/helpers/path-utils.js.map +0 -1
  143. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts +0 -4
  144. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts.map +0 -1
  145. package/dist/src/rlc-common/helpers/shortcut-methods.js +0 -49
  146. package/dist/src/rlc-common/helpers/shortcut-methods.js.map +0 -1
  147. package/dist/src/rlc-common/helpers/value-generation-util.d.ts +0 -12
  148. package/dist/src/rlc-common/helpers/value-generation-util.d.ts.map +0 -1
  149. package/dist/src/rlc-common/helpers/value-generation-util.js +0 -161
  150. package/dist/src/rlc-common/helpers/value-generation-util.js.map +0 -1
  151. package/dist/src/rlc-common/transform-sample-groups.d.ts +0 -9
  152. package/dist/src/rlc-common/transform-sample-groups.d.ts.map +0 -1
  153. package/dist/src/rlc-common/transform-sample-groups.js +0 -298
  154. package/dist/src/rlc-common/transform-sample-groups.js.map +0 -1
  155. package/src/rlc-common/build-client-definitions.ts +0 -226
  156. package/src/rlc-common/build-client.ts +0 -463
  157. package/src/rlc-common/build-index-file.ts +0 -220
  158. package/src/rlc-common/build-is-unexpected-helper.ts +0 -241
  159. package/src/rlc-common/build-logger.ts +0 -29
  160. package/src/rlc-common/build-method-shortcuts.ts +0 -71
  161. package/src/rlc-common/build-object-types.ts +0 -591
  162. package/src/rlc-common/build-paginate-helper.ts +0 -31
  163. package/src/rlc-common/build-parameter-types.ts +0 -460
  164. package/src/rlc-common/build-polling-helper.ts +0 -80
  165. package/src/rlc-common/build-response-types.ts +0 -170
  166. package/src/rlc-common/build-samples.ts +0 -32
  167. package/src/rlc-common/build-schema-type.ts +0 -79
  168. package/src/rlc-common/build-serialize-helper.ts +0 -49
  169. package/src/rlc-common/build-top-level-index-file.ts +0 -51
  170. package/src/rlc-common/helpers/path-utils.ts +0 -8
  171. package/src/rlc-common/helpers/shortcut-methods.ts +0 -58
  172. package/src/rlc-common/helpers/value-generation-util.ts +0 -234
  173. package/src/rlc-common/transform-sample-groups.ts +0 -383
@@ -1,410 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { StructureKind, } from "ts-morph";
4
- import { getMultipartPartTypeName } from "./helpers/name-constructors.js";
5
- import { NameType, normalizeName } from "./helpers/name-utils.js";
6
- import { isArraySchema, isDictionarySchema, isObjectSchema } from "./helpers/schema-helpers.js";
7
- import { SchemaContext, } from "./interfaces.js";
8
- /**
9
- * Generates interfaces for ObjectSchemas
10
- */
11
- export function buildObjectInterfaces(model, importedModels, schemaUsage) {
12
- const objectSchemas = (model.schemas ?? []).filter((o) => isObjectSchema(o) && o.usage?.some((u) => schemaUsage.includes(u)));
13
- const objectInterfaces = [];
14
- for (const objectSchema of objectSchemas) {
15
- if (objectSchema.alias || objectSchema.outputAlias || objectSchema.fromCore) {
16
- continue;
17
- }
18
- // FIXME: disabling new multipart generation for modular while we figure out the story
19
- if (objectSchema.isMultipartBody && !model.options?.isModularLibrary) {
20
- objectInterfaces.push(...buildMultipartPartDefinitions(objectSchema, importedModels, schemaUsage));
21
- continue;
22
- }
23
- const baseName = getObjectBaseName(objectSchema, schemaUsage);
24
- const interfaceDeclaration = getObjectInterfaceDeclaration(baseName, objectSchema, schemaUsage, importedModels);
25
- objectInterfaces.push(interfaceDeclaration);
26
- }
27
- return objectInterfaces;
28
- }
29
- const MULTIPART_FILE_METADATA_PROPERTIES = [
30
- {
31
- name: "filename",
32
- hasQuestionToken: true,
33
- type: "string",
34
- },
35
- {
36
- name: "contentType",
37
- hasQuestionToken: true,
38
- type: "string",
39
- },
40
- ];
41
- function buildMultipartPartDefinitions(schema, importedModels, schemaUsage) {
42
- if (!schema.isMultipartBody) {
43
- return [];
44
- }
45
- // Transform property signatures into individual models
46
- const propertySignatures = getPropertySignatures(schema.properties ?? {}, schemaUsage, importedModels, { flattenBinaryArrays: true });
47
- const structures = [];
48
- for (const signature of propertySignatures) {
49
- const name = signature.name;
50
- const propertySchema = schema.properties?.[name];
51
- const typeName = getMultipartPartTypeName(schema.name, name);
52
- const isFileUpload = signature.type?.toString().includes("File") ?? false;
53
- const additionalProperties = [];
54
- if (propertySchema.multipartOptions) {
55
- const multipartOptions = propertySchema.multipartOptions;
56
- if (multipartOptions.filenameSchema) {
57
- additionalProperties.push(getPropertySignature({ name: "filename", ...multipartOptions.filenameSchema }, [SchemaContext.Input], importedModels));
58
- }
59
- if (multipartOptions.contentTypeSchema) {
60
- additionalProperties.push(getPropertySignature({ name: "contentType", ...multipartOptions.contentTypeSchema }, [SchemaContext.Input], importedModels));
61
- }
62
- }
63
- else if (isFileUpload) {
64
- // default additional file metadata properties (legacy)
65
- additionalProperties.push(...MULTIPART_FILE_METADATA_PROPERTIES);
66
- }
67
- structures.push({
68
- kind: StructureKind.Interface,
69
- isExported: true,
70
- name: typeName,
71
- properties: [
72
- {
73
- name: "name",
74
- type: name,
75
- },
76
- {
77
- name: "body",
78
- type: signature.type,
79
- },
80
- ...additionalProperties,
81
- ],
82
- });
83
- }
84
- return structures;
85
- }
86
- export function buildObjectAliases(model, importedModels, schemaUsage) {
87
- const objectSchemas = (model.schemas ?? []).filter((o) => isObjectSchema(o) && o.usage?.some((u) => schemaUsage.includes(u)));
88
- const objectAliases = [];
89
- for (const objectSchema of objectSchemas) {
90
- // FIXME: disabling new multipart generation for modular while we figure out the story
91
- if (objectSchema.isMultipartBody && !model.options?.isModularLibrary) {
92
- const propertySignatures = getPropertySignatures(objectSchema.properties ?? {}, schemaUsage, importedModels, { flattenBinaryArrays: true });
93
- const objectTypeNames = propertySignatures.map((sig) => getMultipartPartTypeName(objectSchema.name, sig.name));
94
- objectAliases.push({
95
- kind: StructureKind.TypeAlias,
96
- ...(objectSchema.description && {
97
- docs: [{ description: objectSchema.description }],
98
- }),
99
- name: objectSchema.typeName,
100
- type: `FormData | Array<${objectTypeNames.join("|") || "unknown"}>`,
101
- isExported: true,
102
- });
103
- }
104
- if (objectSchema.alias || objectSchema.outputAlias) {
105
- const description = objectSchema.description;
106
- const modelName = schemaUsage.includes(SchemaContext.Input)
107
- ? `${objectSchema.typeName}`
108
- : `${objectSchema.outputTypeName}`;
109
- objectAliases.push({
110
- kind: StructureKind.TypeAlias,
111
- ...(description && { docs: [{ description }] }),
112
- name: modelName,
113
- type: schemaUsage.includes(SchemaContext.Input)
114
- ? `${objectSchema.alias}`
115
- : `${objectSchema.outputAlias}`,
116
- isExported: true,
117
- docs: [description ?? "Alias for " + modelName],
118
- });
119
- }
120
- }
121
- return objectAliases;
122
- }
123
- export function buildPolymorphicAliases(model, schemaUsage) {
124
- // We'll add aliases for polymorphic objects
125
- const objectAliases = [];
126
- const objectSchemas = (model.schemas ?? []).filter((o) => isObjectSchema(o) && o.usage?.some((u) => schemaUsage.includes(u)));
127
- for (const objectSchema of objectSchemas) {
128
- const baseName = getObjectBaseName(objectSchema, schemaUsage);
129
- const typeAlias = getPolymorphicTypeAlias(baseName, objectSchema, schemaUsage);
130
- if (typeAlias) {
131
- objectAliases.push(typeAlias);
132
- }
133
- }
134
- return objectAliases;
135
- }
136
- /**
137
- * Gets a base name for an object schema this is tipically used with suffixes when building interface or type names
138
- */
139
- function getObjectBaseName(objectSchema, schemaUsage) {
140
- const nameSuffix = schemaUsage.includes(SchemaContext.Output) ? "Output" : "";
141
- const name = normalizeName(objectSchema.name, NameType.Interface, true /** guard name */);
142
- return `${name}${nameSuffix}`;
143
- }
144
- /**
145
- * If the current object is a Polymorphic parent, we need to create
146
- * a type alias with the union of its children to enable polymorphism
147
- */
148
- function getPolymorphicTypeAlias(baseName, objectSchema, schemaUsage) {
149
- if (!isPolymorphicParent(objectSchema)) {
150
- return undefined;
151
- }
152
- const unionTypes = [];
153
- // If the object itself has a discriminatorValue add its base to the union
154
- if (objectSchema.discriminatorValue) {
155
- unionTypes.push(`${baseName}Parent`);
156
- }
157
- for (const child of objectSchema.children?.all ?? []) {
158
- const nameSuffix = schemaUsage.includes(SchemaContext.Output) ? "Output" : "";
159
- const name = normalizeName(child.name, NameType.Interface, true /** shouldGuard */);
160
- unionTypes.push(`${name}${nameSuffix}`);
161
- }
162
- const description = objectSchema.description;
163
- return {
164
- kind: StructureKind.TypeAlias,
165
- ...(description && { docs: [{ description }] }),
166
- name: `${baseName}`,
167
- type: unionTypes.join(" | "),
168
- isExported: true,
169
- };
170
- }
171
- /**
172
- * Builds the interface for the current object schema. If it is a polymorphic
173
- * root node it will suffix it with Base.
174
- */
175
- export function getObjectInterfaceDeclaration(baseName, objectSchema, schemaUsage, importedModels) {
176
- let interfaceName = `${baseName}`;
177
- if (isPolymorphicParent(objectSchema)) {
178
- interfaceName = `${baseName}Parent`;
179
- }
180
- const properties = objectSchema.properties ?? {};
181
- let propertySignatures = getPropertySignatures(properties, schemaUsage, importedModels);
182
- // Add the polymorphic property if exists
183
- propertySignatures = addDiscriminatorProperty(objectSchema, propertySignatures, schemaUsage);
184
- // Calculate the parents of the current object
185
- const extendFrom = getImmediateParentsNames(objectSchema, schemaUsage);
186
- const description = objectSchema.description;
187
- return {
188
- kind: StructureKind.Interface,
189
- ...(description && { docs: [{ description }] }),
190
- name: interfaceName,
191
- isExported: true,
192
- properties: propertySignatures,
193
- ...(extendFrom && { extends: extendFrom }),
194
- };
195
- }
196
- function isPolymorphicParent(objectSchema) {
197
- return objectSchema.isPolyParent ? true : false;
198
- }
199
- function addDiscriminatorProperty(objectSchema, properties, schemaUsage) {
200
- const polymorphicProperty = getDiscriminatorProperty(objectSchema, schemaUsage);
201
- if (polymorphicProperty) {
202
- // It is possible that the polymorphic property needs to override an existing property.
203
- // This is usually the case on the top level parent where the property already has a type of string
204
- // we need to replace it with the polymorphic values of its children
205
- const filteredProperties = properties.filter((p) => p.name !== polymorphicProperty.name);
206
- return [...filteredProperties, polymorphicProperty];
207
- }
208
- return properties;
209
- }
210
- /**
211
- * Finds the name of the property used as discriminator and the discriminator value.
212
- */
213
- function getDiscriminatorProperty(objectSchema, schemaUsage) {
214
- const discriminatorValue = objectSchema.discriminatorValue;
215
- if (!discriminatorValue && !objectSchema.discriminator) {
216
- return undefined;
217
- }
218
- const discriminators = getDiscriminatorValue(objectSchema);
219
- const discriminatorPropertyName = getDiscriminatorPropertyName(objectSchema);
220
- if (discriminators) {
221
- if (discriminatorPropertyName === undefined) {
222
- throw new Error(`getDiscriminatorProperty: Expected object ${objectSchema.name} to have a discriminator in its hierarchy but found none`);
223
- }
224
- const inputTypeName = objectSchema.discriminator?.typeName ?? objectSchema.discriminator?.type;
225
- return {
226
- kind: StructureKind.PropertySignature,
227
- name: `"${discriminatorPropertyName}"`,
228
- type: schemaUsage.includes(SchemaContext.Output)
229
- ? (objectSchema.discriminator?.outputTypeName ?? inputTypeName)
230
- : inputTypeName,
231
- };
232
- }
233
- return undefined;
234
- }
235
- /**
236
- * Finds the closest discriminator property
237
- */
238
- function getDiscriminatorPropertyName(objectSchema) {
239
- if (objectSchema.discriminator !== undefined) {
240
- return objectSchema.discriminator.name;
241
- }
242
- const allParents = objectSchema.parents?.all ?? [];
243
- for (const parent of allParents) {
244
- if (isObjectSchema(parent) && parent.discriminator) {
245
- return parent.discriminator.name;
246
- }
247
- }
248
- return undefined;
249
- }
250
- /**
251
- * Calculates the discriminator values that a given object needs
252
- */
253
- function getDiscriminatorValue(objectSchema) {
254
- const discriminatorValue = objectSchema.discriminatorValue
255
- ? objectSchema.discriminatorValue
256
- : objectSchema.discriminator
257
- ? objectSchema.name
258
- : undefined;
259
- const children = objectSchema.children?.immediate ?? [];
260
- // If the current object has a discriminatorValue but doesn't have any children
261
- // it is a leaf node and the only discriminator value needed is itself
262
- if (discriminatorValue && !children.length) {
263
- return `"${discriminatorValue}"`;
264
- }
265
- // when the current object has both discriminator and discriminatorValue
266
- if (children) {
267
- const discriminatorProperty = objectSchema.discriminator;
268
- // Even when there are children, if no discriminatorProperty is present this is a leaf in the polymorphism tree
269
- if (!discriminatorProperty) {
270
- return `"${discriminatorValue}"`;
271
- }
272
- // the current object has discriminated children we need to find all the discriminatorValues for each of its children
273
- const allChildren = objectSchema.children?.all ?? [];
274
- // Top level parents may not have a discriminator of their own.
275
- const selfDiscriminator = discriminatorValue ? [`"${discriminatorValue}"`] : [];
276
- const childValues = getChildDiscriminatorValues(allChildren).map((v) => `"${v}"`);
277
- return [...selfDiscriminator, ...childValues].join(" | ");
278
- }
279
- return undefined;
280
- }
281
- /**
282
- * Looks into the children and grabs all possible discriminatorValues
283
- */
284
- function getChildDiscriminatorValues(children) {
285
- const discriminatorValues = new Set();
286
- for (const child of children) {
287
- if (isObjectSchema(child) && child.discriminatorValue) {
288
- discriminatorValues.add(child.discriminatorValue);
289
- }
290
- }
291
- return [...discriminatorValues];
292
- }
293
- /**
294
- * Gets a list of types a given object may extend from
295
- */
296
- export function getImmediateParentsNames(objectSchema, schemaUsage) {
297
- if (!objectSchema.parents?.immediate) {
298
- return [];
299
- }
300
- const extendFrom = [];
301
- // If an immediate parent is an empty DictionarySchema, that means that the object has been marked
302
- // with additional properties. We need to add Record<string, unknown> to the extend list and
303
- if (objectSchema.parents.immediate.find((im) => isDictionarySchema(im, { filterEmpty: true }))) {
304
- extendFrom.push("Record<string, unknown>");
305
- }
306
- // Get the rest of the parents excluding any DictionarySchemas
307
- const parents = objectSchema.parents.immediate
308
- .filter((p) => !isDictionarySchema(p, { filterEmpty: true }))
309
- .map((parent) => {
310
- const nameSuffix = schemaUsage.includes(SchemaContext.Output) ? "Output" : "";
311
- const name = isDictionarySchema(parent)
312
- ? Object.entries(objectSchema.properties)?.some((prop) => {
313
- const typeName = prop[1].typeName ?? prop[1].type;
314
- return (`Record<string, ${typeName}>` !== parent.typeName &&
315
- !parent.additionalProperties?.typeName?.includes(typeName));
316
- })
317
- ? schemaUsage.includes(SchemaContext.Output)
318
- ? "Record<string, any>"
319
- : "Record<string, unknown>"
320
- : `${(schemaUsage.includes(SchemaContext.Output)
321
- ? parent.outputTypeName
322
- : parent.typeName) ?? parent.name}`
323
- : `${normalizeName(parent.name, NameType.Interface, true /** shouldGuard */)}${nameSuffix}`;
324
- return isObjectSchema(parent) && isPolymorphicParent(parent) ? `${name}Parent` : name;
325
- });
326
- return [...parents, ...extendFrom];
327
- }
328
- function getPropertySignatures(properties, schemaUsage, importedModels, options = {}) {
329
- let validProperties = Object.keys(properties);
330
- const readOnlyFilter = (name) => {
331
- const prop = properties[name];
332
- return !(schemaUsage.includes(SchemaContext.Input) && prop?.readOnly);
333
- };
334
- const neverFilter = (name) => {
335
- const prop = properties[name];
336
- return prop?.type !== "never";
337
- };
338
- validProperties = validProperties.filter(readOnlyFilter).filter(neverFilter);
339
- return validProperties.map((p) => {
340
- const prop = properties[p];
341
- if (!prop) {
342
- throw new Error(`Property '${p}' not found`);
343
- }
344
- return getPropertySignature({ ...prop, name: p }, schemaUsage, importedModels, options);
345
- });
346
- }
347
- function isBinaryArray(schema) {
348
- return Boolean(isArraySchema(schema) &&
349
- (schema.items?.typeName?.includes("NodeReadableStream") ||
350
- schema.items?.outputTypeName?.includes("NodeReadableStream")));
351
- }
352
- /**
353
- * Builds a Typescript property or parameter signature
354
- * @param schema - Property or parameter to get the Typescript signature for
355
- * @param importedModels - Set to track the models that need to be imported
356
- * @returns a PropertySignatureStructure for the property.
357
- */
358
- export function getPropertySignature(property, schemaUsage, importedModels, options = {}) {
359
- let schema;
360
- if (options.flattenBinaryArrays && isBinaryArray(property)) {
361
- schema = {
362
- ...(property.items ?? property),
363
- name: property.name,
364
- };
365
- }
366
- else {
367
- schema = property;
368
- }
369
- const propertyName = schema.name;
370
- const description = schema.description;
371
- let type;
372
- const hasCoreInArray = schema.type === "array" && schema.items && schema.items.fromCore;
373
- const hasCoreInRecord = schema.type === "dictionary" &&
374
- schema.additionalProperties &&
375
- schema.additionalProperties.fromCore;
376
- if (hasCoreInArray && schema.typeName) {
377
- type = schema.typeName;
378
- importedModels.add(schema.items.typeName ?? schema.items.name);
379
- }
380
- else if (hasCoreInRecord && schema.typeName) {
381
- type = schema.typeName;
382
- importedModels.add(schema.additionalProperties.typeName ?? schema.additionalProperties.name);
383
- }
384
- else {
385
- type =
386
- generateForOutput(schemaUsage, schema.usage) && schema.outputTypeName
387
- ? schema.outputTypeName
388
- : schema.typeName
389
- ? schema.typeName
390
- : schema.type;
391
- if (schema.typeName && schema.fromCore) {
392
- importedModels.add(schema.typeName);
393
- type = schema.typeName;
394
- }
395
- }
396
- return {
397
- name: propertyName,
398
- ...(description && { docs: [{ description }] }),
399
- hasQuestionToken: !schema.required,
400
- isReadonly: generateForOutput(schemaUsage, schema.usage) && schema.readOnly,
401
- type,
402
- kind: StructureKind.PropertySignature,
403
- };
404
- }
405
- function generateForOutput(schemaUsage, propertyUsage) {
406
- return ((schemaUsage.includes(SchemaContext.Output) && propertyUsage?.includes(SchemaContext.Output)) ||
407
- (schemaUsage.includes(SchemaContext.Exception) &&
408
- propertyUsage?.includes(SchemaContext.Exception)));
409
- }
410
- //# sourceMappingURL=build-object-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-object-types.js","sourceRoot":"","sources":["../../../src/rlc-common/build-object-types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAIL,aAAa,GAEd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EAOL,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAe,EACf,cAA2B,EAC3B,WAA4B;IAE5B,MAAM,aAAa,GAAmB,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAK,CAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC5F,CAAC;IACF,MAAM,gBAAgB,GAAoC,EAAE,CAAC;IAE7D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC5E,SAAS;QACX,CAAC;QAED,sFAAsF;QACtF,IAAI,YAAY,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;YACrE,gBAAgB,CAAC,IAAI,CACnB,GAAG,6BAA6B,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,CAC5E,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,oBAAoB,GAAG,6BAA6B,CACxD,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,CACf,CAAC;QAEF,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,kCAAkC,GAA+C;IACrF;QACE,IAAI,EAAE,UAAU;QAChB,gBAAgB,EAAE,IAAI;QACtB,IAAI,EAAE,QAAQ;KACf;IACD;QACE,IAAI,EAAE,aAAa;QACnB,gBAAgB,EAAE,IAAI;QACtB,IAAI,EAAE,QAAQ;KACf;CACF,CAAC;AAEF,SAAS,6BAA6B,CACpC,MAAoB,EACpB,cAA2B,EAC3B,WAA4B;IAE5B,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uDAAuD;IACvD,MAAM,kBAAkB,GAAG,qBAAqB,CAC9C,MAAM,CAAC,UAAU,IAAI,EAAE,EACvB,WAAW,EACX,cAAc,EACd,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAC9B,CAAC;IAEF,MAAM,UAAU,GAAoC,EAAE,CAAC;IAEvD,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE7D,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;QAE1E,MAAM,oBAAoB,GAAU,EAAE,CAAC;QAEvC,IAAK,cAAsB,CAAC,gBAAgB,EAAE,CAAC;YAC7C,MAAM,gBAAgB,GAAS,cAAsB,CAAC,gBAAgB,CAAC;YACvE,IAAI,gBAAgB,CAAC,cAAc,EAAE,CAAC;gBACpC,oBAAoB,CAAC,IAAI,CACvB,oBAAoB,CAClB,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,cAAc,EAAE,EACxD,CAAC,aAAa,CAAC,KAAK,CAAC,EACrB,cAAc,CACf,CACF,CAAC;YACJ,CAAC;YACD,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;gBACvC,oBAAoB,CAAC,IAAI,CACvB,oBAAoB,CAClB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,EAC9D,CAAC,aAAa,CAAC,KAAK,CAAC,EACrB,cAAc,CACf,CACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,uDAAuD;YACvD,oBAAoB,CAAC,IAAI,CAAC,GAAG,kCAAkC,CAAC,CAAC;QACnE,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,aAAa,CAAC,SAAS;YAC7B,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI;iBACX;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB;gBACD,GAAG,oBAAoB;aACxB;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAe,EACf,cAA2B,EAC3B,WAA4B;IAE5B,MAAM,aAAa,GAAmB,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAK,CAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC5F,CAAC;IACF,MAAM,aAAa,GAAoC,EAAE,CAAC;IAE1D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,sFAAsF;QACtF,IAAI,YAAY,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;YACrE,MAAM,kBAAkB,GAAG,qBAAqB,CAC9C,YAAY,CAAC,UAAU,IAAI,EAAE,EAC7B,WAAW,EACX,cAAc,EACd,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAC9B,CAAC;YAEF,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACrD,wBAAwB,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CACtD,CAAC;YAEF,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,aAAa,CAAC,SAAS;gBAC7B,GAAG,CAAC,YAAY,CAAC,WAAW,IAAI;oBAC9B,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC;iBAClD,CAAC;gBACF,IAAI,EAAE,YAAY,CAAC,QAAS;gBAC5B,IAAI,EAAE,oBAAoB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,GAAG;gBACnE,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;YAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;gBACzD,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE;gBAC5B,CAAC,CAAC,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;YACrC,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,aAAa,CAAC,SAAS;gBAC7B,GAAG,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC/C,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;oBAC7C,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE;oBACzB,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE;gBACjC,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,CAAC,WAAW,IAAI,YAAY,GAAG,SAAS,CAAC;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAe,EAAE,WAA4B;IACnF,4CAA4C;IAC5C,MAAM,aAAa,GAAoC,EAAE,CAAC;IAC1D,MAAM,aAAa,GAAmB,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAK,CAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC5F,CAAC;IACF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,uBAAuB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC/E,IAAI,SAAS,EAAE,CAAC;YACd,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,YAA0B,EAAE,WAA4B;IACjF,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE1F,OAAO,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAC9B,QAAgB,EAChB,YAA0B,EAC1B,WAA4B;IAE5B,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,0EAA0E;IAC1E,IAAI,YAAY,CAAC,kBAAkB,EAAE,CAAC;QACpC,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEpF,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;IAE7C,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,SAAS;QAC7B,GAAG,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC/C,IAAI,EAAE,GAAG,QAAQ,EAAE;QACnB,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAAgB,EAChB,YAA0B,EAC1B,WAA4B,EAC5B,cAA2B;IAE3B,IAAI,aAAa,GAAG,GAAG,QAAQ,EAAE,CAAC;IAClC,IAAI,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;QACtC,aAAa,GAAG,GAAG,QAAQ,QAAQ,CAAC;IACtC,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;IAEjD,IAAI,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAExF,yCAAyC;IACzC,kBAAkB,GAAG,wBAAwB,CAAC,YAAY,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAE7F,8CAA8C;IAC9C,MAAM,UAAU,GAAG,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;IAC7C,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,SAAS;QAC7B,GAAG,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC/C,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,kBAAkB;QAC9B,GAAG,CAAC,UAAU,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,YAA0B;IACrD,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC;AAED,SAAS,wBAAwB,CAC/B,YAA0B,EAC1B,UAAwC,EACxC,WAA4B;IAE5B,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAEhF,IAAI,mBAAmB,EAAE,CAAC;QACxB,uFAAuF;QACvF,mGAAmG;QACnG,oEAAoE;QACpE,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC/B,YAA0B,EAC1B,WAA4B;IAE5B,MAAM,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;IAC3D,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,yBAAyB,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAC;IAE7E,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,yBAAyB,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,6CAA6C,YAAY,CAAC,IAAI,0DAA0D,CACzH,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,IAAI,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC;QAC/F,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,iBAAiB;YACrC,IAAI,EAAE,IAAI,yBAAyB,GAAG;YACtC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC9C,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,cAAc,IAAI,aAAa,CAAC;gBAC/D,CAAC,CAAC,aAAa;SAClB,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,YAA0B;IAC9D,IAAI,YAAY,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC7C,OAAO,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAEnD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,YAA0B;IACvD,MAAM,kBAAkB,GAAG,YAAY,CAAC,kBAAkB;QACxD,CAAC,CAAC,YAAY,CAAC,kBAAkB;QACjC,CAAC,CAAC,YAAY,CAAC,aAAa;YAC1B,CAAC,CAAC,YAAY,CAAC,IAAI;YACnB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;IAExD,+EAA+E;IAC/E,sEAAsE;IACtE,IAAI,kBAAkB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,IAAI,kBAAkB,GAAG,CAAC;IACnC,CAAC;IAED,wEAAwE;IACxE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,qBAAqB,GAAG,YAAY,CAAC,aAAa,CAAC;QACzD,+GAA+G;QAC/G,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,OAAO,IAAI,kBAAkB,GAAG,CAAC;QACnC,CAAC;QAED,qHAAqH;QACrH,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;QAErD,+DAA+D;QAC/D,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhF,MAAM,WAAW,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElF,OAAO,CAAC,GAAG,iBAAiB,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAAC,QAAwB;IAC3D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACtD,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,mBAAmB,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAA0B,EAC1B,WAA4B;IAE5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,kGAAkG;IAClG,4FAA4F;IAC5F,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/F,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,8DAA8D;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS;SAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,UAAW,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClD,OAAO,CACL,kBAAkB,QAAQ,GAAG,KAAK,MAAM,CAAC,QAAQ;oBACjD,CAAE,MAAc,CAAC,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CACpE,CAAC;YACJ,CAAC,CAAC;gBACF,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;oBAC1C,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,yBAAyB;gBAC7B,CAAC,CAAC,GACE,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;oBACzC,CAAC,CAAC,MAAM,CAAC,cAAc;oBACvB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IACjC,EAAE;YACN,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,UAAU,EAAE,CAAC;QAE9F,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,CAAC,CAAC,CAAC;IAEL,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;AACrC,CAAC;AAMD,SAAS,qBAAqB,CAC5B,UAAuC,EACvC,WAA4B,EAC5B,cAA2B,EAC3B,UAAuC,EAAE;IAEzC,IAAI,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IAChC,CAAC,CAAC;IACF,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7E,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,oBAAoB,CACzB,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,EAAY,EAC9B,WAAW,EACX,cAAc,EACd,OAAO,CACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,OAAO,CACZ,aAAa,CAAC,MAAM,CAAC;QACrB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC;YACrD,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAChE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAA8B,EAC9B,WAA4B,EAC5B,cAA2B,EAC3B,UAAuC,EAAE;IAEzC,IAAI,MAAc,CAAC;IACnB,IAAI,OAAO,CAAC,mBAAmB,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,MAAM,GAAG;YACP,GAAG,CAAE,QAAwB,CAAC,KAAK,IAAI,QAAQ,CAAC;YAChD,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,IAAI,CAAC;IACT,MAAM,cAAc,GAClB,MAAM,CAAC,IAAI,KAAK,OAAO,IAAK,MAAc,CAAC,KAAK,IAAK,MAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;IACrF,MAAM,eAAe,GACnB,MAAM,CAAC,IAAI,KAAK,YAAY;QAC3B,MAAc,CAAC,oBAAoB;QACnC,MAAc,CAAC,oBAAoB,CAAC,QAAQ,CAAC;IAChD,IAAI,cAAc,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QACvB,cAAc,CAAC,GAAG,CAAE,MAAc,CAAC,KAAK,CAAC,QAAQ,IAAK,MAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,eAAe,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QACvB,cAAc,CAAC,GAAG,CACf,MAAc,CAAC,oBAAoB,CAAC,QAAQ,IAAK,MAAc,CAAC,oBAAoB,CAAC,IAAI,CAC3F,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI;YACF,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc;gBACnE,CAAC,CAAC,MAAM,CAAC,cAAc;gBACvB,CAAC,CAAC,MAAM,CAAC,QAAQ;oBACf,CAAC,CAAC,MAAM,CAAC,QAAQ;oBACjB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QACpB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,GAAG,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC/C,gBAAgB,EAAE,CAAC,MAAM,CAAC,QAAQ;QAClC,UAAU,EAAE,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ;QAC3E,IAAI;QACJ,IAAI,EAAE,aAAa,CAAC,iBAAiB;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA4B,EAAE,aAA+B;IACtF,OAAO,CACL,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7F,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;YAC5C,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CACpD,CAAC;AACJ,CAAC"}
@@ -1,6 +0,0 @@
1
- import { RLCModel } from "./interfaces.js";
2
- export declare function buildPaginateHelper(model: RLCModel): {
3
- path: string;
4
- content: string;
5
- } | undefined;
6
- //# sourceMappingURL=build-paginate-helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-paginate-helper.d.ts","sourceRoot":"","sources":["../../../src/rlc-common/build-paginate-helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAM3C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ;;;cAuBlD"}
@@ -1,27 +0,0 @@
1
- import { joinPaths } from "@typespec/compiler";
2
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
- // @ts-ignore: to fix the handlebars issue
4
- import hbs from "handlebars";
5
- import { paginateContent } from "./static/paginate-content.js";
6
- export function buildPaginateHelper(model) {
7
- const pagingInfo = model.helperDetails;
8
- // return directly if no paging info
9
- if (!pagingInfo || pagingInfo.hasPaging !== true || !pagingInfo.pageDetails) {
10
- return;
11
- }
12
- hbs.registerHelper("quoteWrap", function (value) {
13
- if (Array.isArray(value)) {
14
- return value.map((element) => `"${element}"`).join();
15
- }
16
- return `"${value}"`;
17
- });
18
- const { srcPath } = model;
19
- const paginateHelperContents = hbs.compile(paginateContent, {
20
- noEscape: true,
21
- });
22
- return {
23
- path: joinPaths(srcPath, "paginateHelper.ts"),
24
- content: paginateHelperContents(pagingInfo.pageDetails),
25
- };
26
- }
27
- //# sourceMappingURL=build-paginate-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-paginate-helper.js","sourceRoot":"","sources":["../../../src/rlc-common/build-paginate-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,6DAA6D;AAC7D,0CAA0C;AAC1C,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC;IACvC,oCAAoC;IACpC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,KAA2C;QACnF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,KAAK,GAAG,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE;QAC1D,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;QAC7C,OAAO,EAAE,sBAAsB,CAAC,UAAU,CAAC,WAAW,CAAC;KACxD,CAAC;AACJ,CAAC"}
@@ -1,14 +0,0 @@
1
- import { ParameterMetadatas, RLCModel } from "./interfaces.js";
2
- export declare function buildParameterTypes(model: RLCModel): {
3
- path: string;
4
- content: string;
5
- } | undefined;
6
- export declare function buildBodyTypeAlias(parameters: ParameterMetadatas, partialBodyTypeNames: Set<string>): {
7
- name: string;
8
- type: string;
9
- isExported: boolean;
10
- docs?: {
11
- description: string;
12
- }[] | undefined;
13
- } | null | undefined;
14
- //# sourceMappingURL=build-parameter-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-parameter-types.d.ts","sourceRoot":"","sources":["../../../src/rlc-common/build-parameter-types.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,kBAAkB,EAClB,QAAQ,EAGT,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ;;;cAiJlD;AA2PD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,kBAAkB,EAC9B,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC;;;;;;;qBAqClC"}