@odata2ts/odata2ts 0.36.3 → 0.37.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.
- package/CHANGELOG.md +15 -0
- package/lib/FactoryFunctionModel.d.ts +5 -5
- package/lib/FactoryFunctionModel.js +1 -2
- package/lib/FactoryFunctionModel.js.map +1 -1
- package/lib/NamingModel.js +2 -5
- package/lib/NamingModel.js.map +1 -1
- package/lib/OptionModel.d.ts +2 -2
- package/lib/OptionModel.js +4 -7
- package/lib/OptionModel.js.map +1 -1
- package/lib/TypeModel.js +2 -5
- package/lib/TypeModel.js.map +1 -1
- package/lib/app.d.ts +2 -2
- package/lib/app.js +23 -27
- package/lib/app.js.map +1 -1
- package/lib/cli/cli.d.ts +1 -0
- package/lib/cli/cli.js +27 -0
- package/lib/cli/cli.js.map +1 -0
- package/lib/cli/index.d.ts +4 -0
- package/lib/cli/index.js +5 -0
- package/lib/cli/index.js.map +1 -0
- package/lib/cli/processCliArgs.d.ts +2 -0
- package/lib/cli/processCliArgs.js +57 -0
- package/lib/cli/processCliArgs.js.map +1 -0
- package/lib/cli/processConfigFile.d.ts +2 -0
- package/lib/cli/processConfigFile.js +24 -0
- package/lib/cli/processConfigFile.js.map +1 -0
- package/lib/cli/serviceGenerationRun.d.ts +2 -0
- package/lib/cli/serviceGenerationRun.js +77 -0
- package/lib/cli/serviceGenerationRun.js.map +1 -0
- package/lib/data-model/DataModel.d.ts +2 -2
- package/lib/data-model/DataModel.js +5 -10
- package/lib/data-model/DataModel.js.map +1 -1
- package/lib/data-model/DataModelDigestion.d.ts +10 -10
- package/lib/data-model/DataModelDigestion.js +19 -23
- package/lib/data-model/DataModelDigestion.js.map +1 -1
- package/lib/data-model/DataModelDigestionV2.d.ts +2 -2
- package/lib/data-model/DataModelDigestionV2.js +27 -31
- package/lib/data-model/DataModelDigestionV2.js.map +1 -1
- package/lib/data-model/DataModelDigestionV4.d.ts +2 -2
- package/lib/data-model/DataModelDigestionV4.js +31 -35
- package/lib/data-model/DataModelDigestionV4.js.map +1 -1
- package/lib/data-model/DataTypeModel.d.ts +1 -1
- package/lib/data-model/DataTypeModel.js +2 -5
- package/lib/data-model/DataTypeModel.js.map +1 -1
- package/lib/data-model/NamingHelper.d.ts +2 -2
- package/lib/data-model/NamingHelper.js +12 -19
- package/lib/data-model/NamingHelper.js.map +1 -1
- package/lib/data-model/ServiceConfigHelper.d.ts +3 -3
- package/lib/data-model/ServiceConfigHelper.js +18 -22
- package/lib/data-model/ServiceConfigHelper.js.map +1 -1
- package/lib/data-model/edmx/ODataEdmxModelBase.js +1 -2
- package/lib/data-model/edmx/ODataEdmxModelV3.d.ts +1 -1
- package/lib/data-model/edmx/ODataEdmxModelV3.js +1 -2
- package/lib/data-model/edmx/ODataEdmxModelV3.js.map +1 -1
- package/lib/data-model/edmx/ODataEdmxModelV4.d.ts +1 -1
- package/lib/data-model/edmx/ODataEdmxModelV4.js +1 -2
- package/lib/data-model/edmx/ODataEdmxModelV4.js.map +1 -1
- package/lib/data-model/validation/NameClashValidator.d.ts +2 -2
- package/lib/data-model/validation/NameClashValidator.js +10 -14
- package/lib/data-model/validation/NameClashValidator.js.map +1 -1
- package/lib/data-model/validation/NameValidator.d.ts +1 -1
- package/lib/data-model/validation/NameValidator.js +1 -2
- package/lib/data-model/validation/NameValidator.js.map +1 -1
- package/lib/data-model/validation/NoopValidator.d.ts +1 -1
- package/lib/data-model/validation/NoopValidator.js +1 -5
- package/lib/data-model/validation/NoopValidator.js.map +1 -1
- package/lib/defaultConfig.d.ts +1 -1
- package/lib/defaultConfig.js +21 -26
- package/lib/defaultConfig.js.map +1 -1
- package/lib/download/downloadMetadata.d.ts +1 -1
- package/lib/download/downloadMetadata.js +6 -10
- package/lib/download/downloadMetadata.js.map +1 -1
- package/lib/download/index.d.ts +2 -2
- package/lib/download/index.js +2 -7
- package/lib/download/index.js.map +1 -1
- package/lib/download/storeMetadata.js +15 -17
- package/lib/download/storeMetadata.js.map +1 -1
- package/lib/evaluateConfig.d.ts +1 -1
- package/lib/evaluateConfig.js +14 -18
- package/lib/evaluateConfig.js.map +1 -1
- package/lib/generator/ImportContainer.d.ts +2 -2
- package/lib/generator/ImportContainer.js +17 -22
- package/lib/generator/ImportContainer.js.map +1 -1
- package/lib/generator/ImportedNameValidator.js +1 -5
- package/lib/generator/ImportedNameValidator.js.map +1 -1
- package/lib/generator/ModelGenerator.d.ts +1 -1
- package/lib/generator/ModelGenerator.js +8 -12
- package/lib/generator/ModelGenerator.js.map +1 -1
- package/lib/generator/QueryObjectGenerator.d.ts +1 -1
- package/lib/generator/QueryObjectGenerator.js +25 -29
- package/lib/generator/QueryObjectGenerator.js.map +1 -1
- package/lib/generator/ServiceGenerator.d.ts +4 -4
- package/lib/generator/ServiceGenerator.js +52 -56
- package/lib/generator/ServiceGenerator.js.map +1 -1
- package/lib/generator/import/ImportObjects.js +11 -14
- package/lib/generator/import/ImportObjects.js.map +1 -1
- package/lib/generator/index.d.ts +3 -3
- package/lib/generator/index.js +3 -9
- package/lib/generator/index.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.js +4 -7
- package/lib/index.js.map +1 -1
- package/lib/project/FileHandler.d.ts +3 -3
- package/lib/project/FileHandler.js +12 -16
- package/lib/project/FileHandler.js.map +1 -1
- package/lib/project/ProjectManager.d.ts +5 -5
- package/lib/project/ProjectManager.js +25 -32
- package/lib/project/ProjectManager.js.map +1 -1
- package/lib/project/TsMorphHelper.d.ts +1 -1
- package/lib/project/TsMorphHelper.js +21 -22
- package/lib/project/TsMorphHelper.js.map +1 -1
- package/lib/project/formatter/BaseFormatter.d.ts +1 -1
- package/lib/project/formatter/BaseFormatter.js +1 -5
- package/lib/project/formatter/BaseFormatter.js.map +1 -1
- package/lib/project/formatter/FileFormatter.js +1 -2
- package/lib/project/formatter/NoopFormatter.d.ts +1 -1
- package/lib/project/formatter/NoopFormatter.js +5 -9
- package/lib/project/formatter/NoopFormatter.js.map +1 -1
- package/lib/project/formatter/PrettierFormatter.d.ts +1 -1
- package/lib/project/formatter/PrettierFormatter.js +20 -25
- package/lib/project/formatter/PrettierFormatter.js.map +1 -1
- package/lib/project/formatter/index.d.ts +1 -1
- package/lib/project/formatter/index.js +6 -10
- package/lib/project/formatter/index.js.map +1 -1
- package/lib/project/logger/logFilePath.js +4 -9
- package/lib/project/logger/logFilePath.js.map +1 -1
- package/lib/run-cli.js +2 -4
- package/lib/run-cli.js.map +1 -1
- package/package.json +53 -63
- package/lib/cli.d.ts +0 -3
- package/lib/cli.js +0 -176
- package/lib/cli.js.map +0 -1
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const DataModel_1 = require("./DataModel");
|
|
8
|
-
const DataModelDigestion_1 = require("./DataModelDigestion");
|
|
9
|
-
const DataTypeModel_1 = require("./DataTypeModel");
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { loadConverters } from "@odata2ts/converter-runtime";
|
|
3
|
+
import { ODataTypesV2, ODataVersions } from "@odata2ts/odata-core";
|
|
4
|
+
import { withNamespace } from "./DataModel.js";
|
|
5
|
+
import { Digester } from "./DataModelDigestion.js";
|
|
6
|
+
import { ODataVersion } from "./DataTypeModel.js";
|
|
10
7
|
/**
|
|
11
8
|
* Digests an EDMX schema to produce a DataModel.
|
|
12
9
|
*
|
|
@@ -14,15 +11,14 @@ const DataTypeModel_1 = require("./DataTypeModel");
|
|
|
14
11
|
* @param options
|
|
15
12
|
* @param namingHelper
|
|
16
13
|
*/
|
|
17
|
-
const digest = (schemas, options, namingHelper) =>
|
|
18
|
-
const converters = yield
|
|
14
|
+
export const digest = (schemas, options, namingHelper) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
const converters = yield loadConverters(ODataVersions.V2, options.converters);
|
|
19
16
|
const digester = new DigesterV3(schemas, options, namingHelper, converters);
|
|
20
17
|
return digester.digest();
|
|
21
18
|
});
|
|
22
|
-
|
|
23
|
-
class DigesterV3 extends DataModelDigestion_1.Digester {
|
|
19
|
+
class DigesterV3 extends Digester {
|
|
24
20
|
constructor(schemas, options, namingHelper, converters) {
|
|
25
|
-
super(
|
|
21
|
+
super(ODataVersion.V2, schemas, options, namingHelper, converters);
|
|
26
22
|
}
|
|
27
23
|
findAssociationEnd(np) {
|
|
28
24
|
var _a;
|
|
@@ -67,7 +63,7 @@ class DigesterV3 extends DataModelDigestion_1.Digester {
|
|
|
67
63
|
(_a = container.FunctionImport) === null || _a === void 0 ? void 0 : _a.forEach((funcImport) => {
|
|
68
64
|
var _a, _b, _c, _d;
|
|
69
65
|
const odataName = funcImport.$.Name;
|
|
70
|
-
const fqName =
|
|
66
|
+
const fqName = withNamespace(ecName, odataName);
|
|
71
67
|
const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);
|
|
72
68
|
const opName = this.nameValidator.addOperationImportType(fqName, (opConfig === null || opConfig === void 0 ? void 0 : opConfig.mappedName) || odataName);
|
|
73
69
|
const name = this.namingHelper.getFunctionName(opName);
|
|
@@ -103,7 +99,7 @@ class DigesterV3 extends DataModelDigestion_1.Digester {
|
|
|
103
99
|
});
|
|
104
100
|
(_b = container.EntitySet) === null || _b === void 0 ? void 0 : _b.forEach((entitySet) => {
|
|
105
101
|
const odataName = entitySet.$.Name;
|
|
106
|
-
const fqName =
|
|
102
|
+
const fqName = withNamespace(ecName, odataName);
|
|
107
103
|
const config = this.serviceConfigHelper.findEntitySetConfig(ecName, odataName);
|
|
108
104
|
const name = this.nameValidator.addEntitySet(fqName, (config === null || config === void 0 ? void 0 : config.mappedName) || odataName);
|
|
109
105
|
const entityType = this.dataModel.getEntityType(entitySet.$.EntityType);
|
|
@@ -121,93 +117,93 @@ class DigesterV3 extends DataModelDigestion_1.Digester {
|
|
|
121
117
|
}
|
|
122
118
|
mapODataType(type) {
|
|
123
119
|
switch (type) {
|
|
124
|
-
case
|
|
120
|
+
case ODataTypesV2.Boolean:
|
|
125
121
|
return {
|
|
126
122
|
outputType: "boolean",
|
|
127
123
|
qPath: "QBooleanPath",
|
|
128
124
|
qCollection: "QBooleanCollection",
|
|
129
125
|
qParam: "QBooleanParam",
|
|
130
126
|
};
|
|
131
|
-
case
|
|
132
|
-
case
|
|
127
|
+
case ODataTypesV2.Int16:
|
|
128
|
+
case ODataTypesV2.Int32:
|
|
133
129
|
return {
|
|
134
130
|
outputType: "number",
|
|
135
131
|
qPath: "QNumberV2Path",
|
|
136
132
|
qCollection: "QNumberV2Collection",
|
|
137
133
|
qParam: "QNumberParam",
|
|
138
134
|
};
|
|
139
|
-
case
|
|
140
|
-
case
|
|
135
|
+
case ODataTypesV2.Byte:
|
|
136
|
+
case ODataTypesV2.SByte:
|
|
141
137
|
return {
|
|
142
138
|
outputType: "string",
|
|
143
139
|
qPath: "QStringNumberV2Path",
|
|
144
140
|
qCollection: "QStringNumberV2Collection",
|
|
145
141
|
qParam: "QStringNumberV2Param",
|
|
146
142
|
};
|
|
147
|
-
case
|
|
143
|
+
case ODataTypesV2.Int64:
|
|
148
144
|
return {
|
|
149
145
|
outputType: "string",
|
|
150
146
|
qPath: "QStringNumberV2Path",
|
|
151
147
|
qCollection: "QStringNumberV2Collection",
|
|
152
148
|
qParam: "QInt64V2Param",
|
|
153
149
|
};
|
|
154
|
-
case
|
|
150
|
+
case ODataTypesV2.Single:
|
|
155
151
|
return {
|
|
156
152
|
outputType: "string",
|
|
157
153
|
qPath: "QStringNumberV2Path",
|
|
158
154
|
qCollection: "QStringNumberV2Collection",
|
|
159
155
|
qParam: "QSingleV2Param",
|
|
160
156
|
};
|
|
161
|
-
case
|
|
157
|
+
case ODataTypesV2.Double:
|
|
162
158
|
return {
|
|
163
159
|
outputType: "string",
|
|
164
160
|
qPath: "QStringNumberV2Path",
|
|
165
161
|
qCollection: "QStringNumberV2Collection",
|
|
166
162
|
qParam: "QDoubleV2Param",
|
|
167
163
|
};
|
|
168
|
-
case
|
|
164
|
+
case ODataTypesV2.Decimal:
|
|
169
165
|
return {
|
|
170
166
|
outputType: "string",
|
|
171
167
|
qPath: "QStringNumberV2Path",
|
|
172
168
|
qCollection: "QStringNumberV2Collection",
|
|
173
169
|
qParam: "QDecimalV2Param",
|
|
174
170
|
};
|
|
175
|
-
case
|
|
171
|
+
case ODataTypesV2.String:
|
|
176
172
|
return {
|
|
177
173
|
outputType: "string",
|
|
178
174
|
qPath: "QStringV2Path",
|
|
179
175
|
qCollection: "QStringV2Collection",
|
|
180
176
|
qParam: "QStringParam",
|
|
181
177
|
};
|
|
182
|
-
case
|
|
178
|
+
case ODataTypesV2.DateTime:
|
|
183
179
|
return {
|
|
184
180
|
outputType: "string",
|
|
185
181
|
qPath: "QDateTimeV2Path",
|
|
186
182
|
qCollection: "QDateTimeV2Collection",
|
|
187
183
|
qParam: "QDateTimeV2Param",
|
|
188
184
|
};
|
|
189
|
-
case
|
|
185
|
+
case ODataTypesV2.Time:
|
|
190
186
|
return {
|
|
191
187
|
outputType: "string",
|
|
192
188
|
qPath: "QTimeV2Path",
|
|
193
189
|
qCollection: "QTimeV2Collection",
|
|
194
190
|
qParam: "QTimeV2Param",
|
|
195
191
|
};
|
|
196
|
-
case
|
|
192
|
+
case ODataTypesV2.DateTimeOffset:
|
|
197
193
|
return {
|
|
198
194
|
outputType: "string",
|
|
199
195
|
qPath: "QDateTimeOffsetV2Path",
|
|
200
196
|
qCollection: "QDateTimeOffsetV2Collection",
|
|
201
197
|
qParam: "QDateTimeOffsetV2Param",
|
|
202
198
|
};
|
|
203
|
-
case
|
|
199
|
+
case ODataTypesV2.Binary:
|
|
204
200
|
return {
|
|
205
201
|
outputType: "string",
|
|
206
202
|
qPath: "QBinaryPath",
|
|
207
203
|
qCollection: "QBinaryCollection",
|
|
208
204
|
qParam: "QBinaryV2Param",
|
|
209
205
|
};
|
|
210
|
-
case
|
|
206
|
+
case ODataTypesV2.Guid:
|
|
211
207
|
return {
|
|
212
208
|
outputType: "string",
|
|
213
209
|
qPath: "QGuidV2Path",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataModelDigestionV2.js","sourceRoot":"","sources":["../../src/data-model/DataModelDigestionV2.ts"],"names":[],"mappings":"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","sourcesContent":["import { MappedConverterChains, loadConverters } from \"@odata2ts/converter-runtime\";\r\nimport { ODataTypesV2, ODataVersions } from \"@odata2ts/odata-core\";\r\n\r\nimport { DigesterFunction, DigestionOptions } from \"../FactoryFunctionModel\";\r\nimport { withNamespace } from \"./DataModel\";\r\nimport { Digester, TypeModel } from \"./DataModelDigestion\";\r\nimport { ODataVersion, OperationTypes, PropertyModel } from \"./DataTypeModel\";\r\nimport { ComplexType, Property } from \"./edmx/ODataEdmxModelBase\";\r\nimport { AssociationEnd, ComplexTypeV3, EntityTypeV3, NavigationProperty, SchemaV3 } from \"./edmx/ODataEdmxModelV3\";\r\nimport { NamingHelper } from \"./NamingHelper\";\r\n\r\n/**\r\n * Digests an EDMX schema to produce a DataModel.\r\n *\r\n * @param schemas\r\n * @param options\r\n * @param namingHelper\r\n */\r\nexport const digest: DigesterFunction<SchemaV3> = async (schemas, options, namingHelper) => {\r\n const converters = await loadConverters(ODataVersions.V2, options.converters);\r\n\r\n const digester = new DigesterV3(schemas, options, namingHelper, converters);\r\n return digester.digest();\r\n};\r\n\r\nclass DigesterV3 extends Digester<SchemaV3, EntityTypeV3, ComplexTypeV3> {\r\n constructor(\r\n schemas: Array<SchemaV3>,\r\n options: DigestionOptions,\r\n namingHelper: NamingHelper,\r\n converters: MappedConverterChains | undefined\r\n ) {\r\n super(ODataVersion.V2, schemas, options, namingHelper, converters);\r\n }\r\n\r\n private findAssociationEnd(np: NavigationProperty): AssociationEnd {\r\n for (let schema of this.schemas) {\r\n if (schema.Association) {\r\n const relationship = this.namingHelper.stripServicePrefix(np.$.Relationship);\r\n const association = schema.Association?.find((a) => a.$.Name === relationship);\r\n const result = association?.End.find((e) => e.$.Role === np.$.ToRole);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n throw new Error(`Association end couldn't be determined for NavigationProperty [${np.$.Name}]`);\r\n }\r\n\r\n protected getNavigationProps(entityType: ComplexType | EntityTypeV3): Array<Property> {\r\n // return (entityType as EntityTypeV3).NavigationProperty || [];\r\n const et = entityType as EntityTypeV3;\r\n if (et.NavigationProperty) {\r\n return et.NavigationProperty.map((np) => {\r\n const end = this.findAssociationEnd(np);\r\n const isRequired = end.$.Multiplicity !== \"*\" && !end.$.Multiplicity.startsWith(\"0..\");\r\n const isCollection = end.$.Multiplicity !== \"1\" && !end.$.Multiplicity.endsWith(\"..1\");\r\n\r\n return {\r\n $: {\r\n Name: np.$.Name,\r\n Type: isCollection ? `Collection(${end.$.Type})` : end.$.Type,\r\n Nullable: isRequired ? \"false\" : \"true\",\r\n },\r\n };\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n // in V2 all we have & need is the FunctionImport: Function & Action elements are only known in V4.\r\n protected digestOperations(schema: SchemaV3) {}\r\n\r\n protected digestEntityContainer(schema: SchemaV3) {\r\n if (schema.EntityContainer && schema.EntityContainer.length) {\r\n const container = schema.EntityContainer[0];\r\n const ecName = container.$.Name;\r\n\r\n container.FunctionImport?.forEach((funcImport) => {\r\n const odataName = funcImport.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const opName = this.nameValidator.addOperationImportType(fqName, opConfig?.mappedName || odataName);\r\n const name = this.namingHelper.getFunctionName(opName);\r\n const usePost = funcImport.$[\"m:HttpMethod\"]?.toUpperCase() === \"POST\";\r\n const parameters = funcImport.Parameter?.map((p) => this.mapProp(p)) ?? [];\r\n\r\n // TODO: the spec allows for multiple ReturnType elements\r\n // https://docs.microsoft.com/en-us/openspecs/windows_protocols/mc-csdl/f510f36a-36bf-47f4-ac41-4a0ff921fbfa\r\n // totally unclear how the response object would look like\r\n const returnTypeDef =\r\n funcImport.$.ReturnType || (funcImport.ReturnType?.length ? funcImport.ReturnType[0].$.Type : undefined);\r\n const returnType: PropertyModel | undefined = returnTypeDef\r\n ? this.mapProp({ $: { Name: \"NO_NAME_BECAUSE_RETURN_TYPE\", Type: returnTypeDef } })\r\n : undefined;\r\n\r\n // V2 only knows the FunctionImport element\r\n // we generate the data structure for the function here\r\n this.dataModel.addUnboundOperationType(ecName, {\r\n fqName,\r\n odataName,\r\n name,\r\n paramsModelName: this.namingHelper.getOperationParamsModelName(opName),\r\n qName: this.namingHelper.getQFunctionName(opName),\r\n type: OperationTypes.Function,\r\n parameters,\r\n returnType,\r\n usePost,\r\n });\r\n\r\n this.dataModel.addFunction(fqName, {\r\n fqName,\r\n odataName,\r\n name,\r\n entitySet: funcImport.$.EntitySet!,\r\n operation: fqName,\r\n });\r\n });\r\n\r\n container.EntitySet?.forEach((entitySet) => {\r\n const odataName = entitySet.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const config = this.serviceConfigHelper.findEntitySetConfig(ecName, odataName);\r\n const name = this.nameValidator.addEntitySet(fqName, config?.mappedName || odataName);\r\n const entityType = this.dataModel.getEntityType(entitySet.$.EntityType);\r\n if (!entityType) {\r\n throw new Error(`Entity type \"${entitySet.$.EntityType}\" not found!`);\r\n }\r\n\r\n this.dataModel.addEntitySet(fqName, {\r\n fqName,\r\n odataName,\r\n name,\r\n entityType,\r\n });\r\n });\r\n }\r\n }\r\n\r\n protected mapODataType(type: string): TypeModel {\r\n switch (type) {\r\n case ODataTypesV2.Boolean:\r\n return {\r\n outputType: \"boolean\",\r\n qPath: \"QBooleanPath\",\r\n qCollection: \"QBooleanCollection\",\r\n qParam: \"QBooleanParam\",\r\n };\r\n case ODataTypesV2.Int16:\r\n case ODataTypesV2.Int32:\r\n return {\r\n outputType: \"number\",\r\n qPath: \"QNumberV2Path\",\r\n qCollection: \"QNumberV2Collection\",\r\n qParam: \"QNumberParam\",\r\n };\r\n case ODataTypesV2.Byte:\r\n case ODataTypesV2.SByte:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QStringNumberV2Param\",\r\n };\r\n case ODataTypesV2.Int64:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QInt64V2Param\",\r\n };\r\n case ODataTypesV2.Single:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QSingleV2Param\",\r\n };\r\n case ODataTypesV2.Double:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QDoubleV2Param\",\r\n };\r\n case ODataTypesV2.Decimal:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QDecimalV2Param\",\r\n };\r\n case ODataTypesV2.String:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringV2Path\",\r\n qCollection: \"QStringV2Collection\",\r\n qParam: \"QStringParam\",\r\n };\r\n case ODataTypesV2.DateTime:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QDateTimeV2Path\",\r\n qCollection: \"QDateTimeV2Collection\",\r\n qParam: \"QDateTimeV2Param\",\r\n };\r\n case ODataTypesV2.Time:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QTimeV2Path\",\r\n qCollection: \"QTimeV2Collection\",\r\n qParam: \"QTimeV2Param\",\r\n };\r\n case ODataTypesV2.DateTimeOffset:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QDateTimeOffsetV2Path\",\r\n qCollection: \"QDateTimeOffsetV2Collection\",\r\n qParam: \"QDateTimeOffsetV2Param\",\r\n };\r\n case ODataTypesV2.Binary:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QBinaryPath\",\r\n qCollection: \"QBinaryCollection\",\r\n qParam: \"QBinaryV2Param\",\r\n };\r\n case ODataTypesV2.Guid:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QGuidV2Path\",\r\n qCollection: \"QGuidV2Collection\",\r\n qParam: \"QGuidV2Param\",\r\n };\r\n default:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringV2Path\",\r\n qCollection: \"QStringV2Collection\",\r\n qParam: undefined,\r\n };\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"DataModelDigestionV2.js","sourceRoot":"","sources":["../../src/data-model/DataModelDigestionV2.ts"],"names":[],"mappings":"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","sourcesContent":["import { MappedConverterChains, loadConverters } from \"@odata2ts/converter-runtime\";\r\nimport { ODataTypesV2, ODataVersions } from \"@odata2ts/odata-core\";\r\n\r\nimport { DigesterFunction, DigestionOptions } from \"../FactoryFunctionModel.js\";\r\nimport { withNamespace } from \"./DataModel.js\";\r\nimport { Digester, TypeModel } from \"./DataModelDigestion.js\";\r\nimport { ODataVersion, OperationTypes, PropertyModel } from \"./DataTypeModel.js\";\r\nimport { ComplexType, Property } from \"./edmx/ODataEdmxModelBase.js\";\r\nimport { AssociationEnd, ComplexTypeV3, EntityTypeV3, NavigationProperty, SchemaV3 } from \"./edmx/ODataEdmxModelV3.js\";\r\nimport { NamingHelper } from \"./NamingHelper.js\";\r\n\r\n/**\r\n * Digests an EDMX schema to produce a DataModel.\r\n *\r\n * @param schemas\r\n * @param options\r\n * @param namingHelper\r\n */\r\nexport const digest: DigesterFunction<SchemaV3> = async (schemas, options, namingHelper) => {\r\n const converters = await loadConverters(ODataVersions.V2, options.converters);\r\n\r\n const digester = new DigesterV3(schemas, options, namingHelper, converters);\r\n return digester.digest();\r\n};\r\n\r\nclass DigesterV3 extends Digester<SchemaV3, EntityTypeV3, ComplexTypeV3> {\r\n constructor(\r\n schemas: Array<SchemaV3>,\r\n options: DigestionOptions,\r\n namingHelper: NamingHelper,\r\n converters: MappedConverterChains | undefined\r\n ) {\r\n super(ODataVersion.V2, schemas, options, namingHelper, converters);\r\n }\r\n\r\n private findAssociationEnd(np: NavigationProperty): AssociationEnd {\r\n for (let schema of this.schemas) {\r\n if (schema.Association) {\r\n const relationship = this.namingHelper.stripServicePrefix(np.$.Relationship);\r\n const association = schema.Association?.find((a) => a.$.Name === relationship);\r\n const result = association?.End.find((e) => e.$.Role === np.$.ToRole);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n throw new Error(`Association end couldn't be determined for NavigationProperty [${np.$.Name}]`);\r\n }\r\n\r\n protected getNavigationProps(entityType: ComplexType | EntityTypeV3): Array<Property> {\r\n // return (entityType as EntityTypeV3).NavigationProperty || [];\r\n const et = entityType as EntityTypeV3;\r\n if (et.NavigationProperty) {\r\n return et.NavigationProperty.map((np) => {\r\n const end = this.findAssociationEnd(np);\r\n const isRequired = end.$.Multiplicity !== \"*\" && !end.$.Multiplicity.startsWith(\"0..\");\r\n const isCollection = end.$.Multiplicity !== \"1\" && !end.$.Multiplicity.endsWith(\"..1\");\r\n\r\n return {\r\n $: {\r\n Name: np.$.Name,\r\n Type: isCollection ? `Collection(${end.$.Type})` : end.$.Type,\r\n Nullable: isRequired ? \"false\" : \"true\",\r\n },\r\n };\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n // in V2 all we have & need is the FunctionImport: Function & Action elements are only known in V4.\r\n protected digestOperations(schema: SchemaV3) {}\r\n\r\n protected digestEntityContainer(schema: SchemaV3) {\r\n if (schema.EntityContainer && schema.EntityContainer.length) {\r\n const container = schema.EntityContainer[0];\r\n const ecName = container.$.Name;\r\n\r\n container.FunctionImport?.forEach((funcImport) => {\r\n const odataName = funcImport.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const opName = this.nameValidator.addOperationImportType(fqName, opConfig?.mappedName || odataName);\r\n const name = this.namingHelper.getFunctionName(opName);\r\n const usePost = funcImport.$[\"m:HttpMethod\"]?.toUpperCase() === \"POST\";\r\n const parameters = funcImport.Parameter?.map((p) => this.mapProp(p)) ?? [];\r\n\r\n // TODO: the spec allows for multiple ReturnType elements\r\n // https://docs.microsoft.com/en-us/openspecs/windows_protocols/mc-csdl/f510f36a-36bf-47f4-ac41-4a0ff921fbfa\r\n // totally unclear how the response object would look like\r\n const returnTypeDef =\r\n funcImport.$.ReturnType || (funcImport.ReturnType?.length ? funcImport.ReturnType[0].$.Type : undefined);\r\n const returnType: PropertyModel | undefined = returnTypeDef\r\n ? this.mapProp({ $: { Name: \"NO_NAME_BECAUSE_RETURN_TYPE\", Type: returnTypeDef } })\r\n : undefined;\r\n\r\n // V2 only knows the FunctionImport element\r\n // we generate the data structure for the function here\r\n this.dataModel.addUnboundOperationType(ecName, {\r\n fqName,\r\n odataName,\r\n name,\r\n paramsModelName: this.namingHelper.getOperationParamsModelName(opName),\r\n qName: this.namingHelper.getQFunctionName(opName),\r\n type: OperationTypes.Function,\r\n parameters,\r\n returnType,\r\n usePost,\r\n });\r\n\r\n this.dataModel.addFunction(fqName, {\r\n fqName,\r\n odataName,\r\n name,\r\n entitySet: funcImport.$.EntitySet!,\r\n operation: fqName,\r\n });\r\n });\r\n\r\n container.EntitySet?.forEach((entitySet) => {\r\n const odataName = entitySet.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const config = this.serviceConfigHelper.findEntitySetConfig(ecName, odataName);\r\n const name = this.nameValidator.addEntitySet(fqName, config?.mappedName || odataName);\r\n const entityType = this.dataModel.getEntityType(entitySet.$.EntityType);\r\n if (!entityType) {\r\n throw new Error(`Entity type \"${entitySet.$.EntityType}\" not found!`);\r\n }\r\n\r\n this.dataModel.addEntitySet(fqName, {\r\n fqName,\r\n odataName,\r\n name,\r\n entityType,\r\n });\r\n });\r\n }\r\n }\r\n\r\n protected mapODataType(type: string): TypeModel {\r\n switch (type) {\r\n case ODataTypesV2.Boolean:\r\n return {\r\n outputType: \"boolean\",\r\n qPath: \"QBooleanPath\",\r\n qCollection: \"QBooleanCollection\",\r\n qParam: \"QBooleanParam\",\r\n };\r\n case ODataTypesV2.Int16:\r\n case ODataTypesV2.Int32:\r\n return {\r\n outputType: \"number\",\r\n qPath: \"QNumberV2Path\",\r\n qCollection: \"QNumberV2Collection\",\r\n qParam: \"QNumberParam\",\r\n };\r\n case ODataTypesV2.Byte:\r\n case ODataTypesV2.SByte:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QStringNumberV2Param\",\r\n };\r\n case ODataTypesV2.Int64:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QInt64V2Param\",\r\n };\r\n case ODataTypesV2.Single:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QSingleV2Param\",\r\n };\r\n case ODataTypesV2.Double:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QDoubleV2Param\",\r\n };\r\n case ODataTypesV2.Decimal:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringNumberV2Path\",\r\n qCollection: \"QStringNumberV2Collection\",\r\n qParam: \"QDecimalV2Param\",\r\n };\r\n case ODataTypesV2.String:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringV2Path\",\r\n qCollection: \"QStringV2Collection\",\r\n qParam: \"QStringParam\",\r\n };\r\n case ODataTypesV2.DateTime:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QDateTimeV2Path\",\r\n qCollection: \"QDateTimeV2Collection\",\r\n qParam: \"QDateTimeV2Param\",\r\n };\r\n case ODataTypesV2.Time:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QTimeV2Path\",\r\n qCollection: \"QTimeV2Collection\",\r\n qParam: \"QTimeV2Param\",\r\n };\r\n case ODataTypesV2.DateTimeOffset:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QDateTimeOffsetV2Path\",\r\n qCollection: \"QDateTimeOffsetV2Collection\",\r\n qParam: \"QDateTimeOffsetV2Param\",\r\n };\r\n case ODataTypesV2.Binary:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QBinaryPath\",\r\n qCollection: \"QBinaryCollection\",\r\n qParam: \"QBinaryV2Param\",\r\n };\r\n case ODataTypesV2.Guid:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QGuidV2Path\",\r\n qCollection: \"QGuidV2Collection\",\r\n qParam: \"QGuidV2Param\",\r\n };\r\n default:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringV2Path\",\r\n qCollection: \"QStringV2Collection\",\r\n qParam: undefined,\r\n };\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { DigesterFunction } from "../FactoryFunctionModel";
|
|
2
|
-
import { SchemaV4 } from "./edmx/ODataEdmxModelV4";
|
|
1
|
+
import { DigesterFunction } from "../FactoryFunctionModel.js";
|
|
2
|
+
import { SchemaV4 } from "./edmx/ODataEdmxModelV4.js";
|
|
3
3
|
export declare const digest: DigesterFunction<SchemaV4>;
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const DataTypeModel_1 = require("./DataTypeModel");
|
|
10
|
-
const digest = (schemas, options, namingHelper) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
11
|
-
const converters = yield (0, converter_runtime_1.loadConverters)(odata_core_1.ODataVersions.V4, options.converters);
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { loadConverters } from "@odata2ts/converter-runtime";
|
|
3
|
+
import { ODataTypesV4, ODataVersions } from "@odata2ts/odata-core";
|
|
4
|
+
import { withNamespace } from "./DataModel.js";
|
|
5
|
+
import { Digester } from "./DataModelDigestion.js";
|
|
6
|
+
import { ODataVersion } from "./DataTypeModel.js";
|
|
7
|
+
export const digest = (schemas, options, namingHelper) => __awaiter(void 0, void 0, void 0, function* () {
|
|
8
|
+
const converters = yield loadConverters(ODataVersions.V4, options.converters);
|
|
12
9
|
const digester = new DigesterV4(schemas, options, namingHelper, converters);
|
|
13
10
|
return digester.digest();
|
|
14
11
|
});
|
|
15
|
-
|
|
16
|
-
class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
12
|
+
class DigesterV4 extends Digester {
|
|
17
13
|
constructor(schemas, options, namingHelper, converters) {
|
|
18
|
-
super(
|
|
14
|
+
super(ODataVersion.V4, schemas, options, namingHelper, converters);
|
|
19
15
|
}
|
|
20
16
|
getNavigationProps(entityType) {
|
|
21
17
|
return entityType.NavigationProperty || [];
|
|
@@ -33,7 +29,7 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
33
29
|
const ecName = container.$.Name;
|
|
34
30
|
(_a = container.ActionImport) === null || _a === void 0 ? void 0 : _a.forEach((actionImport) => {
|
|
35
31
|
const odataName = actionImport.$.Name;
|
|
36
|
-
const fqName =
|
|
32
|
+
const fqName = withNamespace(ecName, odataName);
|
|
37
33
|
const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);
|
|
38
34
|
const opName = this.nameValidator.addOperationImportType(fqName, (opConfig === null || opConfig === void 0 ? void 0 : opConfig.mappedName) || odataName);
|
|
39
35
|
this.dataModel.addAction(fqName, {
|
|
@@ -45,7 +41,7 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
45
41
|
});
|
|
46
42
|
(_b = container.FunctionImport) === null || _b === void 0 ? void 0 : _b.forEach((funcImport) => {
|
|
47
43
|
const odataName = funcImport.$.Name;
|
|
48
|
-
const fqName =
|
|
44
|
+
const fqName = withNamespace(ecName, odataName);
|
|
49
45
|
const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);
|
|
50
46
|
const opName = this.nameValidator.addOperationImportType(fqName, (opConfig === null || opConfig === void 0 ? void 0 : opConfig.mappedName) || odataName);
|
|
51
47
|
this.dataModel.addFunction(fqName, {
|
|
@@ -58,9 +54,9 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
58
54
|
});
|
|
59
55
|
(_c = container.Singleton) === null || _c === void 0 ? void 0 : _c.forEach((singleton) => {
|
|
60
56
|
const odataName = singleton.$.Name;
|
|
61
|
-
const fqName =
|
|
57
|
+
const fqName = withNamespace(ecName, odataName);
|
|
62
58
|
const singletonConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);
|
|
63
|
-
const name = this.nameValidator.addSingleton(
|
|
59
|
+
const name = this.nameValidator.addSingleton(withNamespace(fqName, odataName), (singletonConfig === null || singletonConfig === void 0 ? void 0 : singletonConfig.mappedName) || odataName);
|
|
64
60
|
const navPropBindings = singleton.NavigationPropertyBinding || [];
|
|
65
61
|
const entityType = this.dataModel.getEntityType(singleton.$.Type);
|
|
66
62
|
if (!entityType) {
|
|
@@ -79,7 +75,7 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
79
75
|
});
|
|
80
76
|
(_d = container.EntitySet) === null || _d === void 0 ? void 0 : _d.forEach((entitySet) => {
|
|
81
77
|
const odataName = entitySet.$.Name;
|
|
82
|
-
const fqName =
|
|
78
|
+
const fqName = withNamespace(ecName, odataName);
|
|
83
79
|
const config = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);
|
|
84
80
|
const name = this.nameValidator.addEntitySet(fqName, (config === null || config === void 0 ? void 0 : config.mappedName) || odataName);
|
|
85
81
|
const navPropBindings = entitySet.NavigationPropertyBinding || [];
|
|
@@ -102,15 +98,15 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
102
98
|
}
|
|
103
99
|
mapODataType(type) {
|
|
104
100
|
switch (type) {
|
|
105
|
-
case
|
|
101
|
+
case ODataTypesV4.Boolean:
|
|
106
102
|
return {
|
|
107
103
|
outputType: "boolean",
|
|
108
104
|
qPath: "QBooleanPath",
|
|
109
105
|
qCollection: "QBooleanCollection",
|
|
110
106
|
qParam: "QBooleanParam",
|
|
111
107
|
};
|
|
112
|
-
case
|
|
113
|
-
case
|
|
108
|
+
case ODataTypesV4.Int64:
|
|
109
|
+
case ODataTypesV4.Decimal:
|
|
114
110
|
if (this.options.v4BigNumberAsString) {
|
|
115
111
|
return {
|
|
116
112
|
outputType: "string",
|
|
@@ -120,40 +116,40 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
120
116
|
};
|
|
121
117
|
}
|
|
122
118
|
// yes, intentional fall through!
|
|
123
|
-
case
|
|
124
|
-
case
|
|
125
|
-
case
|
|
126
|
-
case
|
|
127
|
-
case
|
|
128
|
-
case
|
|
119
|
+
case ODataTypesV4.Byte:
|
|
120
|
+
case ODataTypesV4.SByte:
|
|
121
|
+
case ODataTypesV4.Int16:
|
|
122
|
+
case ODataTypesV4.Int32:
|
|
123
|
+
case ODataTypesV4.Single:
|
|
124
|
+
case ODataTypesV4.Double:
|
|
129
125
|
return {
|
|
130
126
|
outputType: "number",
|
|
131
127
|
qPath: "QNumberPath",
|
|
132
128
|
qCollection: "QNumberCollection",
|
|
133
129
|
qParam: "QNumberParam",
|
|
134
130
|
};
|
|
135
|
-
case
|
|
131
|
+
case ODataTypesV4.String:
|
|
136
132
|
return {
|
|
137
133
|
outputType: "string",
|
|
138
134
|
qPath: "QStringPath",
|
|
139
135
|
qCollection: "QStringCollection",
|
|
140
136
|
qParam: "QStringParam",
|
|
141
137
|
};
|
|
142
|
-
case
|
|
138
|
+
case ODataTypesV4.Date:
|
|
143
139
|
return {
|
|
144
140
|
outputType: "string",
|
|
145
141
|
qPath: "QDatePath",
|
|
146
142
|
qCollection: "QDateCollection",
|
|
147
143
|
qParam: "QDateParam",
|
|
148
144
|
};
|
|
149
|
-
case
|
|
145
|
+
case ODataTypesV4.TimeOfDay:
|
|
150
146
|
return {
|
|
151
147
|
outputType: "string",
|
|
152
148
|
qPath: "QTimeOfDayPath",
|
|
153
149
|
qCollection: "QTimeOfDayCollection",
|
|
154
150
|
qParam: "QTimeOfDayParam",
|
|
155
151
|
};
|
|
156
|
-
case
|
|
152
|
+
case ODataTypesV4.DateTimeOffset:
|
|
157
153
|
return {
|
|
158
154
|
outputType: "string",
|
|
159
155
|
qPath: "QDateTimeOffsetPath",
|
|
@@ -167,14 +163,14 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
167
163
|
// qCollection: "QDurationCollection",
|
|
168
164
|
// qParam: "QDurationParam",
|
|
169
165
|
// };
|
|
170
|
-
case
|
|
166
|
+
case ODataTypesV4.Binary:
|
|
171
167
|
return {
|
|
172
168
|
outputType: "string",
|
|
173
169
|
qPath: "QBinaryPath",
|
|
174
170
|
qCollection: "QBinaryCollection",
|
|
175
171
|
qParam: "QBinaryParam",
|
|
176
172
|
};
|
|
177
|
-
case
|
|
173
|
+
case ODataTypesV4.Guid:
|
|
178
174
|
return {
|
|
179
175
|
outputType: "string",
|
|
180
176
|
qPath: "QGuidPath",
|
|
@@ -199,7 +195,7 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
199
195
|
var _a, _b, _c, _d;
|
|
200
196
|
const odataName = op.$.Name;
|
|
201
197
|
const isBound = op.$.IsBound === "true";
|
|
202
|
-
const fqName =
|
|
198
|
+
const fqName = withNamespace(namespace, odataName);
|
|
203
199
|
const opConfig = this.serviceConfigHelper.findOperationTypeConfig(ns, odataName);
|
|
204
200
|
const params = (_b = (_a = op.Parameter) === null || _a === void 0 ? void 0 : _a.map((p) => this.mapProp(p))) !== null && _b !== void 0 ? _b : [];
|
|
205
201
|
const returnType = (_c = op.ReturnType) === null || _c === void 0 ? void 0 : _c.map((rt) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataModelDigestionV4.js","sourceRoot":"","sources":["../../src/data-model/DataModelDigestionV4.ts"],"names":[],"mappings":"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","sourcesContent":["import { MappedConverterChains, loadConverters } from \"@odata2ts/converter-runtime\";\r\nimport { ODataTypesV4, ODataVersions } from \"@odata2ts/odata-core\";\r\n\r\nimport { DigesterFunction, DigestionOptions } from \"../FactoryFunctionModel\";\r\nimport { NamespaceWithAlias, withNamespace } from \"./DataModel\";\r\nimport { Digester, TypeModel } from \"./DataModelDigestion\";\r\nimport { ODataVersion, OperationType, OperationTypes, PropertyModel } from \"./DataTypeModel\";\r\nimport { ComplexType, Property } from \"./edmx/ODataEdmxModelBase\";\r\nimport { ComplexTypeV4, EntityTypeV4, Operation, SchemaV4 } from \"./edmx/ODataEdmxModelV4\";\r\nimport { NamingHelper } from \"./NamingHelper\";\r\n\r\nexport const digest: DigesterFunction<SchemaV4> = async (schemas, options, namingHelper) => {\r\n const converters = await loadConverters(ODataVersions.V4, options.converters);\r\n\r\n const digester = new DigesterV4(schemas, options, namingHelper, converters);\r\n return digester.digest();\r\n};\r\n\r\nclass DigesterV4 extends Digester<SchemaV4, EntityTypeV4, ComplexTypeV4> {\r\n constructor(\r\n schemas: Array<SchemaV4>,\r\n options: DigestionOptions,\r\n namingHelper: NamingHelper,\r\n converters?: MappedConverterChains\r\n ) {\r\n super(ODataVersion.V4, schemas, options, namingHelper, converters);\r\n }\r\n\r\n protected getNavigationProps(entityType: ComplexType | EntityTypeV4): Array<Property> {\r\n return (entityType as EntityTypeV4).NavigationProperty || [];\r\n }\r\n\r\n protected digestOperations(schema: SchemaV4) {\r\n const nsWithAlias: NamespaceWithAlias = [schema.$.Namespace, schema.$.Alias];\r\n // functions & actions\r\n this.addOperations(nsWithAlias, schema.Function, OperationTypes.Function);\r\n this.addOperations(nsWithAlias, schema.Action, OperationTypes.Action);\r\n }\r\n\r\n protected digestEntityContainer(schema: SchemaV4) {\r\n if (schema.EntityContainer && schema.EntityContainer.length) {\r\n const container = schema.EntityContainer[0];\r\n\r\n const ecName = container.$.Name;\r\n\r\n container.ActionImport?.forEach((actionImport) => {\r\n const odataName = actionImport.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const opName = this.nameValidator.addOperationImportType(fqName, opConfig?.mappedName || odataName);\r\n\r\n this.dataModel.addAction(fqName, {\r\n fqName,\r\n name: this.namingHelper.getActionName(opName),\r\n odataName: actionImport.$.Name,\r\n operation: actionImport.$.Action,\r\n });\r\n });\r\n\r\n container.FunctionImport?.forEach((funcImport) => {\r\n const odataName = funcImport.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const opName = this.nameValidator.addOperationImportType(fqName, opConfig?.mappedName || odataName);\r\n\r\n this.dataModel.addFunction(fqName, {\r\n fqName,\r\n odataName,\r\n name: this.namingHelper.getFunctionName(opName),\r\n operation: funcImport.$.Function,\r\n entitySet: funcImport.$.EntitySet,\r\n });\r\n });\r\n\r\n container.Singleton?.forEach((singleton) => {\r\n const odataName = singleton.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const singletonConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const name = this.nameValidator.addSingleton(\r\n withNamespace(fqName, odataName),\r\n singletonConfig?.mappedName || odataName\r\n );\r\n const navPropBindings = singleton.NavigationPropertyBinding || [];\r\n const entityType = this.dataModel.getEntityType(singleton.$.Type);\r\n if (!entityType) {\r\n throw new Error(`Entity type \"${singleton.$.Type}\" not found!`);\r\n }\r\n\r\n this.dataModel.addSingleton(fqName, {\r\n fqName,\r\n odataName,\r\n name,\r\n entityType,\r\n navPropBinding: navPropBindings.map((binding) => ({\r\n path: this.namingHelper.stripServicePrefix(binding.$.Path),\r\n target: binding.$.Target,\r\n })),\r\n });\r\n });\r\n\r\n container.EntitySet?.forEach((entitySet) => {\r\n const odataName = entitySet.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const config = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const name = this.nameValidator.addEntitySet(fqName, config?.mappedName || odataName);\r\n const navPropBindings = entitySet.NavigationPropertyBinding || [];\r\n const entityType = this.dataModel.getEntityType(entitySet.$.EntityType);\r\n if (!entityType) {\r\n throw new Error(`Entity type \"${entitySet.$.EntityType}\" not found!`);\r\n }\r\n\r\n this.dataModel.addEntitySet(fqName, {\r\n fqName,\r\n odataName,\r\n name,\r\n entityType,\r\n navPropBinding: navPropBindings.map((binding) => ({\r\n path: this.namingHelper.stripServicePrefix(binding.$.Path),\r\n target: binding.$.Target,\r\n })),\r\n });\r\n });\r\n }\r\n }\r\n\r\n protected mapODataType(type: string): TypeModel {\r\n switch (type) {\r\n case ODataTypesV4.Boolean:\r\n return {\r\n outputType: \"boolean\",\r\n qPath: \"QBooleanPath\",\r\n qCollection: \"QBooleanCollection\",\r\n qParam: \"QBooleanParam\",\r\n };\r\n case ODataTypesV4.Int64:\r\n case ODataTypesV4.Decimal:\r\n if (this.options.v4BigNumberAsString) {\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QBigNumberPath\",\r\n qCollection: \"QBigNumberCollection\",\r\n qParam: \"QBigNumberParam\",\r\n };\r\n }\r\n // yes, intentional fall through!\r\n case ODataTypesV4.Byte:\r\n case ODataTypesV4.SByte:\r\n case ODataTypesV4.Int16:\r\n case ODataTypesV4.Int32:\r\n case ODataTypesV4.Single:\r\n case ODataTypesV4.Double:\r\n return {\r\n outputType: \"number\",\r\n qPath: \"QNumberPath\",\r\n qCollection: \"QNumberCollection\",\r\n qParam: \"QNumberParam\",\r\n };\r\n case ODataTypesV4.String:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringPath\",\r\n qCollection: \"QStringCollection\",\r\n qParam: \"QStringParam\",\r\n };\r\n case ODataTypesV4.Date:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QDatePath\",\r\n qCollection: \"QDateCollection\",\r\n qParam: \"QDateParam\",\r\n };\r\n case ODataTypesV4.TimeOfDay:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QTimeOfDayPath\",\r\n qCollection: \"QTimeOfDayCollection\",\r\n qParam: \"QTimeOfDayParam\",\r\n };\r\n case ODataTypesV4.DateTimeOffset:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QDateTimeOffsetPath\",\r\n qCollection: \"QDateTimeOffsetCollection\",\r\n qParam: \"QDateTimeOffsetParam\",\r\n };\r\n // case ODataTypesV4.Duration:\r\n // return {\r\n // outputType: \"string\",\r\n // qPath: \"QDurationPath\",\r\n // qCollection: \"QDurationCollection\",\r\n // qParam: \"QDurationParam\",\r\n // };\r\n case ODataTypesV4.Binary:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QBinaryPath\",\r\n qCollection: \"QBinaryCollection\",\r\n qParam: \"QBinaryParam\",\r\n };\r\n case ODataTypesV4.Guid:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QGuidPath\",\r\n qCollection: \"QGuidCollection\",\r\n qParam: \"QGuidParam\",\r\n };\r\n default:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringPath\",\r\n qCollection: \"QStringCollection\",\r\n qParam: undefined,\r\n };\r\n }\r\n }\r\n\r\n private addOperations(ns: NamespaceWithAlias, operations: Array<Operation> | undefined, type: OperationTypes) {\r\n const [namespace] = ns;\r\n if (!operations || !operations.length) {\r\n return;\r\n }\r\n\r\n operations.forEach((op) => {\r\n const odataName = op.$.Name;\r\n const isBound = op.$.IsBound === \"true\";\r\n const fqName = withNamespace(namespace, odataName);\r\n const opConfig = this.serviceConfigHelper.findOperationTypeConfig(ns, odataName);\r\n const params: Array<PropertyModel> = op.Parameter?.map((p) => this.mapProp(p)) ?? [];\r\n const returnType: PropertyModel | undefined = op.ReturnType?.map((rt) => {\r\n return this.mapProp({ ...rt, $: { Name: \"NO_NAME_BECAUSE_RETURN_TYPE\", ...rt.$ } });\r\n })[0];\r\n\r\n if (isBound && !params.length) {\r\n throw new Error(`IllegalState: Operation '${odataName}' is bound, but has no parameters!`);\r\n }\r\n\r\n const bindingProp = isBound ? params.shift() : undefined;\r\n const bindingEntityName = bindingProp ? this.dataModel.getModel(bindingProp!.fqType)?.name : undefined;\r\n\r\n const opName = bindingEntityName\r\n ? this.nameValidator.addBoundOperationType(bindingEntityName, fqName, opConfig?.mappedName || odataName)\r\n : this.nameValidator.addUnboundOperationType(fqName, opConfig?.mappedName || odataName);\r\n\r\n const name =\r\n type === OperationTypes.Function\r\n ? this.namingHelper.getFunctionName(opName)\r\n : this.namingHelper.getActionName(opName);\r\n const qName =\r\n type === OperationTypes.Function\r\n ? this.namingHelper.getQFunctionName(opName, bindingEntityName)\r\n : this.namingHelper.getQActionName(opName, bindingEntityName);\r\n const opType: OperationType = {\r\n fqName,\r\n odataName: isBound ? fqName : odataName,\r\n name,\r\n qName,\r\n paramsModelName: this.namingHelper.getOperationParamsModelName(opName, bindingEntityName),\r\n type,\r\n parameters: params,\r\n returnType,\r\n };\r\n\r\n if (bindingProp) {\r\n this.dataModel.addBoundOperationType(namespace, bindingProp, opType);\r\n } else {\r\n this.dataModel.addUnboundOperationType(namespace, opType);\r\n }\r\n });\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"DataModelDigestionV4.js","sourceRoot":"","sources":["../../src/data-model/DataModelDigestionV4.ts"],"names":[],"mappings":"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","sourcesContent":["import { MappedConverterChains, loadConverters } from \"@odata2ts/converter-runtime\";\r\nimport { ODataTypesV4, ODataVersions } from \"@odata2ts/odata-core\";\r\n\r\nimport { DigesterFunction, DigestionOptions } from \"../FactoryFunctionModel.js\";\r\nimport { NamespaceWithAlias, withNamespace } from \"./DataModel.js\";\r\nimport { Digester, TypeModel } from \"./DataModelDigestion.js\";\r\nimport { ODataVersion, OperationType, OperationTypes, PropertyModel } from \"./DataTypeModel.js\";\r\nimport { ComplexType, Property } from \"./edmx/ODataEdmxModelBase.js\";\r\nimport { ComplexTypeV4, EntityTypeV4, Operation, SchemaV4 } from \"./edmx/ODataEdmxModelV4.js\";\r\nimport { NamingHelper } from \"./NamingHelper.js\";\r\n\r\nexport const digest: DigesterFunction<SchemaV4> = async (schemas, options, namingHelper) => {\r\n const converters = await loadConverters(ODataVersions.V4, options.converters);\r\n\r\n const digester = new DigesterV4(schemas, options, namingHelper, converters);\r\n return digester.digest();\r\n};\r\n\r\nclass DigesterV4 extends Digester<SchemaV4, EntityTypeV4, ComplexTypeV4> {\r\n constructor(\r\n schemas: Array<SchemaV4>,\r\n options: DigestionOptions,\r\n namingHelper: NamingHelper,\r\n converters?: MappedConverterChains\r\n ) {\r\n super(ODataVersion.V4, schemas, options, namingHelper, converters);\r\n }\r\n\r\n protected getNavigationProps(entityType: ComplexType | EntityTypeV4): Array<Property> {\r\n return (entityType as EntityTypeV4).NavigationProperty || [];\r\n }\r\n\r\n protected digestOperations(schema: SchemaV4) {\r\n const nsWithAlias: NamespaceWithAlias = [schema.$.Namespace, schema.$.Alias];\r\n // functions & actions\r\n this.addOperations(nsWithAlias, schema.Function, OperationTypes.Function);\r\n this.addOperations(nsWithAlias, schema.Action, OperationTypes.Action);\r\n }\r\n\r\n protected digestEntityContainer(schema: SchemaV4) {\r\n if (schema.EntityContainer && schema.EntityContainer.length) {\r\n const container = schema.EntityContainer[0];\r\n\r\n const ecName = container.$.Name;\r\n\r\n container.ActionImport?.forEach((actionImport) => {\r\n const odataName = actionImport.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const opName = this.nameValidator.addOperationImportType(fqName, opConfig?.mappedName || odataName);\r\n\r\n this.dataModel.addAction(fqName, {\r\n fqName,\r\n name: this.namingHelper.getActionName(opName),\r\n odataName: actionImport.$.Name,\r\n operation: actionImport.$.Action,\r\n });\r\n });\r\n\r\n container.FunctionImport?.forEach((funcImport) => {\r\n const odataName = funcImport.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const opConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const opName = this.nameValidator.addOperationImportType(fqName, opConfig?.mappedName || odataName);\r\n\r\n this.dataModel.addFunction(fqName, {\r\n fqName,\r\n odataName,\r\n name: this.namingHelper.getFunctionName(opName),\r\n operation: funcImport.$.Function,\r\n entitySet: funcImport.$.EntitySet,\r\n });\r\n });\r\n\r\n container.Singleton?.forEach((singleton) => {\r\n const odataName = singleton.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const singletonConfig = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const name = this.nameValidator.addSingleton(\r\n withNamespace(fqName, odataName),\r\n singletonConfig?.mappedName || odataName\r\n );\r\n const navPropBindings = singleton.NavigationPropertyBinding || [];\r\n const entityType = this.dataModel.getEntityType(singleton.$.Type);\r\n if (!entityType) {\r\n throw new Error(`Entity type \"${singleton.$.Type}\" not found!`);\r\n }\r\n\r\n this.dataModel.addSingleton(fqName, {\r\n fqName,\r\n odataName,\r\n name,\r\n entityType,\r\n navPropBinding: navPropBindings.map((binding) => ({\r\n path: this.namingHelper.stripServicePrefix(binding.$.Path),\r\n target: binding.$.Target,\r\n })),\r\n });\r\n });\r\n\r\n container.EntitySet?.forEach((entitySet) => {\r\n const odataName = entitySet.$.Name;\r\n const fqName = withNamespace(ecName, odataName);\r\n const config = this.serviceConfigHelper.findOperationImportConfig(ecName, odataName);\r\n const name = this.nameValidator.addEntitySet(fqName, config?.mappedName || odataName);\r\n const navPropBindings = entitySet.NavigationPropertyBinding || [];\r\n const entityType = this.dataModel.getEntityType(entitySet.$.EntityType);\r\n if (!entityType) {\r\n throw new Error(`Entity type \"${entitySet.$.EntityType}\" not found!`);\r\n }\r\n\r\n this.dataModel.addEntitySet(fqName, {\r\n fqName,\r\n odataName,\r\n name,\r\n entityType,\r\n navPropBinding: navPropBindings.map((binding) => ({\r\n path: this.namingHelper.stripServicePrefix(binding.$.Path),\r\n target: binding.$.Target,\r\n })),\r\n });\r\n });\r\n }\r\n }\r\n\r\n protected mapODataType(type: string): TypeModel {\r\n switch (type) {\r\n case ODataTypesV4.Boolean:\r\n return {\r\n outputType: \"boolean\",\r\n qPath: \"QBooleanPath\",\r\n qCollection: \"QBooleanCollection\",\r\n qParam: \"QBooleanParam\",\r\n };\r\n case ODataTypesV4.Int64:\r\n case ODataTypesV4.Decimal:\r\n if (this.options.v4BigNumberAsString) {\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QBigNumberPath\",\r\n qCollection: \"QBigNumberCollection\",\r\n qParam: \"QBigNumberParam\",\r\n };\r\n }\r\n // yes, intentional fall through!\r\n case ODataTypesV4.Byte:\r\n case ODataTypesV4.SByte:\r\n case ODataTypesV4.Int16:\r\n case ODataTypesV4.Int32:\r\n case ODataTypesV4.Single:\r\n case ODataTypesV4.Double:\r\n return {\r\n outputType: \"number\",\r\n qPath: \"QNumberPath\",\r\n qCollection: \"QNumberCollection\",\r\n qParam: \"QNumberParam\",\r\n };\r\n case ODataTypesV4.String:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringPath\",\r\n qCollection: \"QStringCollection\",\r\n qParam: \"QStringParam\",\r\n };\r\n case ODataTypesV4.Date:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QDatePath\",\r\n qCollection: \"QDateCollection\",\r\n qParam: \"QDateParam\",\r\n };\r\n case ODataTypesV4.TimeOfDay:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QTimeOfDayPath\",\r\n qCollection: \"QTimeOfDayCollection\",\r\n qParam: \"QTimeOfDayParam\",\r\n };\r\n case ODataTypesV4.DateTimeOffset:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QDateTimeOffsetPath\",\r\n qCollection: \"QDateTimeOffsetCollection\",\r\n qParam: \"QDateTimeOffsetParam\",\r\n };\r\n // case ODataTypesV4.Duration:\r\n // return {\r\n // outputType: \"string\",\r\n // qPath: \"QDurationPath\",\r\n // qCollection: \"QDurationCollection\",\r\n // qParam: \"QDurationParam\",\r\n // };\r\n case ODataTypesV4.Binary:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QBinaryPath\",\r\n qCollection: \"QBinaryCollection\",\r\n qParam: \"QBinaryParam\",\r\n };\r\n case ODataTypesV4.Guid:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QGuidPath\",\r\n qCollection: \"QGuidCollection\",\r\n qParam: \"QGuidParam\",\r\n };\r\n default:\r\n return {\r\n outputType: \"string\",\r\n qPath: \"QStringPath\",\r\n qCollection: \"QStringCollection\",\r\n qParam: undefined,\r\n };\r\n }\r\n }\r\n\r\n private addOperations(ns: NamespaceWithAlias, operations: Array<Operation> | undefined, type: OperationTypes) {\r\n const [namespace] = ns;\r\n if (!operations || !operations.length) {\r\n return;\r\n }\r\n\r\n operations.forEach((op) => {\r\n const odataName = op.$.Name;\r\n const isBound = op.$.IsBound === \"true\";\r\n const fqName = withNamespace(namespace, odataName);\r\n const opConfig = this.serviceConfigHelper.findOperationTypeConfig(ns, odataName);\r\n const params: Array<PropertyModel> = op.Parameter?.map((p) => this.mapProp(p)) ?? [];\r\n const returnType: PropertyModel | undefined = op.ReturnType?.map((rt) => {\r\n return this.mapProp({ ...rt, $: { Name: \"NO_NAME_BECAUSE_RETURN_TYPE\", ...rt.$ } });\r\n })[0];\r\n\r\n if (isBound && !params.length) {\r\n throw new Error(`IllegalState: Operation '${odataName}' is bound, but has no parameters!`);\r\n }\r\n\r\n const bindingProp = isBound ? params.shift() : undefined;\r\n const bindingEntityName = bindingProp ? this.dataModel.getModel(bindingProp!.fqType)?.name : undefined;\r\n\r\n const opName = bindingEntityName\r\n ? this.nameValidator.addBoundOperationType(bindingEntityName, fqName, opConfig?.mappedName || odataName)\r\n : this.nameValidator.addUnboundOperationType(fqName, opConfig?.mappedName || odataName);\r\n\r\n const name =\r\n type === OperationTypes.Function\r\n ? this.namingHelper.getFunctionName(opName)\r\n : this.namingHelper.getActionName(opName);\r\n const qName =\r\n type === OperationTypes.Function\r\n ? this.namingHelper.getQFunctionName(opName, bindingEntityName)\r\n : this.namingHelper.getQActionName(opName, bindingEntityName);\r\n const opType: OperationType = {\r\n fqName,\r\n odataName: isBound ? fqName : odataName,\r\n name,\r\n qName,\r\n paramsModelName: this.namingHelper.getOperationParamsModelName(opName, bindingEntityName),\r\n type,\r\n parameters: params,\r\n returnType,\r\n };\r\n\r\n if (bindingProp) {\r\n this.dataModel.addBoundOperationType(namespace, bindingProp, opType);\r\n } else {\r\n this.dataModel.addUnboundOperationType(namespace, opType);\r\n }\r\n });\r\n }\r\n}\r\n"]}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ODataVersion = void 0;
|
|
4
|
-
var ODataVersion;
|
|
1
|
+
export var ODataVersion;
|
|
5
2
|
(function (ODataVersion) {
|
|
6
3
|
ODataVersion["V2"] = "2.0";
|
|
7
4
|
ODataVersion["V4"] = "4.0";
|
|
8
|
-
})(ODataVersion || (
|
|
5
|
+
})(ODataVersion || (ODataVersion = {}));
|
|
9
6
|
//# sourceMappingURL=DataTypeModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTypeModel.js","sourceRoot":"","sources":["../../src/data-model/DataTypeModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataTypeModel.js","sourceRoot":"","sources":["../../src/data-model/DataTypeModel.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,0BAAU,CAAA;IACV,0BAAU,CAAA;AACZ,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB","sourcesContent":["import { ValueConverterImport } from \"@odata2ts/converter-runtime\";\r\n\r\nimport { Modes } from \"../OptionModel.js\";\r\n\r\nexport enum ODataVersion {\r\n V2 = \"2.0\",\r\n V4 = \"4.0\",\r\n}\r\n\r\nexport const enum DataTypes {\r\n PrimitiveType = \"PrimitiveType\",\r\n EnumType = \"EnumType\",\r\n ComplexType = \"ComplexType\",\r\n ModelType = \"ModelType\",\r\n}\r\n\r\nexport const enum OperationTypes {\r\n Function = \"Function\",\r\n Action = \"Action\",\r\n}\r\n\r\nexport interface PropertyModel {\r\n odataName: string;\r\n name: string;\r\n odataType: string;\r\n fqType: string;\r\n type: string;\r\n typeModule?: string;\r\n qObject?: string;\r\n qPath: string;\r\n qParam?: string;\r\n required: boolean;\r\n isCollection: boolean;\r\n dataType: DataTypes;\r\n converters?: Array<ValueConverterImport>;\r\n managed?: boolean;\r\n}\r\n\r\nexport type ModelType = EntityType | ComplexType | EnumType;\r\n\r\nexport interface EntityType extends ComplexType {\r\n id: {\r\n // fully qualified name of entity to which this id belongs (might have been inherited)\r\n fqName: string;\r\n // that's the name of the param model for the id function\r\n modelName: string;\r\n // that's the name of the id function which is a q-object\r\n qName: string;\r\n };\r\n generateId: boolean;\r\n keyNames: Array<string>;\r\n keys: Array<PropertyModel>;\r\n getKeyUnion(): string;\r\n}\r\n\r\nexport interface ComplexType {\r\n dataType: DataTypes;\r\n fqName: string;\r\n odataName: string;\r\n name: string;\r\n modelName: string;\r\n editableName: string;\r\n qName: string;\r\n serviceName: string;\r\n serviceCollectionName: string;\r\n folderPath: string;\r\n props: Array<PropertyModel>;\r\n baseProps: Array<PropertyModel>;\r\n baseClasses: Array<string>;\r\n finalBaseClass: string | undefined;\r\n abstract: boolean;\r\n open: boolean;\r\n genMode: Modes;\r\n}\r\n\r\nexport interface EnumType {\r\n dataType: DataTypes;\r\n odataName: string;\r\n fqName: string;\r\n name: string;\r\n modelName: string;\r\n folderPath: string;\r\n members: Array<string>;\r\n}\r\n\r\nexport interface OperationType {\r\n fqName: string;\r\n odataName: string;\r\n name: string;\r\n qName: string;\r\n paramsModelName: string;\r\n type: OperationTypes;\r\n parameters: Array<PropertyModel>;\r\n returnType?: ReturnTypeModel;\r\n usePost?: boolean;\r\n overrides?: Array<Array<PropertyModel>>;\r\n}\r\n\r\nexport interface ReturnTypeModel extends PropertyModel {}\r\n\r\nexport type EntityContainerModel = {\r\n entitySets: { [name: string]: EntitySetType };\r\n singletons: { [name: string]: SingletonType };\r\n functions: { [name: string]: FunctionImportType };\r\n actions: { [name: string]: ActionImportType };\r\n};\r\n\r\nexport interface SingletonType {\r\n fqName: string;\r\n odataName: string;\r\n name: string;\r\n entityType: EntityType;\r\n navPropBinding?: Array<NavPropBindingType>;\r\n}\r\n\r\nexport interface EntitySetType {\r\n fqName: string;\r\n odataName: string;\r\n name: string;\r\n entityType: EntityType;\r\n navPropBinding?: Array<NavPropBindingType>;\r\n}\r\n\r\nexport interface NavPropBindingType {\r\n path: string;\r\n target: string;\r\n}\r\n\r\nexport interface ActionImportType {\r\n fqName: string;\r\n odataName: string;\r\n name: string;\r\n operation: string;\r\n}\r\n\r\nexport interface FunctionImportType extends ActionImportType {\r\n entitySet: string;\r\n}\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { RunOptions } from "../OptionModel";
|
|
2
|
-
import { NamespaceWithAlias } from "./DataModel";
|
|
1
|
+
import { RunOptions } from "../OptionModel.js";
|
|
2
|
+
import { NamespaceWithAlias } from "./DataModel.js";
|
|
3
3
|
export interface NamingHelperSettings extends Pick<RunOptions, "allowRenaming" | "naming"> {
|
|
4
4
|
}
|
|
5
5
|
export declare class NamingHelper {
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.NamingHelper = void 0;
|
|
4
|
-
const camel_case_1 = require("camel-case");
|
|
5
|
-
const constant_case_1 = require("constant-case");
|
|
6
|
-
const pascal_case_1 = require("pascal-case");
|
|
7
|
-
const snake_case_1 = require("snake-case");
|
|
8
|
-
const NamingModel_1 = require("../NamingModel");
|
|
1
|
+
import { camelCase, constantCase, kebabCase, pascalCase, snakeCase } from "change-case";
|
|
2
|
+
import { NamingStrategies } from "../NamingModel.js";
|
|
9
3
|
function getNamingStrategyImpl(strategy) {
|
|
10
4
|
switch (strategy) {
|
|
11
|
-
case
|
|
12
|
-
return
|
|
13
|
-
case
|
|
14
|
-
return
|
|
15
|
-
case
|
|
16
|
-
return
|
|
17
|
-
case
|
|
18
|
-
return
|
|
5
|
+
case NamingStrategies.CAMEL_CASE:
|
|
6
|
+
return camelCase;
|
|
7
|
+
case NamingStrategies.PASCAL_CASE:
|
|
8
|
+
return pascalCase;
|
|
9
|
+
case NamingStrategies.CONSTANT_CASE:
|
|
10
|
+
return constantCase;
|
|
11
|
+
case NamingStrategies.SNAKE_CASE:
|
|
12
|
+
return snakeCase;
|
|
19
13
|
default:
|
|
20
14
|
return undefined;
|
|
21
15
|
}
|
|
@@ -23,7 +17,7 @@ function getNamingStrategyImpl(strategy) {
|
|
|
23
17
|
const noopNamingFunction = (value, options) => {
|
|
24
18
|
return ((options === null || options === void 0 ? void 0 : options.prefix) || "") + value + ((options === null || options === void 0 ? void 0 : options.suffix) || "");
|
|
25
19
|
};
|
|
26
|
-
class NamingHelper {
|
|
20
|
+
export class NamingHelper {
|
|
27
21
|
constructor(options, mainServiceName, namespaces) {
|
|
28
22
|
var _a;
|
|
29
23
|
this.getServiceName = (name) => {
|
|
@@ -240,8 +234,7 @@ class NamingHelper {
|
|
|
240
234
|
return this.getName(name, this.namingFunction(opts === null || opts === void 0 ? void 0 : opts.namingStrategy), opts);
|
|
241
235
|
}
|
|
242
236
|
getFolderPath(namespace, name) {
|
|
243
|
-
return `${(
|
|
237
|
+
return `${kebabCase(namespace)}/${kebabCase(name)}`;
|
|
244
238
|
}
|
|
245
239
|
}
|
|
246
|
-
exports.NamingHelper = NamingHelper;
|
|
247
240
|
//# sourceMappingURL=NamingHelper.js.map
|