@odata2ts/odata2ts 0.36.2 → 0.36.3
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
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.36.3](https://github.com/odata2ts/odata2ts/compare/@odata2ts/odata2ts@0.36.2...@odata2ts/odata2ts@0.36.3) (2024-08-12)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **generator:** v4 types like Edm.Date, Edm.TimeOfDay and Emd.Duration are not recognized ([#295](https://github.com/odata2ts/odata2ts/issues/295)) ([3b63969](https://github.com/odata2ts/odata2ts/commit/3b639699217ba234cf9e5508f24a64c4d6f3d3dd))
|
|
11
|
+
|
|
6
12
|
## [0.36.2](https://github.com/odata2ts/odata2ts/compare/@odata2ts/odata2ts@0.36.1...@odata2ts/odata2ts@0.36.2) (2024-08-01)
|
|
7
13
|
|
|
8
14
|
### Bug Fixes
|
|
@@ -8,7 +8,7 @@ const DataModel_1 = require("./DataModel");
|
|
|
8
8
|
const DataModelDigestion_1 = require("./DataModelDigestion");
|
|
9
9
|
const DataTypeModel_1 = require("./DataTypeModel");
|
|
10
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.
|
|
11
|
+
const converters = yield (0, converter_runtime_1.loadConverters)(odata_core_1.ODataVersions.V4, options.converters);
|
|
12
12
|
const digester = new DigesterV4(schemas, options, namingHelper, converters);
|
|
13
13
|
return digester.digest();
|
|
14
14
|
});
|
|
@@ -160,6 +160,13 @@ class DigesterV4 extends DataModelDigestion_1.Digester {
|
|
|
160
160
|
qCollection: "QDateTimeOffsetCollection",
|
|
161
161
|
qParam: "QDateTimeOffsetParam",
|
|
162
162
|
};
|
|
163
|
+
// case ODataTypesV4.Duration:
|
|
164
|
+
// return {
|
|
165
|
+
// outputType: "string",
|
|
166
|
+
// qPath: "QDurationPath",
|
|
167
|
+
// qCollection: "QDurationCollection",
|
|
168
|
+
// qParam: "QDurationParam",
|
|
169
|
+
// };
|
|
163
170
|
case odata_core_1.ODataTypesV4.Binary:
|
|
164
171
|
return {
|
|
165
172
|
outputType: "string",
|
|
@@ -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.V2, 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.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\";\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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odata2ts/odata2ts",
|
|
3
|
-
"version": "0.36.
|
|
3
|
+
"version": "0.36.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -90,6 +90,6 @@
|
|
|
90
90
|
"typescript": "^5.1.3"
|
|
91
91
|
},
|
|
92
92
|
"types": "./lib/index.d.ts",
|
|
93
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "8a0ef94131c114b44edcddc0bc0af4fc5ab800fd",
|
|
94
94
|
"readme": "README.md"
|
|
95
95
|
}
|