@osdk/generator 0.0.2 → 0.0.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 +8 -0
- package/build/js/index.js +40 -39
- package/build/js/index.js.map +1 -1
- package/build/js/index.mjs +40 -39
- package/build/js/index.mjs.map +1 -1
- package/package.json +2 -2
package/build/js/index.mjs
CHANGED
|
@@ -2,18 +2,18 @@ import * as w from 'path';
|
|
|
2
2
|
import w__default from 'path';
|
|
3
3
|
import { format } from 'prettier';
|
|
4
4
|
|
|
5
|
-
function
|
|
6
|
-
`;for(let[T
|
|
7
|
-
`,y.push(`* @param {${k}} params.${
|
|
5
|
+
function x(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:H(r.apiName)}))}}function H(e){return e.replace(/-./g,r=>r[1].toUpperCase())}function j(e){let r=new Set,a=new Set;for(let t of e.operations)switch(t.type){case"createObject":r.add(t.objectTypeApiName);break;case"modifyObject":a.add(t.objectTypeApiName);break;}return {addedObjects:r,modifiedObjects:a}}function s(e){return format(e,{parser:"typescript",singleQuote:!0,trailingComma:"all",plugins:["prettier-plugin-organize-imports"],tabWidth:2,printWidth:120})}async function D(e,r,a){let t=new Set,o=[];for(let i of e.actionTypes){let n=Object.entries(i.parameters),d=j(i),m=Array.from(d.addedObjects),g=Array.from(d.modifiedObjects);m.forEach(t.add,t),g.forEach(t.add,t);let y=["/**"];i.description&&y.push(`* ${i.description}`);let c="";if(n.length>0){c=`params: {
|
|
6
|
+
`;for(let[b,T]of n){c+=`"${b}"`,c+=T.required?": ":"?: ";let k=E(T.dataType,t);c+=`${k};
|
|
7
|
+
`,y.push(`* @param {${k}} params.${b}`);}c+="}, ";}y.push("*/"),o.push(`
|
|
8
8
|
${y.join(`
|
|
9
9
|
`)}
|
|
10
10
|
${i.apiName}<O extends ActionExecutionOptions>(${c}options?: O):
|
|
11
|
-
Promise<Result<ActionResponseFromOptions<O, Edits<${m.length>0?m.join(" | "):"void"}, ${g.length>0?g.join(" | "):"void"}>>, ActionError>>;`);}await r.writeFile(w__default.join(
|
|
11
|
+
Promise<Result<ActionResponseFromOptions<O, Edits<${m.length>0?m.join(" | "):"void"}, ${g.length>0?g.join(" | "):"void"}>>, ActionError>>;`);}await r.writeFile(w__default.join(a,"ontologyActions.ts"),await s(`
|
|
12
12
|
import type { ObjectSet, LocalDate, Timestamp, Attachment, Edits, ActionExecutionOptions, ActionError, Result, ActionResponseFromOptions } from "@osdk/legacy-client";
|
|
13
13
|
${Array.from(t).map(i=>`import type { ${i} } from "./objects/${i}";`).join(`
|
|
14
14
|
`)}
|
|
15
15
|
export interface Actions {
|
|
16
|
-
${
|
|
16
|
+
${o.join(`
|
|
17
17
|
`)}
|
|
18
18
|
}
|
|
19
19
|
`));}function E(e,r){switch(e.type){case"objectSet":{let t=e.objectTypeApiName;return r.add(t),`ObjectSet<${t}>`}case"object":{let t=e.objectTypeApiName;return r.add(t),`${t}`}case"array":return `Array<${E(e.subType,r)}>`;case"string":return "string";case"boolean":return "boolean";case"attachment":return "Attachment";case"date":return "LocalDate";case"double":case"integer":case"long":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported action parameter type: ${e}`)}}async function F(e,r){await e.writeFile(w__default.join(r,"FoundryClient.ts"),await s(`
|
|
@@ -29,7 +29,7 @@ function D(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:H(r.a
|
|
|
29
29
|
get ontology(): Ontology {
|
|
30
30
|
return this.ontology;
|
|
31
31
|
}
|
|
32
|
-
}`));}async function
|
|
32
|
+
}`));}async function P(e,r){await e.mkdir(r,{recursive:!0}),await e.writeFile(w.join(r,"index.ts"),await s(`
|
|
33
33
|
export {
|
|
34
34
|
ActionExecutionMode,
|
|
35
35
|
ActionResponse,
|
|
@@ -95,7 +95,7 @@ function D(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:H(r.a
|
|
|
95
95
|
} from '@osdk/legacy-client';
|
|
96
96
|
export { Ontology } from "./Ontology";
|
|
97
97
|
export { FoundryClient } from "./FoundryClient";
|
|
98
|
-
`));}function l(e){return e.join(",")}async function V(e,r,
|
|
98
|
+
`));}function l(e){return e.join(",")}async function V(e,r,a){let t=Object.keys(e.objectTypes),o=e.actionTypes.map(n=>n.apiName),i=e.queryTypes.map(n=>n.apiName);await r.writeFile(w__default.join(a,"Ontology.ts"),await s(`
|
|
99
99
|
import type { OntologyDefinition } from "@osdk/api";
|
|
100
100
|
import type { Ontology as ClientOntology } from "@osdk/legacy-client";
|
|
101
101
|
import type { Objects } from "./ontologyObjects";
|
|
@@ -103,7 +103,7 @@ function D(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:H(r.a
|
|
|
103
103
|
import type { Queries } from "./ontologyQueries";
|
|
104
104
|
${t.map(n=>`import {${n}} from "./objects/${n}";`).join(`
|
|
105
105
|
`)}
|
|
106
|
-
${
|
|
106
|
+
${o.map(n=>`import {${n}} from "./actions/${n}";`).join(`
|
|
107
107
|
`)}
|
|
108
108
|
${i.map(n=>`import {${n}} from "./queries/${n}";`).join(`
|
|
109
109
|
`)}
|
|
@@ -118,7 +118,7 @@ function D(e){return {...e,actionTypes:e.actionTypes.map(r=>({...r,apiName:H(r.a
|
|
|
118
118
|
${l(t)}
|
|
119
119
|
},
|
|
120
120
|
actions: {
|
|
121
|
-
${l(
|
|
121
|
+
${l(o)}
|
|
122
122
|
},
|
|
123
123
|
queries: {
|
|
124
124
|
${l(i)}
|
|
@@ -129,7 +129,7 @@ export interface Ontology extends ClientOntology<typeof Ontology> {
|
|
|
129
129
|
objects: Objects;
|
|
130
130
|
actions: Actions;
|
|
131
131
|
queries: Queries;
|
|
132
|
-
}`));}async function L(e,r,
|
|
132
|
+
}`));}async function L(e,r,a){await r.writeFile(w__default.join(a,"ontologyObjects.ts"),await s(`
|
|
133
133
|
import { BaseObjectSet } from "@osdk/legacy-client";
|
|
134
134
|
import { ${l(Object.keys(e.objectTypes))} } from "./objects";
|
|
135
135
|
|
|
@@ -137,14 +137,14 @@ export interface Ontology extends ClientOntology<typeof Ontology> {
|
|
|
137
137
|
${Object.keys(e.objectTypes).map(t=>`${t} : BaseObjectSet<${t}>;`).join(`
|
|
138
138
|
`)}
|
|
139
139
|
}
|
|
140
|
-
;`));}function R(e){let r=j(e);return {apiName:e.apiName,parameters:Object.fromEntries(Object.entries(e.parameters).map(([
|
|
140
|
+
;`));}function R(e){let r=j(e);return {apiName:e.apiName,parameters:Object.fromEntries(Object.entries(e.parameters).map(([a,t])=>[a,oe(t)])),displayName:e.displayName,description:e.description,modifiedEntities:ie(r.addedObjects,r.modifiedObjects)}}function oe(e){switch(e.dataType.type){case"string":case"boolean":case"object":case"attachment":case"date":case"double":case"integer":case"long":case"objectSet":case"timestamp":return {multiplicity:!1,type:O(e.dataType),nullable:!e.required,description:e.description};case"array":return {multiplicity:!0,type:O(e.dataType),nullable:!e.required,description:e.description}}}function O(e){switch(e.type){case"string":case"boolean":case"attachment":case"double":case"integer":case"long":case"timestamp":return e.type;case"date":return "datetime";case"objectSet":return {type:"objectSet",objectSet:e.objectTypeApiName};case"object":return {type:"object",object:e.objectTypeApiName};case"array":return O(e.subType)}}function ie(e,r){let a={};for(let t of e)a[t]={created:!0,modified:!1};for(let t of r)a[t]?a[t].modified=!0:a[t]={created:!1,modified:!0};return a}async function M(e,r,a){await r.mkdir(a,{recursive:!0}),await Promise.all(e.actionTypes.map(async t=>{let o=new Set(ne(t));await r.writeFile(w__default.join(a,`${t.apiName}.ts`),await s(`
|
|
141
141
|
import { ActionDefinition } from "@osdk/api";
|
|
142
142
|
|
|
143
|
-
export const ${t.apiName} = ${JSON.stringify(R(t),null,2)} satisfies ActionDefinition<"${t.apiName}", ${
|
|
143
|
+
export const ${t.apiName} = ${JSON.stringify(R(t),null,2)} satisfies ActionDefinition<"${t.apiName}", ${o.size>0?[...o].map(i=>`"${i}"`).join("|"):"never"}>;`));})),await r.writeFile(w__default.join(a,"index.ts"),await s(`
|
|
144
144
|
${e.actionTypes.map(t=>`export * from "./${t.apiName}";`).join(`
|
|
145
145
|
`)}
|
|
146
|
-
`));}function ne(e){let r=Object.values(e.parameters).flatMap(({dataType:t})=>{let
|
|
147
|
-
${Array.from(
|
|
146
|
+
`));}function ne(e){let r=Object.values(e.parameters).flatMap(({dataType:t})=>{let o=I(t);return o?[o]:[]});return [...e.operations.flatMap(t=>{switch(t.type){case"createObject":return [t.objectTypeApiName];case"modifyObject":return [t.objectTypeApiName];case"deleteObject":case"createLink":case"deleteLink":return []}}),...r]}function I(e){switch(e.type){case"objectSet":case"object":return e.objectTypeApiName;case"array":return I(e.subType);case"string":case"boolean":case"attachment":case"date":case"double":case"integer":case"long":case"timestamp":return}}function q(e){switch(e.dataType.type){case"integer":case"double":case"string":case"boolean":case"attachment":case"byte":case"decimal":case"float":case"geopoint":case"geoshape":case"long":case"short":return e.dataType.type;case"date":return "datetime";case"timestamp":return "timestamp";case"timeseries":case"array":throw new Error(`Type not supported for primaryKey: ${e.dataType.type}`);default:e.dataType;throw new Error(`Unknown type encountered for primaryKey: ${e.dataType}`)}}function _(e){switch(e.dataType.type){case"integer":case"string":case"byte":case"decimal":case"double":case"float":case"long":case"short":case"boolean":case"date":case"attachment":case"geopoint":case"geoshape":case"timestamp":case"timeseries":return {multiplicity:!1,type:h(e.dataType),nullable:!0};case"array":return {multiplicity:!0,type:h(e.dataType),nullable:!0};default:e.dataType;throw new Error(`Unexpected data type ${JSON.stringify(e.dataType)}`)}}function h(e){switch(e.type){case"integer":case"string":case"byte":case"decimal":case"double":case"float":case"long":case"short":case"boolean":case"attachment":case"geopoint":case"geoshape":case"timestamp":return e.type;case"date":return "datetime";case"array":return h(e.subType);case"timeseries":return e.itemType.type==="string"?"stringTimeseries":"numericTimeseries";default:throw new Error(`Unexecpected data type ${e}`)}}function $(e,r=[]){return {apiName:e.apiName,primaryKeyType:q(e.properties[e.primaryKey]),links:Object.fromEntries(r.map(a=>[a.apiName,{multiplicity:a.cardinality==="MANY",targetType:a.objectTypeApiName}])),properties:Object.fromEntries(Object.entries(e.properties).map(([a,t])=>[a,_(t)]))}}function v(e,r=[]){let a=new Set(r.map(t=>t.objectTypeApiName).filter(t=>t!==e.apiName));return `import type { OntologyObject, LocalDate, Timestamp, GeoShape, GeoPoint, Attachment, TimeSeries, MultiLink, SingleLink } from "@osdk/legacy-client";
|
|
147
|
+
${Array.from(a).map(t=>`import type { ${t} } from "./${t}";`).join(`
|
|
148
148
|
`)}
|
|
149
149
|
|
|
150
150
|
/**
|
|
@@ -153,68 +153,69 @@ ${Array.from(o).map(t=>`import type { ${t} } from "./${t}";`).join(`
|
|
|
153
153
|
export interface ${e.apiName} extends OntologyObject {
|
|
154
154
|
readonly __apiName: "${e.apiName}";
|
|
155
155
|
readonly __primaryKey: ${A(e.properties[e.primaryKey].dataType)};
|
|
156
|
-
${Object.entries(e.properties).map(([t,
|
|
156
|
+
${Object.entries(e.properties).map(([t,o])=>`${se(o.description)}readonly ${t}: ${A(o.dataType)} | undefined`).join(`;
|
|
157
157
|
`)}
|
|
158
158
|
${r.map(t=>`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"SingleLink"}<${t.objectTypeApiName}>;`).join(`;
|
|
159
159
|
`)}
|
|
160
160
|
}
|
|
161
|
-
`}function A(e){switch(e.type){case"string":return "string";case"boolean":return "boolean";case"array":return A(e.subType)+"[]";case"integer":return "number";case"attachment":return "Attachment";case"byte":return "number";case"date":return "LocalDate";case"decimal":return "number";case"double":return "number";case"float":return "number";case"geopoint":return "GeoPoint";case"geoshape":return "GeoShape";case"long":return "number";case"short":return "number";case"timestamp":return "Timestamp";case"timeseries":return "TimeSeries<number>";default:throw new Error(`Unknown property type ${e}`)}}function se(e){return e?`/**
|
|
161
|
+
`}function A(e){switch(e.type){case"string":return "string";case"boolean":return "boolean";case"array":return A(e.subType)+"[]";case"integer":return "number";case"attachment":return "Attachment";case"byte":return "number";case"date":return "LocalDate";case"decimal":return "number";case"double":return "number";case"float":return "number";case"geopoint":return "GeoPoint";case"geoshape":return "GeoShape";case"long":return "number";case"short":return "number";case"timestamp":return "Timestamp";case"timeseries":return e.itemType.type==="string"?"TimeSeries<string>":"TimeSeries<number>";default:throw new Error(`Unknown property type ${e}`)}}function se(e){return e?`/**
|
|
162
162
|
* ${e}
|
|
163
163
|
*/
|
|
164
|
-
`:""}async function
|
|
164
|
+
`:""}async function G(e,r,a){await r.mkdir(a,{recursive:!0}),await Promise.all(Object.values(e.objectTypes).map(async t=>{let o=e.linkTypes[t.apiName],i=new Set(o?.map(n=>n.objectTypeApiName));await r.writeFile(w__default.join(a,`${t.apiName}.ts`),await s(`
|
|
165
165
|
import { ObjectDefinition } from "@osdk/api";
|
|
166
|
-
${
|
|
166
|
+
${v(t,o)}
|
|
167
167
|
|
|
168
|
-
export const ${t.apiName} = ${JSON.stringify($(t,
|
|
168
|
+
export const ${t.apiName} = ${JSON.stringify($(t,o),null,2)} satisfies ObjectDefinition<"${t.apiName}", ${i.size>0?[...i].map(n=>`"${n}"`).join("|"):"never"}>;`));})),await r.writeFile(w__default.join(a,"index.ts"),await s(`
|
|
169
169
|
${Object.keys(e.objectTypes).map(t=>`export * from "./${t}";`).join(`
|
|
170
170
|
`)}
|
|
171
|
-
`));}function u(e){return e.type==="null"?!0:e.type==="union"?e.unionTypes.some(r=>u(r)):!1}function p(e){switch(e.type){case"double":case"float":case"integer":case"long":case"attachment":case"boolean":case"date":case"string":case"timestamp":return {type:e.type,nullable:!1};case"object":return {type:{type:"object",object:e.objectTypeApiName},nullable:!1};case"objectSet":return {type:{type:"objectSet",objectSet:e.objectTypeApiName},nullable:!1};case"array":return {...p(e.subType),multiplicity:!0};case"set":return {type:{type:"set",set:p(e.subType)},nullable:!1};case"union":let r=u(e);if(r&&e.unionTypes.length===2){let t=e.unionTypes.find(
|
|
171
|
+
`));}function u(e){return e.type==="null"?!0:e.type==="union"?e.unionTypes.some(r=>u(r)):!1}function p(e){switch(e.type){case"double":case"float":case"integer":case"long":case"attachment":case"boolean":case"date":case"string":case"timestamp":return {type:e.type,nullable:!1};case"object":return {type:{type:"object",object:e.objectTypeApiName},nullable:!1};case"objectSet":return {type:{type:"objectSet",objectSet:e.objectTypeApiName},nullable:!1};case"array":return {...p(e.subType),multiplicity:!0};case"set":return {type:{type:"set",set:p(e.subType)},nullable:!1};case"union":let r=u(e);if(r&&e.unionTypes.length===2){let t=e.unionTypes.find(o=>o.type!==null);if(t)return {...p(t),nullable:!0}}return {type:{type:"union",union:e.unionTypes.reduce((t,o)=>(o.type==="null"||t.push(p(o)),t),[])},nullable:r};case"struct":return {type:{type:"struct",struct:e.fields.map(t=>({name:t.name,fieldType:p(t.fieldType)}))},nullable:!1};case"twoDimensionalAggregation":return {type:{type:"twoDimensionalAggregation",twoDimensionalAggregation:N(e)}};case"threeDimensionalAggregation":return {type:{type:"threeDimensionalAggregation",threeDimensionalAggregation:ce(e)}};case"null":case"unsupported":throw new Error(`Accidentally tried to handle QueryDataType.type ${e.type}`);default:throw new Error(`Unsupported QueryDataType.type ${e.type}`)}}function N(e){return e.keyType.type==="range"?{keyType:e.keyType.type,keySubtype:e.keyType.subType.type,valueType:e.valueType.type}:{keyType:e.keyType.type,valueType:e.valueType.type}}function ce(e){return e.keyType.type==="range"?{keyType:e.keyType.type,keySubtype:e.keyType.subType.type,valueType:N(e.valueType)}:{keyType:e.keyType.type,valueType:N(e.valueType)}}function z(e){return {apiName:e.apiName,description:e.description,displayName:e.displayName,rid:e.rid,version:e.version,parameters:Object.fromEntries(Object.entries(e.parameters).map(([r,a])=>[r,pe(a)])),output:p(e.output)}}function pe(e){return {description:e.description,dataType:p(e.dataType)}}async function K(e,r,a){await r.mkdir(a,{recursive:!0}),await Promise.all(e.queryTypes.map(async t=>{await r.writeFile(w__default.join(a,`${t.apiName}.ts`),await s(`
|
|
172
172
|
import { QueryDefinition } from "@osdk/api";
|
|
173
173
|
|
|
174
|
-
export const ${t.apiName} = ${JSON.stringify(z(t))} satisfies QueryDefinition<"${t.apiName}">;`));})),await r.writeFile(w__default.join(
|
|
175
|
-
${e.queryTypes.map(t=>`export * from "./${t.apiName}";`)
|
|
176
|
-
|
|
174
|
+
export const ${t.apiName} = ${JSON.stringify(z(t))} satisfies QueryDefinition<"${t.apiName}">;`));})),await r.writeFile(w__default.join(a,"index.ts"),await s(`
|
|
175
|
+
${e.queryTypes.map(t=>`export * from "./${t.apiName}";`).join(`
|
|
176
|
+
`)}
|
|
177
|
+
`));}async function Y(e,r,a){let t=new Set,o=[];for(let i of e.queryTypes){let n=["/**"];i.description&&n.push(`* ${i.description}`);let d=f(i.output,t),m=[];for(let[y,c]of Object.entries(i.parameters)){let b=u(c.dataType),T=f(c.dataType,t);m.push(`"${y}"${b?"?":""}: ${T}`),n.push(`* @param {${W(T)}} params.${y}${c.description?` - ${c.description}`:""}`);}let g=m.length===0?"":`params: { ${m.join("; ")} }`;n.push(`* @returns ${W(d)}`,"*/"),o.push(`
|
|
177
178
|
${n.join(`
|
|
178
179
|
`)}
|
|
179
180
|
${i.apiName}(${g}): Promise<Result<QueryResponse<${d}>, QueryError>>;
|
|
180
|
-
`);}await r.writeFile(`${
|
|
181
|
+
`);}await r.writeFile(`${a}/ontologyQueries.ts`,await s(`
|
|
181
182
|
import type { QueryResponse, QueryError, Result, Timestamp, LocalDate, Range, Attachment, ObjectSet, TwoDimensionalAggregation, ThreeDimensionalAggregation } from "@osdk/legacy-client";
|
|
182
183
|
${Array.from(t).map(i=>`import type { ${i} } from "./objects/${i}";`).join(`
|
|
183
184
|
`)}
|
|
184
185
|
|
|
185
186
|
export interface Queries {
|
|
186
|
-
${
|
|
187
|
+
${o.join(`
|
|
187
188
|
`)}
|
|
188
189
|
}
|
|
189
|
-
`));}function f(e,r){switch(e.type){case"boolean":return "boolean";case"string":return "string";case"double":case"float":case"integer":case"long":return "number";case"date":return "LocalDate";case"timestamp":return "Timestamp";case"attachment":return "Attachment";case"array":return `Array<${f(e.subType,r)}>`;case"object":{let
|
|
190
|
-
`)} }`;case"union":return e.unionTypes.map(
|
|
190
|
+
`));}function f(e,r){switch(e.type){case"boolean":return "boolean";case"string":return "string";case"double":case"float":case"integer":case"long":return "number";case"date":return "LocalDate";case"timestamp":return "Timestamp";case"attachment":return "Attachment";case"array":return `Array<${f(e.subType,r)}>`;case"object":{let o=e.objectTypeApiName;return r.add(o),o}case"objectSet":{let o=e.objectTypeApiName;return r.add(o),`ObjectSet<${o}>`}case"set":return `Set<${f(e.subType,r)}>`;case"struct":return `{ ${e.fields.map(o=>{let i=u(o.fieldType);return `${o.name}${i?"?":""}: ${f(o.fieldType,r)}`}).join(`,
|
|
191
|
+
`)} }`;case"union":return e.unionTypes.map(o=>f(o,r)).join("|");case"twoDimensionalAggregation":return e.valueType,`TwoDimensionalAggregation<
|
|
191
192
|
${S(e.keyType)},
|
|
192
193
|
${J(e.valueType)}
|
|
193
194
|
>`;case"threeDimensionalAggregation":return `ThreeDimensionalAggregation<
|
|
194
195
|
${S(e.keyType)},
|
|
195
196
|
${S(e.valueType.keyType)},
|
|
196
197
|
${J(e.valueType.valueType)}
|
|
197
|
-
>`;case"null":return "null";case"unsupported":throw new Error("Cannot generate queries for unsupported type");default:throw new Error(`Cannot generate queries for type ${e.type}`)}}function S(e){switch(e.type){case"boolean":return "boolean";case"double":case"integer":return "number";case"string":return "string";case"date":return "LocalDate";case"timestamp":return "Timestamp";case"range":return `Range<${me(e.subType)}>`;default:throw new Error(`Unknown TwoDimensionalAggregation keyType ${e.type}`)}}function me(e){switch(e.type){case"date":return "LocalDate";case"double":case"integer":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported QueryAggregationRangeSubType ${e.type}`)}}function J(e){switch(e.type){case"date":return "LocalDate";case"double":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported QueryAggregationValueType ${e.type}`)}}function W(e){return e.replace(/\s/g,"")}async function ye(e,r,
|
|
198
|
+
>`;case"null":return "null";case"unsupported":throw new Error("Cannot generate queries for unsupported type");default:throw new Error(`Cannot generate queries for type ${e.type}`)}}function S(e){switch(e.type){case"boolean":return "boolean";case"double":case"integer":return "number";case"string":return "string";case"date":return "LocalDate";case"timestamp":return "Timestamp";case"range":return `Range<${me(e.subType)}>`;default:throw new Error(`Unknown TwoDimensionalAggregation keyType ${e.type}`)}}function me(e){switch(e.type){case"date":return "LocalDate";case"double":case"integer":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported QueryAggregationRangeSubType ${e.type}`)}}function J(e){switch(e.type){case"date":return "LocalDate";case"double":return "number";case"timestamp":return "Timestamp";default:throw new Error(`Unsupported QueryAggregationValueType ${e.type}`)}}function W(e){return e.replace(/\s/g,"")}async function ye(e,r,a){let t=x(e);await F(r,a),await V(t,r,a),await L(t,r,a),await G(t,r,w.join(a,"objects")),await D(t,r,a),await M(t,r,w.join(a,"actions")),await Y(t,r,a),await K(t,r,w.join(a,"queries")),await P(r,a);}function Z(e){return `
|
|
198
199
|
export interface ${e.apiName} extends ObjectDefinition<"${e.apiName}", "${e.apiName}">{
|
|
199
200
|
apiName: "${e.apiName}";
|
|
200
201
|
properties: {
|
|
201
|
-
${Object.entries(e.properties).map(([r,
|
|
202
|
+
${Object.entries(e.properties).map(([r,a])=>`
|
|
202
203
|
/**
|
|
203
|
-
* ${
|
|
204
|
+
* ${a.description??""}
|
|
204
205
|
**/
|
|
205
206
|
${r}: {
|
|
206
|
-
type: "${
|
|
207
|
-
displayName: "${
|
|
207
|
+
type: "${a.dataType.type}";
|
|
208
|
+
displayName: "${a.displayName??r}";
|
|
208
209
|
}
|
|
209
210
|
|
|
210
211
|
`)}
|
|
211
212
|
}
|
|
212
213
|
}
|
|
213
|
-
`}async function le(e,r,
|
|
214
|
+
`}async function le(e,r,a){r.writeFile(`${a}/index.ts`,await s(`
|
|
214
215
|
export { Ontology } from "./Ontology";
|
|
215
|
-
`));let t=Object.keys(e.objectTypes);r.writeFile(`${
|
|
216
|
+
`));let t=Object.keys(e.objectTypes);r.writeFile(`${a}/Ontology.ts`,await s(`
|
|
216
217
|
import type { OntologyDefinition } from "@osdk/api";
|
|
217
|
-
${t.map(
|
|
218
|
+
${t.map(o=>`import {${o}} from "./objects/${o}";`).join(`
|
|
218
219
|
`)}
|
|
219
220
|
|
|
220
221
|
import { OntologyMetadata } from "./OntologyMetadata";
|
|
@@ -222,15 +223,15 @@ ${r.map(t=>`readonly ${t.apiName}: ${t.cardinality==="MANY"?"MultiLink":"SingleL
|
|
|
222
223
|
export const Ontology = {
|
|
223
224
|
metadata: OntologyMetadata,
|
|
224
225
|
objects: {
|
|
225
|
-
${t.map(
|
|
226
|
+
${t.map(o=>`${o}: ${o},`).join(`
|
|
226
227
|
`)}
|
|
227
228
|
},
|
|
228
|
-
} satisfies OntologyDefinition<${t.map(
|
|
229
|
-
`));for(let
|
|
229
|
+
} satisfies OntologyDefinition<${t.map(o=>`"${o}"`).join("|")}>;
|
|
230
|
+
`));for(let o of t){let i=e.objectTypes[o];r.writeFile(`${a}/objects/${o}.ts`,await s(`
|
|
230
231
|
|
|
231
232
|
import type { ObjectDefinition } from "@osdk/api";
|
|
232
233
|
|
|
233
|
-
export const ${
|
|
234
|
+
export const ${o} = ${JSON.stringify($(i),null,2)} satisfies ${o};
|
|
234
235
|
|
|
235
236
|
${Z(i)}
|
|
236
237
|
`));}}
|