UNPKG

@odata2ts/odata2ts

Version:

Flexible generator to produce various TypeScript artefacts (from simple model interfaces to complete odata clients) from OData metadata files

177 lines 5.38 kB
import { __rest } from "tslib"; import deepmerge from "deepmerge"; import { NamingStrategies } from "./NamingModel.js"; import { EmitModes, Modes } from "./OptionModel.js"; /** * The default configuration. */ const defaultConfig = { sourceUrlConfig: {}, refreshFile: false, mode: Modes.all, emitMode: EmitModes.js_dts, debug: false, prettier: false, tsconfig: "tsconfig.json", converters: [], skipEditableModels: false, skipIdModels: false, skipOperations: false, skipComments: false, enablePrimitivePropertyServices: false, disableAutoManagedKey: false, allowRenaming: false, v2ModelsWithExtraResultsWrapping: false, v4BigNumberAsString: false, disableAutomaticNameClashResolution: false, bundledFileGeneration: true, enumType: "string", naming: { models: { namingStrategy: NamingStrategies.PASCAL_CASE, propNamingStrategy: NamingStrategies.CAMEL_CASE, editableModels: { prefix: "Editable", suffix: "", applyModelNaming: true, }, idModels: { prefix: "", suffix: "Id", applyModelNaming: true, }, operationParamModels: { prefix: "", suffix: "Params", applyModelNaming: true, }, fileName: { namingStrategy: NamingStrategies.PASCAL_CASE, prefix: "", suffix: "Model", }, }, queryObjects: { namingStrategy: NamingStrategies.PASCAL_CASE, propNamingStrategy: NamingStrategies.CAMEL_CASE, prefix: "Q", suffix: "", idFunctions: { prefix: "", suffix: "Id", }, fileName: { namingStrategy: NamingStrategies.PASCAL_CASE, prefix: "Q", suffix: "", }, baseType: { applyQNaming: true, prefix: "", suffix: "BaseType", }, }, services: { prefix: "", suffix: "Service", namingStrategy: NamingStrategies.PASCAL_CASE, main: { applyServiceNaming: true, }, collection: { prefix: "", suffix: "Collection", applyServiceNaming: true, }, operations: { namingStrategy: NamingStrategies.CAMEL_CASE, }, relatedServiceGetter: { namingStrategy: NamingStrategies.CAMEL_CASE, prefix: "", suffix: "", }, privateProps: { namingStrategy: NamingStrategies.CAMEL_CASE, prefix: "_", suffix: "", }, }, }, propertiesByName: [], byTypeAndName: [], }; const { models, queryObjects, services } = defaultConfig.naming; const minimalNamingConfig = { models: { fileName: { prefix: models.fileName.prefix, suffix: models.fileName.suffix, }, idModels: { applyModelNaming: true, prefix: models.idModels.prefix, suffix: models.idModels.suffix, }, editableModels: { applyModelNaming: true, prefix: models.editableModels.prefix, suffix: models.editableModels.suffix, }, operationParamModels: { applyModelNaming: true, prefix: models.operationParamModels.prefix, suffix: models.operationParamModels.suffix, }, }, queryObjects: { prefix: queryObjects.prefix, suffix: queryObjects.suffix, fileName: { prefix: queryObjects.fileName.prefix, suffix: queryObjects.fileName.suffix, }, idFunctions: { prefix: queryObjects.idFunctions.prefix, suffix: queryObjects.idFunctions.suffix, }, baseType: { prefix: queryObjects.baseType.prefix, suffix: queryObjects.baseType.suffix, }, }, services: { prefix: services.prefix, suffix: services.suffix, main: { applyServiceNaming: true, }, collection: { applyServiceNaming: true, prefix: services.collection.prefix, suffix: services.collection.suffix, }, privateProps: { prefix: services.privateProps.prefix, suffix: services.privateProps.suffix, }, relatedServiceGetter: { prefix: services.relatedServiceGetter.prefix, suffix: services.relatedServiceGetter.suffix, }, }, }; /** * Creates a defensive copy of the default config. */ export function getDefaultConfig() { return deepmerge(defaultConfig, {}); } /** * Creates a defensive copy of the minimal config: minimal in respect to naming. */ export function getMinimalConfig() { const { naming } = defaultConfig, passThrough = __rest(defaultConfig, ["naming"]); return deepmerge(passThrough, { naming: minimalNamingConfig }); } //# sourceMappingURL=defaultConfig.js.map