@azure-tools/rlc-common 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/package-deps_build.json +45 -0
- package/.rush/temp/shrinkwrap-deps.json +72 -0
- package/CHANGELOG.md +3 -0
- package/dist/buildClient.js +198 -0
- package/dist/buildClient.js.map +1 -0
- package/dist/buildClientDefinitions.js +160 -0
- package/dist/buildClientDefinitions.js.map +1 -0
- package/dist/buildIndexFile.js +150 -0
- package/dist/buildIndexFile.js.map +1 -0
- package/dist/buildIsUnexpectedHelper.js +219 -0
- package/dist/buildIsUnexpectedHelper.js.map +1 -0
- package/dist/buildMethodShortcuts.js +50 -0
- package/dist/buildMethodShortcuts.js.map +1 -0
- package/dist/buildObjectTypes.js +250 -0
- package/dist/buildObjectTypes.js.map +1 -0
- package/dist/buildPaginateHelper.js +30 -0
- package/dist/buildPaginateHelper.js.map +1 -0
- package/dist/buildParameterTypes.js +287 -0
- package/dist/buildParameterTypes.js.map +1 -0
- package/dist/buildPollingHelper.js +21 -0
- package/dist/buildPollingHelper.js.map +1 -0
- package/dist/buildResponseTypes.js +122 -0
- package/dist/buildResponseTypes.js.map +1 -0
- package/dist/buildSchemaType.js +44 -0
- package/dist/buildSchemaType.js.map +1 -0
- package/dist/buildTopLevelIndexFile.js +45 -0
- package/dist/buildTopLevelIndexFile.js.map +1 -0
- package/dist/helpers/nameConstructors.js +41 -0
- package/dist/helpers/nameConstructors.js.map +1 -0
- package/dist/helpers/nameUtils.js +196 -0
- package/dist/helpers/nameUtils.js.map +1 -0
- package/dist/helpers/operationHelpers.js +83 -0
- package/dist/helpers/operationHelpers.js.map +1 -0
- package/dist/helpers/schemaHelpers.js +27 -0
- package/dist/helpers/schemaHelpers.js.map +1 -0
- package/dist/helpers/shortcutMethods.js +46 -0
- package/dist/helpers/shortcutMethods.js.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces.js +18 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/metadata/buildApiExtractorConfig.js +56 -0
- package/dist/metadata/buildApiExtractorConfig.js.map +1 -0
- package/dist/metadata/buildESLintConfig.js +33 -0
- package/dist/metadata/buildESLintConfig.js.map +1 -0
- package/dist/metadata/buildLicenseFile.js +41 -0
- package/dist/metadata/buildLicenseFile.js.map +1 -0
- package/dist/metadata/buildPackageFile.js +232 -0
- package/dist/metadata/buildPackageFile.js.map +1 -0
- package/dist/metadata/buildReadmeFile.js +170 -0
- package/dist/metadata/buildReadmeFile.js.map +1 -0
- package/dist/metadata/buildRollupConfig.js +144 -0
- package/dist/metadata/buildRollupConfig.js.map +1 -0
- package/dist/metadata/buildTsConfig.js +72 -0
- package/dist/metadata/buildTsConfig.js.map +1 -0
- package/dist/package.json +1 -0
- package/dist/static/paginateContent.js +214 -0
- package/dist/static/paginateContent.js.map +1 -0
- package/dist/static/pollingContent.js +78 -0
- package/dist/static/pollingContent.js.map +1 -0
- package/dist/test/buildEnvFile.js +31 -0
- package/dist/test/buildEnvFile.js.map +1 -0
- package/dist/test/buildKarmaConfig.js +19 -0
- package/dist/test/buildKarmaConfig.js.map +1 -0
- package/dist/test/buildRecordedClient.js +22 -0
- package/dist/test/buildRecordedClient.js.map +1 -0
- package/dist/test/buildSampleTest.js +19 -0
- package/dist/test/buildSampleTest.js.map +1 -0
- package/dist/test/template.js +192 -0
- package/dist/test/template.js.map +1 -0
- package/dist-esm/buildClient.js +191 -0
- package/dist-esm/buildClient.js.map +1 -0
- package/dist-esm/buildClientDefinitions.js +155 -0
- package/dist-esm/buildClientDefinitions.js.map +1 -0
- package/dist-esm/buildIndexFile.js +145 -0
- package/dist-esm/buildIndexFile.js.map +1 -0
- package/dist-esm/buildIsUnexpectedHelper.js +215 -0
- package/dist-esm/buildIsUnexpectedHelper.js.map +1 -0
- package/dist-esm/buildMethodShortcuts.js +46 -0
- package/dist-esm/buildMethodShortcuts.js.map +1 -0
- package/dist-esm/buildObjectTypes.js +249 -0
- package/dist-esm/buildObjectTypes.js.map +1 -0
- package/dist-esm/buildPaginateHelper.js +26 -0
- package/dist-esm/buildPaginateHelper.js.map +1 -0
- package/dist-esm/buildParameterTypes.js +288 -0
- package/dist-esm/buildParameterTypes.js.map +1 -0
- package/dist-esm/buildPollingHelper.js +17 -0
- package/dist-esm/buildPollingHelper.js.map +1 -0
- package/dist-esm/buildResponseTypes.js +127 -0
- package/dist-esm/buildResponseTypes.js.map +1 -0
- package/dist-esm/buildSchemaType.js +39 -0
- package/dist-esm/buildSchemaType.js.map +1 -0
- package/dist-esm/buildTopLevelIndexFile.js +41 -0
- package/dist-esm/buildTopLevelIndexFile.js.map +1 -0
- package/dist-esm/helpers/nameConstructors.js +34 -0
- package/dist-esm/helpers/nameConstructors.js.map +1 -0
- package/dist-esm/helpers/nameUtils.js +187 -0
- package/dist-esm/helpers/nameUtils.js.map +1 -0
- package/dist-esm/helpers/operationHelpers.js +72 -0
- package/dist-esm/helpers/operationHelpers.js.map +1 -0
- package/dist-esm/helpers/schemaHelpers.js +21 -0
- package/dist-esm/helpers/schemaHelpers.js.map +1 -0
- package/dist-esm/helpers/shortcutMethods.js +42 -0
- package/dist-esm/helpers/shortcutMethods.js.map +1 -0
- package/dist-esm/index.js +28 -0
- package/dist-esm/index.js.map +1 -0
- package/dist-esm/interfaces.js +15 -0
- package/dist-esm/interfaces.js.map +1 -0
- package/dist-esm/metadata/buildApiExtractorConfig.js +51 -0
- package/dist-esm/metadata/buildApiExtractorConfig.js.map +1 -0
- package/dist-esm/metadata/buildESLintConfig.js +28 -0
- package/dist-esm/metadata/buildESLintConfig.js.map +1 -0
- package/dist-esm/metadata/buildLicenseFile.js +36 -0
- package/dist-esm/metadata/buildLicenseFile.js.map +1 -0
- package/dist-esm/metadata/buildPackageFile.js +234 -0
- package/dist-esm/metadata/buildPackageFile.js.map +1 -0
- package/dist-esm/metadata/buildReadmeFile.js +167 -0
- package/dist-esm/metadata/buildReadmeFile.js.map +1 -0
- package/dist-esm/metadata/buildRollupConfig.js +139 -0
- package/dist-esm/metadata/buildRollupConfig.js.map +1 -0
- package/dist-esm/metadata/buildTsConfig.js +67 -0
- package/dist-esm/metadata/buildTsConfig.js.map +1 -0
- package/dist-esm/package.json +1 -0
- package/dist-esm/static/paginateContent.js +211 -0
- package/dist-esm/static/paginateContent.js.map +1 -0
- package/dist-esm/static/pollingContent.js +75 -0
- package/dist-esm/static/pollingContent.js.map +1 -0
- package/dist-esm/test/buildEnvFile.js +24 -0
- package/dist-esm/test/buildEnvFile.js.map +1 -0
- package/dist-esm/test/buildKarmaConfig.js +14 -0
- package/dist-esm/test/buildKarmaConfig.js.map +1 -0
- package/dist-esm/test/buildRecordedClient.js +17 -0
- package/dist-esm/test/buildRecordedClient.js.map +1 -0
- package/dist-esm/test/buildSampleTest.js +14 -0
- package/dist-esm/test/buildSampleTest.js.map +1 -0
- package/dist-esm/test/template.js +189 -0
- package/dist-esm/test/template.js.map +1 -0
- package/package.json +40 -0
- package/publishPackage.js +11 -0
- package/rlc-common.build.log +2 -0
- package/src/buildClient.ts +251 -0
- package/src/buildClientDefinitions.ts +231 -0
- package/src/buildIndexFile.ts +172 -0
- package/src/buildIsUnexpectedHelper.ts +240 -0
- package/src/buildMethodShortcuts.ts +75 -0
- package/src/buildObjectTypes.ts +393 -0
- package/src/buildPaginateHelper.ts +33 -0
- package/src/buildParameterTypes.ts +435 -0
- package/src/buildPollingHelper.ts +18 -0
- package/src/buildResponseTypes.ts +169 -0
- package/src/buildSchemaType.ts +56 -0
- package/src/buildTopLevelIndexFile.ts +46 -0
- package/src/helpers/nameConstructors.ts +93 -0
- package/src/helpers/nameUtils.ts +227 -0
- package/src/helpers/operationHelpers.ts +103 -0
- package/src/helpers/schemaHelpers.ts +25 -0
- package/src/helpers/shortcutMethods.ts +60 -0
- package/src/index.ts +28 -0
- package/src/interfaces.ts +212 -0
- package/src/metadata/buildApiExtractorConfig.ts +59 -0
- package/src/metadata/buildESLintConfig.ts +34 -0
- package/src/metadata/buildLicenseFile.ts +39 -0
- package/src/metadata/buildPackageFile.ts +271 -0
- package/src/metadata/buildReadmeFile.ts +231 -0
- package/src/metadata/buildRollupConfig.ts +147 -0
- package/src/metadata/buildTsConfig.ts +79 -0
- package/src/static/paginateContent.ts +210 -0
- package/src/static/pollingContent.ts +74 -0
- package/src/test/buildEnvFile.ts +26 -0
- package/src/test/buildKarmaConfig.ts +15 -0
- package/src/test/buildRecordedClient.ts +18 -0
- package/src/test/buildSampleTest.ts +15 -0
- package/src/test/template.ts +192 -0
- package/tsconfig-cjs.json +9 -0
- package/tsconfig-common.json +13 -0
- package/tsconfig.json +13 -0
- package/types/buildClient.d.ts +2 -0
- package/types/buildClientDefinitions.d.ts +5 -0
- package/types/buildIndexFile.d.ts +5 -0
- package/types/buildIsUnexpectedHelper.d.ts +5 -0
- package/types/buildMethodShortcuts.d.ts +4 -0
- package/types/buildObjectTypes.d.ts +14 -0
- package/types/buildPaginateHelper.d.ts +5 -0
- package/types/buildParameterTypes.d.ts +5 -0
- package/types/buildPollingHelper.d.ts +5 -0
- package/types/buildResponseTypes.d.ts +5 -0
- package/types/buildSchemaType.d.ts +19 -0
- package/types/buildTopLevelIndexFile.d.ts +5 -0
- package/types/helpers/nameConstructors.d.ts +28 -0
- package/types/helpers/nameUtils.d.ts +25 -0
- package/types/helpers/operationHelpers.d.ts +9 -0
- package/types/helpers/schemaHelpers.d.ts +4 -0
- package/types/helpers/shortcutMethods.d.ts +3 -0
- package/types/index.d.ts +25 -0
- package/types/interfaces.d.ts +186 -0
- package/types/metadata/buildApiExtractorConfig.d.ts +5 -0
- package/types/metadata/buildESLintConfig.d.ts +5 -0
- package/types/metadata/buildLicenseFile.d.ts +5 -0
- package/types/metadata/buildPackageFile.d.ts +5 -0
- package/types/metadata/buildReadmeFile.d.ts +5 -0
- package/types/metadata/buildRollupConfig.d.ts +5 -0
- package/types/metadata/buildTsConfig.d.ts +5 -0
- package/types/static/paginateContent.d.ts +1 -0
- package/types/static/pollingContent.d.ts +1 -0
- package/types/test/buildEnvFile.d.ts +9 -0
- package/types/test/buildKarmaConfig.d.ts +5 -0
- package/types/test/buildRecordedClient.d.ts +5 -0
- package/types/test/buildSampleTest.d.ts +5 -0
- package/types/test/template.d.ts +5 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.getPropertySignature = exports.buildPolymorphicAliases = exports.buildObjectInterfaces = void 0;
|
|
6
|
+
const ts_morph_1 = require("ts-morph");
|
|
7
|
+
const nameUtils_js_1 = require("./helpers/nameUtils.js");
|
|
8
|
+
const schemaHelpers_js_1 = require("./helpers/schemaHelpers.js");
|
|
9
|
+
const interfaces_js_1 = require("./interfaces.js");
|
|
10
|
+
/**
|
|
11
|
+
* Generates interfaces for ObjectSchemas
|
|
12
|
+
*/
|
|
13
|
+
function buildObjectInterfaces(model, importedModels, schemaUsage) {
|
|
14
|
+
var _a;
|
|
15
|
+
const objectSchemas = ((_a = model.schemas) !== null && _a !== void 0 ? _a : []).filter((o) => {
|
|
16
|
+
var _a;
|
|
17
|
+
return (0, schemaHelpers_js_1.isObjectSchema)(o) &&
|
|
18
|
+
((_a = o.usage) === null || _a === void 0 ? void 0 : _a.some((u) => schemaUsage.includes(u)));
|
|
19
|
+
});
|
|
20
|
+
const objectInterfaces = [];
|
|
21
|
+
for (const objectSchema of objectSchemas) {
|
|
22
|
+
const baseName = getObjectBaseName(objectSchema, schemaUsage);
|
|
23
|
+
const interfaceDeclaration = getObjectInterfaceDeclaration(baseName, objectSchema, schemaUsage, importedModels);
|
|
24
|
+
objectInterfaces.push(interfaceDeclaration);
|
|
25
|
+
}
|
|
26
|
+
return objectInterfaces;
|
|
27
|
+
}
|
|
28
|
+
exports.buildObjectInterfaces = buildObjectInterfaces;
|
|
29
|
+
function buildPolymorphicAliases(model, schemaUsage) {
|
|
30
|
+
var _a;
|
|
31
|
+
// We'll add aliases for polymorphic objects
|
|
32
|
+
const objectAliases = [];
|
|
33
|
+
const objectSchemas = ((_a = model.schemas) !== null && _a !== void 0 ? _a : []).filter((o) => {
|
|
34
|
+
var _a;
|
|
35
|
+
return (0, schemaHelpers_js_1.isObjectSchema)(o) &&
|
|
36
|
+
((_a = o.usage) === null || _a === void 0 ? void 0 : _a.some((u) => schemaUsage.includes(u)));
|
|
37
|
+
});
|
|
38
|
+
for (const objectSchema of objectSchemas) {
|
|
39
|
+
const baseName = getObjectBaseName(objectSchema, schemaUsage);
|
|
40
|
+
const typeAlias = getPolymorphicTypeAlias(baseName, objectSchema, schemaUsage);
|
|
41
|
+
if (typeAlias) {
|
|
42
|
+
objectAliases.push(typeAlias);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return objectAliases;
|
|
46
|
+
}
|
|
47
|
+
exports.buildPolymorphicAliases = buildPolymorphicAliases;
|
|
48
|
+
/**
|
|
49
|
+
* Gets a base name for an object schema this is tipically used with suffixes when building interface or type names
|
|
50
|
+
*/
|
|
51
|
+
function getObjectBaseName(objectSchema, schemaUsage) {
|
|
52
|
+
const nameSuffix = schemaUsage.includes(interfaces_js_1.SchemaContext.Output) ? "Output" : "";
|
|
53
|
+
const name = (0, nameUtils_js_1.normalizeName)(objectSchema.name, nameUtils_js_1.NameType.Interface, true /** guard name */);
|
|
54
|
+
return `${name}${nameSuffix}`;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* If the current object is a Polymorphic parent, we need to create
|
|
58
|
+
* a type alias with the union of its children to enable polymorphism
|
|
59
|
+
*/
|
|
60
|
+
function getPolymorphicTypeAlias(baseName, objectSchema, schemaUsage) {
|
|
61
|
+
var _a, _b;
|
|
62
|
+
if (!isPolymorphicParent(objectSchema)) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
const unionTypes = [];
|
|
66
|
+
// If the object itself has a discriminatorValue add its base to the union
|
|
67
|
+
if (objectSchema.discriminatorValue) {
|
|
68
|
+
unionTypes.push(`${baseName}Parent`);
|
|
69
|
+
}
|
|
70
|
+
for (const child of (_b = (_a = objectSchema.children) === null || _a === void 0 ? void 0 : _a.all) !== null && _b !== void 0 ? _b : []) {
|
|
71
|
+
const nameSuffix = schemaUsage.includes(interfaces_js_1.SchemaContext.Output)
|
|
72
|
+
? "Output"
|
|
73
|
+
: "";
|
|
74
|
+
const name = (0, nameUtils_js_1.normalizeName)(child.name, nameUtils_js_1.NameType.Interface, true /** shouldGuard */);
|
|
75
|
+
unionTypes.push(`${name}${nameSuffix}`);
|
|
76
|
+
}
|
|
77
|
+
const description = objectSchema.description;
|
|
78
|
+
return Object.assign(Object.assign({ kind: ts_morph_1.StructureKind.TypeAlias }, (description && { docs: [{ description }] })), { name: `${baseName}`, type: unionTypes.join(" | "), isExported: true });
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Builds the interface for the current object schema. If it is a polymorphic
|
|
82
|
+
* root node it will suffix it with Base.
|
|
83
|
+
*/
|
|
84
|
+
function getObjectInterfaceDeclaration(baseName, objectSchema, schemaUsage, importedModels) {
|
|
85
|
+
var _a;
|
|
86
|
+
let interfaceName = `${baseName}`;
|
|
87
|
+
if (isPolymorphicParent(objectSchema)) {
|
|
88
|
+
interfaceName = `${baseName}Parent`;
|
|
89
|
+
}
|
|
90
|
+
const properties = (_a = objectSchema.properties) !== null && _a !== void 0 ? _a : {};
|
|
91
|
+
let propertySignatures = getPropertySignatures(properties, schemaUsage, importedModels);
|
|
92
|
+
// Add the polymorphic property if exists
|
|
93
|
+
propertySignatures = addDiscriminatorProperty(objectSchema, propertySignatures);
|
|
94
|
+
// Calculate the parents of the current object
|
|
95
|
+
const extendFrom = getImmediateParentsNames(objectSchema, schemaUsage);
|
|
96
|
+
const description = objectSchema.description;
|
|
97
|
+
return Object.assign(Object.assign(Object.assign({ kind: ts_morph_1.StructureKind.Interface }, (description && { docs: [{ description }] })), { name: interfaceName, isExported: true, properties: propertySignatures }), (extendFrom && { extends: extendFrom }));
|
|
98
|
+
}
|
|
99
|
+
function isPolymorphicParent(objectSchema) {
|
|
100
|
+
return objectSchema.isPolyParent ? true : false;
|
|
101
|
+
}
|
|
102
|
+
function addDiscriminatorProperty(objectSchema, properties) {
|
|
103
|
+
const polymorphicProperty = getDiscriminatorProperty(objectSchema);
|
|
104
|
+
if (polymorphicProperty) {
|
|
105
|
+
// It is possible that the polymorphic property needs to override an existing property.
|
|
106
|
+
// This is usually the case on the top level parent where the property already has a type of string
|
|
107
|
+
// we need to replace it with the polymorphic values of its children
|
|
108
|
+
const filteredProperties = properties.filter((p) => p.name !== polymorphicProperty.name);
|
|
109
|
+
return [...filteredProperties, polymorphicProperty];
|
|
110
|
+
}
|
|
111
|
+
return properties;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Finds the name of the property used as discriminator and the discriminator value.
|
|
115
|
+
*/
|
|
116
|
+
function getDiscriminatorProperty(objectSchema) {
|
|
117
|
+
const discriminatorValue = objectSchema.discriminatorValue;
|
|
118
|
+
if (!discriminatorValue && !objectSchema.discriminator) {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
const discriminators = getDiscriminatorValue(objectSchema);
|
|
122
|
+
const discriminatorPropertyName = getDiscriminatorPropertyName(objectSchema);
|
|
123
|
+
if (discriminators) {
|
|
124
|
+
if (discriminatorPropertyName === undefined) {
|
|
125
|
+
throw new Error(`getDiscriminatorProperty: Expected object ${objectSchema.name} to have a discriminator in its hierarchy but found none`);
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
kind: ts_morph_1.StructureKind.PropertySignature,
|
|
129
|
+
name: `"${discriminatorPropertyName}"`,
|
|
130
|
+
type: discriminators
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Finds the closest discriminator property
|
|
137
|
+
*/
|
|
138
|
+
function getDiscriminatorPropertyName(objectSchema) {
|
|
139
|
+
var _a, _b;
|
|
140
|
+
if (objectSchema.discriminator !== undefined) {
|
|
141
|
+
return objectSchema.discriminator.name;
|
|
142
|
+
}
|
|
143
|
+
const allParents = (_b = (_a = objectSchema.parents) === null || _a === void 0 ? void 0 : _a.all) !== null && _b !== void 0 ? _b : [];
|
|
144
|
+
for (const parent of allParents) {
|
|
145
|
+
if ((0, schemaHelpers_js_1.isObjectSchema)(parent) && parent.discriminator) {
|
|
146
|
+
return parent.discriminator.name;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Calculates the discriminator values that a given object needs
|
|
153
|
+
*/
|
|
154
|
+
function getDiscriminatorValue(objectSchema) {
|
|
155
|
+
var _a, _b, _c, _d;
|
|
156
|
+
const discriminatorValue = objectSchema.discriminatorValue
|
|
157
|
+
? objectSchema.discriminatorValue
|
|
158
|
+
: objectSchema.discriminator
|
|
159
|
+
? objectSchema.name
|
|
160
|
+
: undefined;
|
|
161
|
+
const children = (_b = (_a = objectSchema.children) === null || _a === void 0 ? void 0 : _a.immediate) !== null && _b !== void 0 ? _b : [];
|
|
162
|
+
// If the current object has a discriminatorValue but doesn't have any children
|
|
163
|
+
// it is a leaf node and the only discriminator value needed is itself
|
|
164
|
+
if (discriminatorValue && !children.length) {
|
|
165
|
+
return `"${discriminatorValue}"`;
|
|
166
|
+
}
|
|
167
|
+
// when the current object has both discriminator and discriminatorValue
|
|
168
|
+
if (children) {
|
|
169
|
+
const discriminatorProperty = objectSchema.discriminator;
|
|
170
|
+
// Even when there are children, if no discriminatorProperty is present this is a leaf in the polymorphism tree
|
|
171
|
+
if (!discriminatorProperty) {
|
|
172
|
+
return `"${discriminatorValue}"`;
|
|
173
|
+
}
|
|
174
|
+
// the current object has discriminated children we need to find all the discriminatorValues for each of its children
|
|
175
|
+
const allChildren = (_d = (_c = objectSchema.children) === null || _c === void 0 ? void 0 : _c.all) !== null && _d !== void 0 ? _d : [];
|
|
176
|
+
// Top level parents may not have a discriminator of their own.
|
|
177
|
+
const selfDiscriminator = discriminatorValue
|
|
178
|
+
? [`"${discriminatorValue}"`]
|
|
179
|
+
: [];
|
|
180
|
+
const childValues = getChildDiscriminatorValues(allChildren).map((v) => `"${v}"`);
|
|
181
|
+
return [...selfDiscriminator, ...childValues].join(" | ");
|
|
182
|
+
}
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Looks into the children and grabs all possible discriminatorValues
|
|
187
|
+
*/
|
|
188
|
+
function getChildDiscriminatorValues(children) {
|
|
189
|
+
const discriminatorValues = new Set();
|
|
190
|
+
for (const child of children) {
|
|
191
|
+
if ((0, schemaHelpers_js_1.isObjectSchema)(child) && child.discriminatorValue) {
|
|
192
|
+
discriminatorValues.add(child.discriminatorValue);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return [...discriminatorValues];
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Gets a list of types a given object may extend from
|
|
199
|
+
*/
|
|
200
|
+
function getImmediateParentsNames(objectSchema, schemaUsage) {
|
|
201
|
+
var _a;
|
|
202
|
+
if (!((_a = objectSchema.parents) === null || _a === void 0 ? void 0 : _a.immediate)) {
|
|
203
|
+
return [];
|
|
204
|
+
}
|
|
205
|
+
let extendFrom = [];
|
|
206
|
+
// If an immediate parent is a DictionarySchema, that means that the object has been marked
|
|
207
|
+
// with additional properties. We need to add Record<string, unknown> to the extend list and
|
|
208
|
+
if (objectSchema.parents.immediate.find(schemaHelpers_js_1.isDictionarySchema)) {
|
|
209
|
+
extendFrom.push("Record<string, unknown>");
|
|
210
|
+
}
|
|
211
|
+
// Get the rest of the parents excluding any DictionarySchemas
|
|
212
|
+
const parents = objectSchema.parents.immediate
|
|
213
|
+
.filter((p) => !(0, schemaHelpers_js_1.isDictionarySchema)(p))
|
|
214
|
+
.map((parent) => {
|
|
215
|
+
const nameSuffix = schemaUsage.includes(interfaces_js_1.SchemaContext.Output)
|
|
216
|
+
? "Output"
|
|
217
|
+
: "";
|
|
218
|
+
const name = `${(0, nameUtils_js_1.normalizeName)(parent.name, nameUtils_js_1.NameType.Interface, true /** shouldGuard */)}${nameSuffix}`;
|
|
219
|
+
return (0, schemaHelpers_js_1.isObjectSchema)(parent) && isPolymorphicParent(parent)
|
|
220
|
+
? `${name}Parent`
|
|
221
|
+
: name;
|
|
222
|
+
});
|
|
223
|
+
return [...parents, ...extendFrom];
|
|
224
|
+
}
|
|
225
|
+
function getPropertySignatures(properties, schemaUsage, importedModels) {
|
|
226
|
+
return Object.keys(properties).map((p) => getPropertySignature(Object.assign(Object.assign({}, properties[p]), { name: p }), schemaUsage, importedModels));
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Builds a Typescript property or parameter signature
|
|
230
|
+
* @param property - Property or parameter to get the Typescript signature for
|
|
231
|
+
* @param importedModels - Set to track the models that need to be imported
|
|
232
|
+
* @returns a PropertySignatureStructure for the property.
|
|
233
|
+
*/
|
|
234
|
+
function getPropertySignature(property, schemaUsage, importedModels = new Set()) {
|
|
235
|
+
var _a, _b;
|
|
236
|
+
const propertyName = property.name;
|
|
237
|
+
const description = property.description;
|
|
238
|
+
const type = ((schemaUsage.includes(interfaces_js_1.SchemaContext.Output) &&
|
|
239
|
+
((_a = property.usage) === null || _a === void 0 ? void 0 : _a.includes(interfaces_js_1.SchemaContext.Output))) ||
|
|
240
|
+
(schemaUsage.includes(interfaces_js_1.SchemaContext.Exception) &&
|
|
241
|
+
((_b = property.usage) === null || _b === void 0 ? void 0 : _b.includes(interfaces_js_1.SchemaContext.Exception)))) &&
|
|
242
|
+
property.outputTypeName
|
|
243
|
+
? property.outputTypeName
|
|
244
|
+
: property.typeName
|
|
245
|
+
? property.typeName
|
|
246
|
+
: property.type;
|
|
247
|
+
return Object.assign(Object.assign({ name: propertyName }, (description && { docs: [{ description }] })), { hasQuestionToken: !property.required, type, kind: ts_morph_1.StructureKind.PropertySignature });
|
|
248
|
+
}
|
|
249
|
+
exports.getPropertySignature = getPropertySignature;
|
|
250
|
+
//# sourceMappingURL=buildObjectTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildObjectTypes.js","sourceRoot":"","sources":["../src/buildObjectTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildPaginateHelper = void 0;
|
|
4
|
+
const path = require("path");
|
|
5
|
+
// @ts-ignore: to fix the handlebars issue
|
|
6
|
+
const handlebars_1 = require("handlebars");
|
|
7
|
+
const paginateContent_js_1 = require("./static/paginateContent.js");
|
|
8
|
+
function buildPaginateHelper(model) {
|
|
9
|
+
const pagingInfo = model.annotations;
|
|
10
|
+
// return directly if no paging info
|
|
11
|
+
if (!pagingInfo || pagingInfo.hasPaging !== true || !pagingInfo.pageDetails) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
handlebars_1.default.registerHelper("quoteWrap", function (value) {
|
|
15
|
+
if (Array.isArray(value)) {
|
|
16
|
+
return value.map((element) => `"${element}"`).join();
|
|
17
|
+
}
|
|
18
|
+
return `"${value}"`;
|
|
19
|
+
});
|
|
20
|
+
const { srcPath } = model;
|
|
21
|
+
const paginateHelperContents = handlebars_1.default.compile(paginateContent_js_1.paginateContent, {
|
|
22
|
+
noEscape: true
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
path: path.join(srcPath, "paginateHelper.ts"),
|
|
26
|
+
content: paginateHelperContents(pagingInfo.pageDetails)
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.buildPaginateHelper = buildPaginateHelper;
|
|
30
|
+
//# sourceMappingURL=buildPaginateHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildPaginateHelper.js","sourceRoot":"","sources":["../src/buildPaginateHelper.ts"],"names":[],"mappings":";;;AACA,6BAA6B;AAC7B,0CAA0C;AAC1C,2CAA6B;AAC7B,oEAA8D;AAE9D,SAAgB,mBAAmB,CAAC,KAAe;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;IACrC,oCAAoC;IACpC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;QAC3E,OAAO;KACR;IAED,oBAAG,CAAC,cAAc,CAChB,WAAW,EACX,UAAU,KAA2C;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SACtD;QAED,OAAO,IAAI,KAAK,GAAG,CAAC;IACtB,CAAC,CACF,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,MAAM,sBAAsB,GAAG,oBAAG,CAAC,OAAO,CAAC,oCAAe,EAAE;QAC1D,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC;QAC7C,OAAO,EAAE,sBAAsB,CAAC,UAAU,CAAC,WAAW,CAAC;KACxD,CAAC;AACJ,CAAC;AA1BD,kDA0BC"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.buildParameterTypes = void 0;
|
|
6
|
+
const ts_morph_1 = require("ts-morph");
|
|
7
|
+
const path = require("path");
|
|
8
|
+
const interfaces_js_1 = require("./interfaces.js");
|
|
9
|
+
const nameConstructors_js_1 = require("./helpers/nameConstructors.js");
|
|
10
|
+
function buildParameterTypes(model) {
|
|
11
|
+
var _a, _b, _c, _d;
|
|
12
|
+
const project = new ts_morph_1.Project();
|
|
13
|
+
const srcPath = model.srcPath;
|
|
14
|
+
const filePath = path.join(srcPath, `parameters.ts`);
|
|
15
|
+
const parametersFile = project.createSourceFile(filePath, undefined, {
|
|
16
|
+
overwrite: true
|
|
17
|
+
});
|
|
18
|
+
let hasHeaders = false;
|
|
19
|
+
if (!model.parameters) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
for (const requestParameter of model.parameters) {
|
|
23
|
+
const baseParameterName = (0, nameConstructors_js_1.getParameterBaseName)(requestParameter.operationGroup, requestParameter.operationName);
|
|
24
|
+
const requestCount = (_b = (_a = requestParameter === null || requestParameter === void 0 ? void 0 : requestParameter.parameters) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
25
|
+
const topParamName = (0, nameConstructors_js_1.getParameterTypeName)(baseParameterName);
|
|
26
|
+
const subParamNames = [];
|
|
27
|
+
// We need to loop the requests. An operation with multiple requests means that
|
|
28
|
+
// the operation can get different values for content-type and each value may
|
|
29
|
+
// have a different type associated to it.
|
|
30
|
+
for (let i = 0; i < requestCount; i++) {
|
|
31
|
+
const parameter = requestParameter.parameters[i];
|
|
32
|
+
const internalReferences = new Set();
|
|
33
|
+
// In case we have more than one request to model we need to add a suffix to differentiate
|
|
34
|
+
const nameSuffix = i > 0 ? `${i}` : "";
|
|
35
|
+
const parameterInterfaceName = requestCount > 1
|
|
36
|
+
? `${baseParameterName}RequestParameters${nameSuffix}`
|
|
37
|
+
: topParamName;
|
|
38
|
+
const queryParameterDefinitions = buildQueryParameterDefinition(parameter, baseParameterName, internalReferences, i);
|
|
39
|
+
const pathParameterDefinitions = buildPathParameterDefinitions(parameter, baseParameterName, parametersFile, internalReferences, i);
|
|
40
|
+
const headerParameterDefinitions = buildHeaderParameterDefinitions(parameter, baseParameterName, parametersFile, internalReferences, i);
|
|
41
|
+
const contentTypeParameterDefinition = buildContentTypeParametersDefinition(parameter, baseParameterName, internalReferences, i);
|
|
42
|
+
const bodyParameterDefinition = buildBodyParametersDefinition(parameter, baseParameterName, internalReferences, i);
|
|
43
|
+
// Add interfaces for body and query parameters
|
|
44
|
+
parametersFile.addInterfaces([
|
|
45
|
+
...(bodyParameterDefinition !== null && bodyParameterDefinition !== void 0 ? bodyParameterDefinition : []),
|
|
46
|
+
...(queryParameterDefinitions !== null && queryParameterDefinitions !== void 0 ? queryParameterDefinitions : []),
|
|
47
|
+
...(pathParameterDefinitions ? [pathParameterDefinitions] : []),
|
|
48
|
+
...(headerParameterDefinitions ? [headerParameterDefinitions] : []),
|
|
49
|
+
...(contentTypeParameterDefinition
|
|
50
|
+
? [contentTypeParameterDefinition]
|
|
51
|
+
: [])
|
|
52
|
+
]);
|
|
53
|
+
// Add Operation parameters type alias which is composed of the types we generated above
|
|
54
|
+
// plus the common type RequestParameters
|
|
55
|
+
parametersFile.addTypeAlias({
|
|
56
|
+
name: parameterInterfaceName,
|
|
57
|
+
isExported: true,
|
|
58
|
+
type: [...internalReferences, "RequestParameters"].join(" & ")
|
|
59
|
+
});
|
|
60
|
+
subParamNames.push(parameterInterfaceName);
|
|
61
|
+
if (headerParameterDefinitions !== undefined) {
|
|
62
|
+
hasHeaders = true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Add Operation parameters type alias which is composed of the types we generated above
|
|
66
|
+
// plus the common type RequestParameters
|
|
67
|
+
if (requestCount > 1) {
|
|
68
|
+
parametersFile.addTypeAlias({
|
|
69
|
+
name: topParamName,
|
|
70
|
+
isExported: true,
|
|
71
|
+
type: [...subParamNames].join(" | ")
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (hasHeaders) {
|
|
76
|
+
parametersFile.addImportDeclarations([
|
|
77
|
+
{
|
|
78
|
+
namedImports: ["RawHttpHeadersInput"],
|
|
79
|
+
moduleSpecifier: "@azure/core-rest-pipeline"
|
|
80
|
+
}
|
|
81
|
+
]);
|
|
82
|
+
}
|
|
83
|
+
parametersFile.addImportDeclarations([
|
|
84
|
+
{
|
|
85
|
+
namedImports: ["RequestParameters"],
|
|
86
|
+
moduleSpecifier: "@azure-rest/core-client"
|
|
87
|
+
}
|
|
88
|
+
]);
|
|
89
|
+
if ((_c = model.importSet) === null || _c === void 0 ? void 0 : _c.has(interfaces_js_1.ImportKind.ParameterInput)) {
|
|
90
|
+
parametersFile.addImportDeclarations([
|
|
91
|
+
{
|
|
92
|
+
namedImports: [
|
|
93
|
+
...Array.from(((_d = model.importSet) === null || _d === void 0 ? void 0 : _d.get(interfaces_js_1.ImportKind.ParameterInput)) || [])
|
|
94
|
+
],
|
|
95
|
+
moduleSpecifier: "./models"
|
|
96
|
+
}
|
|
97
|
+
]);
|
|
98
|
+
}
|
|
99
|
+
return { path: filePath, content: parametersFile.getFullText() };
|
|
100
|
+
}
|
|
101
|
+
exports.buildParameterTypes = buildParameterTypes;
|
|
102
|
+
function buildQueryParameterDefinition(parameters, baseName, internalReferences, requestIndex) {
|
|
103
|
+
const queryParameters = ((parameters === null || parameters === void 0 ? void 0 : parameters.parameters) || []).filter((p) => p.type === "query");
|
|
104
|
+
if (!queryParameters.length) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
|
|
108
|
+
const queryParameterInterfaceName = `${baseName}QueryParam${nameSuffix}`;
|
|
109
|
+
const queryParameterPropertiesName = `${baseName}QueryParamProperties`;
|
|
110
|
+
// Get the property signature for each query parameter
|
|
111
|
+
const propertiesDefinition = queryParameters.map((qp) => getPropertyFromSchema(qp.param));
|
|
112
|
+
const hasRequiredParameters = propertiesDefinition.some((p) => !p.hasQuestionToken);
|
|
113
|
+
const propertiesInterface = {
|
|
114
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
115
|
+
isExported: true,
|
|
116
|
+
name: queryParameterPropertiesName,
|
|
117
|
+
properties: propertiesDefinition
|
|
118
|
+
};
|
|
119
|
+
const parameterInterface = {
|
|
120
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
121
|
+
isExported: true,
|
|
122
|
+
name: queryParameterInterfaceName,
|
|
123
|
+
properties: [
|
|
124
|
+
{
|
|
125
|
+
name: "queryParameters",
|
|
126
|
+
type: queryParameterPropertiesName,
|
|
127
|
+
// Mark as optional if there are no required parameters
|
|
128
|
+
hasQuestionToken: !hasRequiredParameters
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
};
|
|
132
|
+
// Mark the queryParameter interface for importing
|
|
133
|
+
internalReferences.add(queryParameterInterfaceName);
|
|
134
|
+
return [propertiesInterface, parameterInterface];
|
|
135
|
+
}
|
|
136
|
+
function getPropertyFromSchema(schema) {
|
|
137
|
+
const description = schema.description;
|
|
138
|
+
return Object.assign(Object.assign({ name: schema.name }, (description && { docs: [{ description }] })), { type: schema.type, hasQuestionToken: !Boolean(schema.required), kind: ts_morph_1.StructureKind.PropertySignature });
|
|
139
|
+
}
|
|
140
|
+
function buildPathParameterDefinitions(parameters, baseName, parametersFile, internalReferences, requestIndex) {
|
|
141
|
+
const pathParameters = (parameters.parameters || []).filter((p) => p.type === "path");
|
|
142
|
+
if (!pathParameters.length) {
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
|
|
146
|
+
const pathParameterInterfaceName = `${baseName}PathParam${nameSuffix}`;
|
|
147
|
+
const pathInterface = getPathInterfaceDefinition(pathParameters, baseName);
|
|
148
|
+
if (pathInterface) {
|
|
149
|
+
parametersFile.addInterface(pathInterface);
|
|
150
|
+
}
|
|
151
|
+
internalReferences.add(pathParameterInterfaceName);
|
|
152
|
+
return {
|
|
153
|
+
isExported: true,
|
|
154
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
155
|
+
name: pathParameterInterfaceName,
|
|
156
|
+
properties: [
|
|
157
|
+
{
|
|
158
|
+
name: "pathParameters",
|
|
159
|
+
type: `${baseName}PathParameters`,
|
|
160
|
+
kind: ts_morph_1.StructureKind.PropertySignature
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
function getPathInterfaceDefinition(pathParameters, baseName) {
|
|
166
|
+
const pathInterfaceName = `${baseName}PathParameters`;
|
|
167
|
+
return {
|
|
168
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
169
|
+
isExported: true,
|
|
170
|
+
name: pathInterfaceName,
|
|
171
|
+
properties: pathParameters.map((p) => getPropertyFromSchema(p.param))
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
function buildHeaderParameterDefinitions(parameters, baseName, parametersFile, internalReferences, requestIndex) {
|
|
175
|
+
const headerParameters = (parameters.parameters || []).filter((p) => p.type === "header" && p.name !== "contentType");
|
|
176
|
+
if (!headerParameters.length) {
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
179
|
+
const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
|
|
180
|
+
const headerParameterInterfaceName = `${baseName}HeaderParam${nameSuffix}`;
|
|
181
|
+
const headersInterface = getRequestHeaderInterfaceDefinition(headerParameters, baseName);
|
|
182
|
+
if (headersInterface) {
|
|
183
|
+
parametersFile.addInterface(headersInterface);
|
|
184
|
+
}
|
|
185
|
+
internalReferences.add(headerParameterInterfaceName);
|
|
186
|
+
return {
|
|
187
|
+
isExported: true,
|
|
188
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
189
|
+
name: headerParameterInterfaceName,
|
|
190
|
+
properties: [
|
|
191
|
+
{
|
|
192
|
+
name: "headers",
|
|
193
|
+
type: `RawHttpHeadersInput & ${baseName}Headers`,
|
|
194
|
+
kind: ts_morph_1.StructureKind.PropertySignature
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
function getRequestHeaderInterfaceDefinition(headerParameters, baseName) {
|
|
200
|
+
const headersInterfaceName = `${baseName}Headers`;
|
|
201
|
+
return {
|
|
202
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
203
|
+
isExported: true,
|
|
204
|
+
name: headersInterfaceName,
|
|
205
|
+
properties: headerParameters.map((h) => getPropertyFromSchema(h.param))
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
function buildContentTypeParametersDefinition(parameters, baseName, internalReferences, requestIndex) {
|
|
209
|
+
const mediaTypeParameters = (parameters.parameters || []).filter((p) => p.type === "header" && p.name === "contentType");
|
|
210
|
+
if (!mediaTypeParameters.length) {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
|
|
214
|
+
const mediaTypesParameterInterfaceName = `${baseName}MediaTypesParam${nameSuffix}`;
|
|
215
|
+
// Mark the queryParameter interface for importing
|
|
216
|
+
internalReferences.add(mediaTypesParameterInterfaceName);
|
|
217
|
+
const mediaParam = mediaTypeParameters[0].param;
|
|
218
|
+
return {
|
|
219
|
+
isExported: true,
|
|
220
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
221
|
+
name: mediaTypesParameterInterfaceName,
|
|
222
|
+
properties: [getPropertyFromSchema(mediaParam)]
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
function buildBodyParametersDefinition(parameters, baseName, internalReferences, requestIndex) {
|
|
226
|
+
const bodyParameters = parameters.body;
|
|
227
|
+
if (!bodyParameters ||
|
|
228
|
+
!(bodyParameters === null || bodyParameters === void 0 ? void 0 : bodyParameters.body) ||
|
|
229
|
+
!(bodyParameters === null || bodyParameters === void 0 ? void 0 : bodyParameters.body.length)) {
|
|
230
|
+
return [];
|
|
231
|
+
}
|
|
232
|
+
const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
|
|
233
|
+
const bodyParameterInterfaceName = `${baseName}BodyParam${nameSuffix}`;
|
|
234
|
+
internalReferences.add(bodyParameterInterfaceName);
|
|
235
|
+
// In case of formData we'd get multiple properties in body marked as partialBody
|
|
236
|
+
if (bodyParameters.isPartialBody) {
|
|
237
|
+
let allOptionalParts = true;
|
|
238
|
+
const propertiesDefinitions = [];
|
|
239
|
+
for (const param of bodyParameters.body) {
|
|
240
|
+
if (param.required) {
|
|
241
|
+
allOptionalParts = false;
|
|
242
|
+
}
|
|
243
|
+
propertiesDefinitions.push(getPropertyFromSchema(param));
|
|
244
|
+
}
|
|
245
|
+
const formBodyName = `${baseName}FormBody`;
|
|
246
|
+
const formBodyInterface = {
|
|
247
|
+
isExported: true,
|
|
248
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
249
|
+
name: formBodyName,
|
|
250
|
+
properties: propertiesDefinitions
|
|
251
|
+
};
|
|
252
|
+
return [
|
|
253
|
+
{
|
|
254
|
+
isExported: true,
|
|
255
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
256
|
+
name: bodyParameterInterfaceName,
|
|
257
|
+
properties: [
|
|
258
|
+
{
|
|
259
|
+
name: "body",
|
|
260
|
+
type: formBodyName,
|
|
261
|
+
hasQuestionToken: allOptionalParts
|
|
262
|
+
}
|
|
263
|
+
]
|
|
264
|
+
},
|
|
265
|
+
formBodyInterface
|
|
266
|
+
];
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
const bodySignature = getPropertyFromSchema(bodyParameters.body[0]);
|
|
270
|
+
return [
|
|
271
|
+
{
|
|
272
|
+
isExported: true,
|
|
273
|
+
kind: ts_morph_1.StructureKind.Interface,
|
|
274
|
+
name: bodyParameterInterfaceName,
|
|
275
|
+
properties: [
|
|
276
|
+
{
|
|
277
|
+
docs: bodySignature.docs,
|
|
278
|
+
name: "body",
|
|
279
|
+
type: bodySignature.type,
|
|
280
|
+
hasQuestionToken: bodySignature.hasQuestionToken
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
}
|
|
284
|
+
];
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=buildParameterTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildParameterTypes.js","sourceRoot":"","sources":["../src/buildParameterTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildPollingHelper = void 0;
|
|
4
|
+
const path = require("path");
|
|
5
|
+
// @ts-ignore: to fix the handlebars issue
|
|
6
|
+
const handlebars_1 = require("handlebars");
|
|
7
|
+
const operationHelpers_js_1 = require("./helpers/operationHelpers.js");
|
|
8
|
+
const pollingContent_js_1 = require("./static/pollingContent.js");
|
|
9
|
+
function buildPollingHelper(model) {
|
|
10
|
+
if (!(0, operationHelpers_js_1.hasPollingOperations)(model)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const readmeFileContents = handlebars_1.default.compile(pollingContent_js_1.pollingContent, { noEscape: true });
|
|
14
|
+
const { srcPath } = model;
|
|
15
|
+
return {
|
|
16
|
+
path: path.join(srcPath, "pollingHelper.ts"),
|
|
17
|
+
content: readmeFileContents({})
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.buildPollingHelper = buildPollingHelper;
|
|
21
|
+
//# sourceMappingURL=buildPollingHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildPollingHelper.js","sourceRoot":"","sources":["../src/buildPollingHelper.ts"],"names":[],"mappings":";;;AACA,6BAA6B;AAC7B,0CAA0C;AAC1C,2CAA6B;AAC7B,uEAAqE;AACrE,kEAA4D;AAE5D,SAAgB,kBAAkB,CAAC,KAAe;IAChD,IAAI,CAAC,IAAA,0CAAoB,EAAC,KAAK,CAAC,EAAE;QAChC,OAAO;KACR;IACD,MAAM,kBAAkB,GAAG,oBAAG,CAAC,OAAO,CAAC,kCAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;QAC5C,OAAO,EAAE,kBAAkB,CAAC,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC;AAVD,gDAUC"}
|