@odata-effect/odata-effect-generator 0.1.2 → 0.3.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/README.md +232 -5
- package/dist/cjs/Cli.js +5 -1
- package/dist/cjs/Cli.js.map +1 -1
- package/dist/cjs/generator/Generator.js +35 -25
- package/dist/cjs/generator/Generator.js.map +1 -1
- package/dist/cjs/generator/IndexGenerator.js +29 -80
- package/dist/cjs/generator/IndexGenerator.js.map +1 -1
- package/dist/cjs/generator/ModelsGenerator.js +2 -5
- package/dist/cjs/generator/ModelsGenerator.js.map +1 -1
- package/dist/cjs/generator/NamingHelper.js +4 -1
- package/dist/cjs/generator/NamingHelper.js.map +1 -1
- package/dist/cjs/generator/NavigationGenerator.js +370 -0
- package/dist/cjs/generator/NavigationGenerator.js.map +1 -0
- package/dist/cjs/generator/OperationsGenerator.js +384 -0
- package/dist/cjs/generator/OperationsGenerator.js.map +1 -0
- package/dist/cjs/generator/QueryModelsGenerator.js +2 -2
- package/dist/cjs/generator/QueryModelsGenerator.js.map +1 -1
- package/dist/cjs/generator/ServiceFnGenerator.js +102 -224
- package/dist/cjs/generator/ServiceFnGenerator.js.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/dts/Cli.d.ts.map +1 -1
- package/dist/dts/generator/Generator.d.ts +2 -0
- package/dist/dts/generator/Generator.d.ts.map +1 -1
- package/dist/dts/generator/IndexGenerator.d.ts.map +1 -1
- package/dist/dts/generator/NamingHelper.d.ts.map +1 -1
- package/dist/dts/generator/NavigationGenerator.d.ts +55 -0
- package/dist/dts/generator/NavigationGenerator.d.ts.map +1 -0
- package/dist/dts/generator/OperationsGenerator.d.ts +50 -0
- package/dist/dts/generator/OperationsGenerator.d.ts.map +1 -0
- package/dist/dts/generator/ServiceFnGenerator.d.ts +10 -11
- package/dist/dts/generator/ServiceFnGenerator.d.ts.map +1 -1
- package/dist/dts/index.d.ts +4 -4
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/Cli.js +5 -1
- package/dist/esm/Cli.js.map +1 -1
- package/dist/esm/generator/Generator.js +35 -25
- package/dist/esm/generator/Generator.js.map +1 -1
- package/dist/esm/generator/IndexGenerator.js +29 -80
- package/dist/esm/generator/IndexGenerator.js.map +1 -1
- package/dist/esm/generator/ModelsGenerator.js +2 -5
- package/dist/esm/generator/ModelsGenerator.js.map +1 -1
- package/dist/esm/generator/NamingHelper.js +4 -1
- package/dist/esm/generator/NamingHelper.js.map +1 -1
- package/dist/esm/generator/NavigationGenerator.js +362 -0
- package/dist/esm/generator/NavigationGenerator.js.map +1 -0
- package/dist/esm/generator/OperationsGenerator.js +375 -0
- package/dist/esm/generator/OperationsGenerator.js.map +1 -0
- package/dist/esm/generator/QueryModelsGenerator.js +2 -2
- package/dist/esm/generator/QueryModelsGenerator.js.map +1 -1
- package/dist/esm/generator/ServiceFnGenerator.js +102 -224
- package/dist/esm/generator/ServiceFnGenerator.js.map +1 -1
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/generator/NavigationGenerator/package.json +6 -0
- package/generator/OperationsGenerator/package.json +6 -0
- package/package.json +17 -9
- package/src/Cli.ts +15 -2
- package/src/generator/Generator.ts +44 -23
- package/src/generator/IndexGenerator.ts +29 -80
- package/src/generator/ModelsGenerator.ts +2 -5
- package/src/generator/NamingHelper.ts +8 -1
- package/src/generator/NavigationGenerator.ts +485 -0
- package/src/generator/OperationsGenerator.ts +507 -0
- package/src/generator/QueryModelsGenerator.ts +2 -2
- package/src/generator/ServiceFnGenerator.ts +117 -265
- package/src/index.ts +4 -4
- package/dist/cjs/generator/ServiceFnPromiseGenerator.js +0 -183
- package/dist/cjs/generator/ServiceFnPromiseGenerator.js.map +0 -1
- package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts +0 -40
- package/dist/dts/generator/ServiceFnPromiseGenerator.d.ts.map +0 -1
- package/dist/esm/generator/ServiceFnPromiseGenerator.js +0 -175
- package/dist/esm/generator/ServiceFnPromiseGenerator.js.map +0 -1
- package/generator/ServiceFnPromiseGenerator/package.json +0 -6
- package/src/generator/ServiceFnPromiseGenerator.ts +0 -243
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelsGenerator.js","names":["_NamingHelper","require","getTypeDependencies","type","allComplexTypes","allEntityTypes","deps","Set","baseType","baseTypeName","getClassName","split","pop","has","add","prop","properties","propTypeName","typeMapping","effectSchema","sortTypesByDependency","types","sorted","visited","visiting","visit","name","push","depName","depType","find","t","delete","generateModels","dataModel","lines","Array","from","complexTypes","values","map","entityTypes","serviceName","enumType","enumTypes","line","generateEnumType","sortedComplexTypes","complexType","generateComplexType","sortedEntityTypes","entityType","generateEntityType","join","exports","members","m","odataName","fields","generateSchemaFields","navigationProperties","f","editableFields","generateEditableSchemaFields","editableName","getEditableTypeName","keys","length","idTypeName","getIdTypeName","key","keySchema","getPropertySchemaType","keyFields","k","schema","filter","p","isKey","_navigationProperties","_dataModel","i","schemaType","isNullable","isLast","makeOptional","isCollection"],"sources":["../../../src/generator/ModelsGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModelsGenerator.js","names":["_NamingHelper","require","getTypeDependencies","type","allComplexTypes","allEntityTypes","deps","Set","baseType","baseTypeName","getClassName","split","pop","has","add","prop","properties","propTypeName","typeMapping","effectSchema","sortTypesByDependency","types","sorted","visited","visiting","visit","name","push","depName","depType","find","t","delete","generateModels","dataModel","lines","Array","from","complexTypes","values","map","entityTypes","serviceName","enumType","enumTypes","line","generateEnumType","sortedComplexTypes","complexType","generateComplexType","sortedEntityTypes","entityType","generateEntityType","join","exports","members","m","odataName","fields","generateSchemaFields","navigationProperties","f","editableFields","generateEditableSchemaFields","editableName","getEditableTypeName","keys","length","idTypeName","getIdTypeName","key","keySchema","getPropertySchemaType","keyFields","k","schema","filter","p","isKey","_navigationProperties","_dataModel","i","schemaType","isNullable","isLast","makeOptional","isCollection"],"sources":["../../../src/generator/ModelsGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -87,10 +87,13 @@ const getServiceClassName = entitySetName => {
|
|
|
87
87
|
// Remove trailing 's' if present to singularize
|
|
88
88
|
let singular = entitySetName;
|
|
89
89
|
if (singular.endsWith("ies")) {
|
|
90
|
+
// "Categories" -> "Category"
|
|
90
91
|
singular = singular.slice(0, -3) + "y";
|
|
91
|
-
} else if (singular.endsWith("
|
|
92
|
+
} else if (singular.endsWith("xes") || singular.endsWith("ches") || singular.endsWith("shes") || singular.endsWith("sses") || singular.endsWith("zes")) {
|
|
93
|
+
// "Boxes" -> "Box", "Beaches" -> "Beach", etc.
|
|
92
94
|
singular = singular.slice(0, -2);
|
|
93
95
|
} else if (singular.endsWith("s") && !singular.endsWith("ss")) {
|
|
96
|
+
// "Products" -> "Product", "Airlines" -> "Airline"
|
|
94
97
|
singular = singular.slice(0, -1);
|
|
95
98
|
}
|
|
96
99
|
return `${toPascalCase(singular)}Service`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NamingHelper.js","names":["toPascalCase","str","replace","_","char","toUpperCase","exports","toCamelCase","pascal","charAt","toLowerCase","slice","toValidIdentifier","test","getPropertyName","odataName","getClassName","getServiceClassName","entitySetName","singular","endsWith","getQueryInterfaceName","typeName","getQueryInstanceName","getQueryFactoryName","getEditableTypeName","getIdTypeName"],"sources":["../../../src/generator/NamingHelper.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA;;;;;AAMA;;;;;;;;;;AAUO,MAAMA,YAAY,GAAIC,GAAW,IAAY;EAClD,OAAOA,GAAG,CACPC,OAAO,CAAC,UAAU,EAAE,CAACC,CAAC,EAAEC,IAAI,KAAKA,IAAI,CAACC,WAAW,EAAE,CAAC,CACpDH,OAAO,CAAC,MAAM,EAAGE,IAAI,IAAKA,IAAI,CAACC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;;;;AAAAC,OAAA,CAAAN,YAAA,GAAAA,YAAA;AAUO,MAAMO,WAAW,GAAIN,GAAW,IAAY;EACjD,MAAMO,MAAM,GAAGR,YAAY,CAACC,GAAG,CAAC;EAChC,OAAOO,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,MAAM,CAACG,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;AAAAL,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAOO,MAAMK,iBAAiB,GAAIX,GAAW,IAAY;EACvD;EACA,IAAI,QAAQ,CAACY,IAAI,CAACZ,GAAG,CAAC,EAAE;IACtB,OAAO,IAAIA,GAAG,EAAE;EAClB;EACA;EACA,OAAOA,GAAG,CAACC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;AAC5C,CAAC;AAED;;;;;;AAAAI,OAAA,CAAAM,iBAAA,GAAAA,iBAAA;AAMO,MAAME,eAAe,GAAIC,SAAiB,IAAY;EAC3D,OAAOR,WAAW,CAACK,iBAAiB,CAACG,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;AAAAT,OAAA,CAAAQ,eAAA,GAAAA,eAAA;AAMO,MAAME,YAAY,GAAID,SAAiB,IAAY;EACxD,OAAOf,YAAY,CAACY,iBAAiB,CAACG,SAAS,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;AAAAT,OAAA,CAAAU,YAAA,GAAAA,YAAA;AASO,MAAMC,mBAAmB,GAAIC,aAAqB,IAAY;EACnE;EACA,IAAIC,QAAQ,GAAGD,aAAa;EAC5B,IAAIC,QAAQ,CAACC,QAAQ,CAAC,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"NamingHelper.js","names":["toPascalCase","str","replace","_","char","toUpperCase","exports","toCamelCase","pascal","charAt","toLowerCase","slice","toValidIdentifier","test","getPropertyName","odataName","getClassName","getServiceClassName","entitySetName","singular","endsWith","getQueryInterfaceName","typeName","getQueryInstanceName","getQueryFactoryName","getEditableTypeName","getIdTypeName"],"sources":["../../../src/generator/NamingHelper.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPathBuildersModuleName = exports.generateNavigations = void 0;
|
|
7
|
+
var _NamingHelper = require("./NamingHelper.js");
|
|
8
|
+
const V2_CONFIG = {
|
|
9
|
+
odataNamespace: "OData",
|
|
10
|
+
clientModule: "ODataClient",
|
|
11
|
+
queryOptionsType: "ODataQueryOptions"
|
|
12
|
+
};
|
|
13
|
+
const V4_CONFIG = {
|
|
14
|
+
odataNamespace: "ODataV4",
|
|
15
|
+
clientModule: "ODataV4Client",
|
|
16
|
+
queryOptionsType: "ODataV4QueryOptions"
|
|
17
|
+
};
|
|
18
|
+
const getVersionConfig = version => version === "V4" ? V4_CONFIG : V2_CONFIG;
|
|
19
|
+
/**
|
|
20
|
+
* Get the path builders module name.
|
|
21
|
+
*/
|
|
22
|
+
const getPathBuildersModuleName = () => "PathBuilders";
|
|
23
|
+
/**
|
|
24
|
+
* Collect all navigation properties across all entity types.
|
|
25
|
+
*/
|
|
26
|
+
exports.getPathBuildersModuleName = getPathBuildersModuleName;
|
|
27
|
+
const collectAllNavigationProperties = dataModel => {
|
|
28
|
+
const navProps = [];
|
|
29
|
+
for (const entityType of dataModel.entityTypes.values()) {
|
|
30
|
+
for (const navProp of entityType.navigationProperties) {
|
|
31
|
+
const targetTypeName = (0, _NamingHelper.getClassName)(navProp.targetType);
|
|
32
|
+
navProps.push({
|
|
33
|
+
propertyName: navProp.name,
|
|
34
|
+
odataName: navProp.odataName,
|
|
35
|
+
sourceEntityName: entityType.name,
|
|
36
|
+
targetEntityName: targetTypeName,
|
|
37
|
+
isCollection: navProp.isCollection
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return navProps;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Check if a navigation property name has collisions (same name, different source entities).
|
|
45
|
+
*/
|
|
46
|
+
const findCollisions = navProps => {
|
|
47
|
+
const collisions = new Set();
|
|
48
|
+
const seen = new Map();
|
|
49
|
+
for (const prop of navProps) {
|
|
50
|
+
const existing = seen.get(prop.propertyName);
|
|
51
|
+
if (existing) {
|
|
52
|
+
// Collision if same name but different source entity
|
|
53
|
+
if (existing.sourceEntityName !== prop.sourceEntityName) {
|
|
54
|
+
collisions.add(prop.propertyName);
|
|
55
|
+
}
|
|
56
|
+
} else {
|
|
57
|
+
seen.set(prop.propertyName, prop);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return collisions;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Get the function name for a navigation property.
|
|
64
|
+
*/
|
|
65
|
+
const getNavFunctionName = (prop, hasCollision) => {
|
|
66
|
+
if (hasCollision) {
|
|
67
|
+
// Qualified name: personTrips, orderTrips
|
|
68
|
+
return (0, _NamingHelper.toCamelCase)(`${prop.sourceEntityName}_${prop.propertyName}`);
|
|
69
|
+
}
|
|
70
|
+
return (0, _NamingHelper.toCamelCase)(prop.propertyName);
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Collect derived types for an entity type (for type casting).
|
|
74
|
+
*/
|
|
75
|
+
const getDerivedTypes = (baseTypeFqName, dataModel) => {
|
|
76
|
+
const derived = [];
|
|
77
|
+
for (const entityType of dataModel.entityTypes.values()) {
|
|
78
|
+
if (entityType.baseType === baseTypeFqName) {
|
|
79
|
+
derived.push(entityType);
|
|
80
|
+
// Recursively get further derived types
|
|
81
|
+
const furtherDerived = getDerivedTypes(entityType.fqName, dataModel);
|
|
82
|
+
for (const d of furtherDerived) {
|
|
83
|
+
derived.push(d);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return derived;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Generate navigation builders.
|
|
91
|
+
*
|
|
92
|
+
* @since 1.0.0
|
|
93
|
+
* @category generation
|
|
94
|
+
*/
|
|
95
|
+
const generateNavigations = dataModel => {
|
|
96
|
+
const moduleName = getPathBuildersModuleName();
|
|
97
|
+
const content = generatePathBuildersFile(dataModel);
|
|
98
|
+
return {
|
|
99
|
+
navigationFiles: [{
|
|
100
|
+
fileName: `${moduleName}.ts`,
|
|
101
|
+
content
|
|
102
|
+
}]
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Generate the PathBuilders.ts file.
|
|
107
|
+
*/
|
|
108
|
+
exports.generateNavigations = generateNavigations;
|
|
109
|
+
const generatePathBuildersFile = dataModel => {
|
|
110
|
+
const lines = [];
|
|
111
|
+
const versionConfig = getVersionConfig(dataModel.version);
|
|
112
|
+
// Collect all nav properties and find collisions
|
|
113
|
+
const allNavProps = collectAllNavigationProperties(dataModel);
|
|
114
|
+
const collisions = findCollisions(allNavProps);
|
|
115
|
+
// Collect all entity type names that need to be referenced
|
|
116
|
+
const referencedTypes = collectReferencedTypes(dataModel);
|
|
117
|
+
// Header
|
|
118
|
+
lines.push(`/**`);
|
|
119
|
+
lines.push(` * Type-safe, tree-shakable path builders for OData navigation.`);
|
|
120
|
+
lines.push(` * Generated by odata-effect-gen.`);
|
|
121
|
+
lines.push(` *`);
|
|
122
|
+
lines.push(` * @example`);
|
|
123
|
+
lines.push(` * \`\`\`typescript`);
|
|
124
|
+
lines.push(` * import { pipe } from "effect"`);
|
|
125
|
+
lines.push(` * import { People, byKey, trips, planItems } from "./PathBuilders"`);
|
|
126
|
+
lines.push(` *`);
|
|
127
|
+
lines.push(` * const path = pipe(`);
|
|
128
|
+
lines.push(` * People,`);
|
|
129
|
+
lines.push(` * byKey("russellwhyte"),`);
|
|
130
|
+
lines.push(` * trips,`);
|
|
131
|
+
lines.push(` * byKey(0),`);
|
|
132
|
+
lines.push(` * planItems`);
|
|
133
|
+
lines.push(` * )`);
|
|
134
|
+
lines.push(` * \`\`\``);
|
|
135
|
+
lines.push(` *`);
|
|
136
|
+
lines.push(` * @since 1.0.0`);
|
|
137
|
+
lines.push(` */`);
|
|
138
|
+
lines.push(``);
|
|
139
|
+
// Imports
|
|
140
|
+
lines.push(`import { ${versionConfig.odataNamespace}, ${versionConfig.clientModule}} from "@odata-effect/odata-effect"`);
|
|
141
|
+
const runtimeType = dataModel.version === "V4" ? "ODataV4Runtime" : "ODataRuntime";
|
|
142
|
+
lines.push(`import type { Runtime } from "@odata-effect/odata-effect-promise"`);
|
|
143
|
+
lines.push(`import type { Effect, Schema } from "effect"`);
|
|
144
|
+
lines.push(``);
|
|
145
|
+
// Import model types with Model suffix to avoid collision with entity set names
|
|
146
|
+
if (referencedTypes.size > 0) {
|
|
147
|
+
lines.push(`import type {`);
|
|
148
|
+
const typesList = Array.from(referencedTypes).sort();
|
|
149
|
+
for (let i = 0; i < typesList.length; i++) {
|
|
150
|
+
const isLast = i === typesList.length - 1;
|
|
151
|
+
lines.push(` ${typesList[i]} as ${typesList[i]}Model${isLast ? "" : ","}`);
|
|
152
|
+
}
|
|
153
|
+
lines.push(`} from "./Models"`);
|
|
154
|
+
lines.push(``);
|
|
155
|
+
}
|
|
156
|
+
// Path branded type
|
|
157
|
+
lines.push(`// ============================================================================`);
|
|
158
|
+
lines.push(`// Path Types`);
|
|
159
|
+
lines.push(`// ============================================================================`);
|
|
160
|
+
lines.push(``);
|
|
161
|
+
lines.push(`/**`);
|
|
162
|
+
lines.push(` * Branded path type that tracks the entity type and whether it's a collection.`);
|
|
163
|
+
lines.push(` * This enables type-safe navigation - you can only navigate to properties`);
|
|
164
|
+
lines.push(` * that exist on the current entity type.`);
|
|
165
|
+
lines.push(` *`);
|
|
166
|
+
lines.push(` * @since 1.0.0`);
|
|
167
|
+
lines.push(` * @category types`);
|
|
168
|
+
lines.push(` */`);
|
|
169
|
+
lines.push(`export type Path<TEntity, IsCollection extends boolean = false> = string & {`);
|
|
170
|
+
lines.push(` readonly _entity: TEntity`);
|
|
171
|
+
lines.push(` readonly _collection: IsCollection`);
|
|
172
|
+
lines.push(`}`);
|
|
173
|
+
lines.push(``);
|
|
174
|
+
// Entity set roots (PascalCase, types use Model suffix to avoid collision)
|
|
175
|
+
lines.push(`// ============================================================================`);
|
|
176
|
+
lines.push(`// Entity Set Roots`);
|
|
177
|
+
lines.push(`// ============================================================================`);
|
|
178
|
+
lines.push(``);
|
|
179
|
+
for (const entitySet of dataModel.entitySets.values()) {
|
|
180
|
+
const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
|
|
181
|
+
if (entityType) {
|
|
182
|
+
lines.push(`/**`);
|
|
183
|
+
lines.push(` * Root path for ${entitySet.name} entity set.`);
|
|
184
|
+
lines.push(` *`);
|
|
185
|
+
lines.push(` * @since 1.0.0`);
|
|
186
|
+
lines.push(` * @category entity-sets`);
|
|
187
|
+
lines.push(` */`);
|
|
188
|
+
lines.push(`export const ${entitySet.name}: Path<${entityType.name}Model, true> = "${entitySet.name}" as Path<${entityType.name}Model, true>`);
|
|
189
|
+
lines.push(``);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// byKey function
|
|
193
|
+
lines.push(`// ============================================================================`);
|
|
194
|
+
lines.push(`// Key Access`);
|
|
195
|
+
lines.push(`// ============================================================================`);
|
|
196
|
+
lines.push(``);
|
|
197
|
+
lines.push(`/**`);
|
|
198
|
+
lines.push(` * Navigate to a specific entity by key.`);
|
|
199
|
+
lines.push(` * Works on any collection path.`);
|
|
200
|
+
lines.push(` *`);
|
|
201
|
+
lines.push(` * @example`);
|
|
202
|
+
lines.push(` * \`\`\`typescript`);
|
|
203
|
+
lines.push(` * pipe(People, byKey("russellwhyte")) // Path<PersonModel, false>`);
|
|
204
|
+
lines.push(` * pipe(Airports, byKey("KSFO")) // Path<AirportModel, false>`);
|
|
205
|
+
lines.push(` * \`\`\``);
|
|
206
|
+
lines.push(` *`);
|
|
207
|
+
lines.push(` * @since 1.0.0`);
|
|
208
|
+
lines.push(` * @category navigation`);
|
|
209
|
+
lines.push(` */`);
|
|
210
|
+
lines.push(`export const byKey = <T>(key: string | number) =>`);
|
|
211
|
+
lines.push(` (base: Path<T, true>): Path<T, false> =>`);
|
|
212
|
+
lines.push(` \`\${base}(\${typeof key === "string" ? \`'\${key}'\` : key})\` as Path<T, false>`);
|
|
213
|
+
lines.push(``);
|
|
214
|
+
// Navigation property functions
|
|
215
|
+
lines.push(`// ============================================================================`);
|
|
216
|
+
lines.push(`// Navigation Properties`);
|
|
217
|
+
lines.push(`// ============================================================================`);
|
|
218
|
+
lines.push(``);
|
|
219
|
+
// Group nav props by source entity for better organization
|
|
220
|
+
const navPropsBySource = new Map();
|
|
221
|
+
for (const prop of allNavProps) {
|
|
222
|
+
const existing = navPropsBySource.get(prop.sourceEntityName) || [];
|
|
223
|
+
existing.push(prop);
|
|
224
|
+
navPropsBySource.set(prop.sourceEntityName, existing);
|
|
225
|
+
}
|
|
226
|
+
for (const [sourceEntity, props] of navPropsBySource) {
|
|
227
|
+
lines.push(`// From ${sourceEntity}`);
|
|
228
|
+
for (const prop of props) {
|
|
229
|
+
const hasCollision = collisions.has(prop.propertyName);
|
|
230
|
+
const fnName = getNavFunctionName(prop, hasCollision);
|
|
231
|
+
const targetType = prop.targetEntityName;
|
|
232
|
+
lines.push(`/**`);
|
|
233
|
+
lines.push(` * Navigate to ${prop.odataName}${prop.isCollection ? " collection" : ""}.`);
|
|
234
|
+
lines.push(` *`);
|
|
235
|
+
lines.push(` * @since 1.0.0`);
|
|
236
|
+
lines.push(` * @category navigation`);
|
|
237
|
+
lines.push(` */`);
|
|
238
|
+
lines.push(`export const ${fnName} = (base: Path<${sourceEntity}Model, false>): Path<${targetType}Model, ${prop.isCollection}> =>`);
|
|
239
|
+
lines.push(` \`\${base}/${prop.odataName}\` as Path<${targetType}Model, ${prop.isCollection}>`);
|
|
240
|
+
lines.push(``);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Type casting functions for derived types
|
|
244
|
+
const castFunctions = generateTypeCastFunctions(dataModel);
|
|
245
|
+
if (castFunctions.length > 0) {
|
|
246
|
+
lines.push(`// ============================================================================`);
|
|
247
|
+
lines.push(`// Type Casting (for entity inheritance)`);
|
|
248
|
+
lines.push(`// ============================================================================`);
|
|
249
|
+
lines.push(``);
|
|
250
|
+
for (const castFunction of castFunctions) {
|
|
251
|
+
lines.push(castFunction);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
// Terminal operations (Effect-based)
|
|
255
|
+
lines.push(`// ============================================================================`);
|
|
256
|
+
lines.push(`// Terminal Operations (Effect-based)`);
|
|
257
|
+
lines.push(`// ============================================================================`);
|
|
258
|
+
lines.push(``);
|
|
259
|
+
lines.push(`/**`);
|
|
260
|
+
lines.push(` * Fetch a collection of entities at the given path (Effect-based).`);
|
|
261
|
+
lines.push(` *`);
|
|
262
|
+
lines.push(` * @example`);
|
|
263
|
+
lines.push(` * \`\`\`typescript`);
|
|
264
|
+
lines.push(` * const allPeople = yield* pipe(People, fetchCollection(Person))`);
|
|
265
|
+
lines.push(` * \`\`\``);
|
|
266
|
+
lines.push(` *`);
|
|
267
|
+
lines.push(` * @since 1.0.0`);
|
|
268
|
+
lines.push(` * @category operations`);
|
|
269
|
+
lines.push(` */`);
|
|
270
|
+
lines.push(`export const fetchCollection = <T, I>(schema: Schema.Schema<T, I>) =>`);
|
|
271
|
+
lines.push(` (path: Path<T, true>, options?: ${versionConfig.clientModule}.${versionConfig.queryOptionsType}) =>`);
|
|
272
|
+
lines.push(` ${versionConfig.odataNamespace}.getCollection(path, schema, options)`);
|
|
273
|
+
lines.push(``);
|
|
274
|
+
lines.push(`/**`);
|
|
275
|
+
lines.push(` * Fetch a single entity at the given path (Effect-based).`);
|
|
276
|
+
lines.push(` *`);
|
|
277
|
+
lines.push(` * @example`);
|
|
278
|
+
lines.push(` * \`\`\`typescript`);
|
|
279
|
+
lines.push(` * const person = yield* pipe(People, byKey("russell"), fetchOne(Person))`);
|
|
280
|
+
lines.push(` * \`\`\``);
|
|
281
|
+
lines.push(` *`);
|
|
282
|
+
lines.push(` * @since 1.0.0`);
|
|
283
|
+
lines.push(` * @category operations`);
|
|
284
|
+
lines.push(` */`);
|
|
285
|
+
lines.push(`export const fetchOne = <T, I>(schema: Schema.Schema<T, I>) =>`);
|
|
286
|
+
lines.push(` (path: Path<T, false>, options?: ${versionConfig.clientModule}.${versionConfig.queryOptionsType}) =>`);
|
|
287
|
+
lines.push(` ${versionConfig.odataNamespace}.get(path, schema, options)`);
|
|
288
|
+
lines.push(``);
|
|
289
|
+
// Promise conversion (pipe-friendly)
|
|
290
|
+
lines.push(`// ============================================================================`);
|
|
291
|
+
lines.push(`// Promise Conversion`);
|
|
292
|
+
lines.push(`// ============================================================================`);
|
|
293
|
+
lines.push(``);
|
|
294
|
+
lines.push(`/**`);
|
|
295
|
+
lines.push(` * Convert an Effect to a Promise. Use at the end of a pipe chain.`);
|
|
296
|
+
lines.push(` *`);
|
|
297
|
+
lines.push(` * @example`);
|
|
298
|
+
lines.push(` * \`\`\`typescript`);
|
|
299
|
+
lines.push(` * const myTrips = await pipe(`);
|
|
300
|
+
lines.push(` * People,`);
|
|
301
|
+
lines.push(` * byKey("russell"),`);
|
|
302
|
+
lines.push(` * trips,`);
|
|
303
|
+
lines.push(` * fetchCollection(Trip),`);
|
|
304
|
+
lines.push(` * toPromise(runtime)`);
|
|
305
|
+
lines.push(` * )`);
|
|
306
|
+
lines.push(` * \`\`\``);
|
|
307
|
+
lines.push(` *`);
|
|
308
|
+
lines.push(` * @since 1.0.0`);
|
|
309
|
+
lines.push(` * @category operations`);
|
|
310
|
+
lines.push(` */`);
|
|
311
|
+
lines.push(`export const toPromise = (runtime: Runtime.${runtimeType}) =>`);
|
|
312
|
+
lines.push(` <A, E, R>(effect: Effect.Effect<A, E, R>): Promise<A> =>`);
|
|
313
|
+
lines.push(` runtime.runPromise(effect as any)`);
|
|
314
|
+
lines.push(``);
|
|
315
|
+
return lines.join("\n");
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* Generate type casting functions for derived types.
|
|
319
|
+
*/
|
|
320
|
+
const generateTypeCastFunctions = dataModel => {
|
|
321
|
+
const lines = [];
|
|
322
|
+
const processed = new Set();
|
|
323
|
+
for (const entityType of dataModel.entityTypes.values()) {
|
|
324
|
+
const derivedTypes = getDerivedTypes(entityType.fqName, dataModel);
|
|
325
|
+
for (const derived of derivedTypes) {
|
|
326
|
+
const fnName = `as${derived.name}`;
|
|
327
|
+
if (processed.has(fnName)) continue;
|
|
328
|
+
processed.add(fnName);
|
|
329
|
+
const castPath = `${dataModel.namespace}.${derived.odataName}`;
|
|
330
|
+
lines.push(`/**`);
|
|
331
|
+
lines.push(` * Cast collection to ${derived.name} (filters to derived type).`);
|
|
332
|
+
lines.push(` *`);
|
|
333
|
+
lines.push(` * @since 1.0.0`);
|
|
334
|
+
lines.push(` * @category casting`);
|
|
335
|
+
lines.push(` */`);
|
|
336
|
+
lines.push(`export const ${fnName} = (base: Path<${entityType.name}Model, true>): Path<${derived.name}Model, true> =>`);
|
|
337
|
+
lines.push(` \`\${base}/${castPath}\` as Path<${derived.name}Model, true>`);
|
|
338
|
+
lines.push(``);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return lines;
|
|
342
|
+
};
|
|
343
|
+
/**
|
|
344
|
+
* Collect all entity type names referenced in paths.
|
|
345
|
+
*/
|
|
346
|
+
const collectReferencedTypes = dataModel => {
|
|
347
|
+
const types = new Set();
|
|
348
|
+
// Entity set entity types
|
|
349
|
+
for (const entitySet of dataModel.entitySets.values()) {
|
|
350
|
+
const entityType = dataModel.entityTypes.get(entitySet.entityTypeFqName);
|
|
351
|
+
if (entityType) {
|
|
352
|
+
types.add(entityType.name);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
// Navigation target types
|
|
356
|
+
for (const entityType of dataModel.entityTypes.values()) {
|
|
357
|
+
for (const navProp of entityType.navigationProperties) {
|
|
358
|
+
types.add((0, _NamingHelper.getClassName)(navProp.targetType));
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
// Derived types
|
|
362
|
+
for (const entityType of dataModel.entityTypes.values()) {
|
|
363
|
+
const derivedTypes = getDerivedTypes(entityType.fqName, dataModel);
|
|
364
|
+
for (const derived of derivedTypes) {
|
|
365
|
+
types.add(derived.name);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
return types;
|
|
369
|
+
};
|
|
370
|
+
//# sourceMappingURL=NavigationGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavigationGenerator.js","names":["_NamingHelper","require","V2_CONFIG","odataNamespace","clientModule","queryOptionsType","V4_CONFIG","getVersionConfig","version","getPathBuildersModuleName","exports","collectAllNavigationProperties","dataModel","navProps","entityType","entityTypes","values","navProp","navigationProperties","targetTypeName","getClassName","targetType","push","propertyName","name","odataName","sourceEntityName","targetEntityName","isCollection","findCollisions","collisions","Set","seen","Map","prop","existing","get","add","set","getNavFunctionName","hasCollision","toCamelCase","getDerivedTypes","baseTypeFqName","derived","baseType","furtherDerived","fqName","d","generateNavigations","moduleName","content","generatePathBuildersFile","navigationFiles","fileName","lines","versionConfig","allNavProps","referencedTypes","collectReferencedTypes","runtimeType","size","typesList","Array","from","sort","i","length","isLast","entitySet","entitySets","entityTypeFqName","navPropsBySource","sourceEntity","props","has","fnName","castFunctions","generateTypeCastFunctions","castFunction","join","processed","derivedTypes","castPath","namespace","types"],"sources":["../../../src/generator/NavigationGenerator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|