@osdk/generator 2.4.0-beta.8 → 2.5.0-beta.1
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 +74 -0
- package/build/browser/shared/getInterfaceTypeApiNamesFromQuery.js +28 -0
- package/build/browser/shared/getInterfaceTypeApiNamesFromQuery.js.map +1 -0
- package/build/browser/shared/getInterfaceTypesFromQueryDataType.js +63 -0
- package/build/browser/shared/getInterfaceTypesFromQueryDataType.js.map +1 -0
- package/build/browser/shared/getObjectTypesFromQueryDataType.js +3 -1
- package/build/browser/shared/getObjectTypesFromQueryDataType.js.map +1 -1
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +10 -10
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js.map +1 -1
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +23 -0
- package/build/browser/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +1 -1
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js +3 -0
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -1
- package/build/browser/v2.0/generatePerInterfaceDataFiles.js +2 -1
- package/build/browser/v2.0/generatePerInterfaceDataFiles.js.map +1 -1
- package/build/browser/v2.0/generatePerQueryDataFiles.js +10 -2
- package/build/browser/v2.0/generatePerQueryDataFiles.js.map +1 -1
- package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +4 -2
- package/build/browser/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -1
- package/build/cjs/index.cjs +86 -13
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/shared/getInterfaceTypeApiNamesFromQuery.js +28 -0
- package/build/esm/shared/getInterfaceTypeApiNamesFromQuery.js.map +1 -0
- package/build/esm/shared/getInterfaceTypesFromQueryDataType.js +63 -0
- package/build/esm/shared/getInterfaceTypesFromQueryDataType.js.map +1 -0
- package/build/esm/shared/getObjectTypesFromQueryDataType.js +3 -1
- package/build/esm/shared/getObjectTypesFromQueryDataType.js.map +1 -1
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js +10 -10
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js.map +1 -1
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js +23 -0
- package/build/esm/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.test.js.map +1 -1
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js +3 -0
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -1
- package/build/esm/v2.0/generatePerInterfaceDataFiles.js +2 -1
- package/build/esm/v2.0/generatePerInterfaceDataFiles.js.map +1 -1
- package/build/esm/v2.0/generatePerQueryDataFiles.js +10 -2
- package/build/esm/v2.0/generatePerQueryDataFiles.js.map +1 -1
- package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js +4 -2
- package/build/esm/v2.0/wireObjectTypeV2ToSdkObjectConstV2.js.map +1 -1
- package/build/types/shared/getInterfaceTypeApiNamesFromQuery.d.ts +3 -0
- package/build/types/shared/getInterfaceTypeApiNamesFromQuery.d.ts.map +1 -0
- package/build/types/shared/getInterfaceTypesFromQueryDataType.d.ts +2 -0
- package/build/types/shared/getInterfaceTypesFromQueryDataType.d.ts.map +1 -0
- package/build/types/v2.0/generatePerQueryDataFiles.d.ts.map +1 -1
- package/build/types/v2.0/wireObjectTypeV2ToSdkObjectConstV2.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -34,10 +34,11 @@ export async function generatePerInterfaceDataFiles({
|
|
|
34
34
|
});
|
|
35
35
|
for (const obj of Object.values(ontology.interfaceTypes)) {
|
|
36
36
|
if (obj instanceof ForeignType) continue;
|
|
37
|
+
const relPath = path.join(".", "ontology", "interfaces", `${obj.shortApiName}.ts`);
|
|
37
38
|
await fs.writeFile(path.join(interfacesDir, `${obj.shortApiName}.ts`), await formatTs(`
|
|
38
39
|
import type { PropertyDef as $PropertyDef } from "${forInternalUse ? "@osdk/api" : "@osdk/client"}";
|
|
39
40
|
import { $osdkMetadata } from "../../OntologyMetadata${importExt}";
|
|
40
|
-
${__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(obj, ontology, true, forInternalUse)}
|
|
41
|
+
${__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(obj, ontology, true, forInternalUse, relPath)}
|
|
41
42
|
`));
|
|
42
43
|
}
|
|
43
44
|
await fs.writeFile(interfacesDir + ".ts", await formatTs(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePerInterfaceDataFiles.js","names":["path","EnhancedInterfaceType","ForeignType","formatTs","__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst","generatePerInterfaceDataFiles","fs","outDir","ontology","importExt","forInternalUse","interfacesDir","join","mkdir","recursive","obj","Object","values","interfaceTypes","
|
|
1
|
+
{"version":3,"file":"generatePerInterfaceDataFiles.js","names":["path","EnhancedInterfaceType","ForeignType","formatTs","__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst","generatePerInterfaceDataFiles","fs","outDir","ontology","importExt","forInternalUse","interfacesDir","join","mkdir","recursive","obj","Object","values","interfaceTypes","relPath","shortApiName","writeFile","filter","i","map","interfaceType","keys","length"],"sources":["generatePerInterfaceDataFiles.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport path from \"node:path\";\nimport { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\nimport { __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst } from \"./UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.js\";\n\n/** @internal */\nexport async function generatePerInterfaceDataFiles(\n { fs, outDir, ontology, importExt, forInternalUse }: GenerateContext,\n) {\n const interfacesDir = path.join(outDir, \"ontology\", \"interfaces\");\n await fs.mkdir(interfacesDir, {\n recursive: true,\n });\n\n for (const obj of Object.values(ontology.interfaceTypes)) {\n if (obj instanceof ForeignType) continue;\n const relPath = path.join(\n \".\",\n \"ontology\",\n \"interfaces\",\n `${obj.shortApiName}.ts`,\n );\n\n await fs.writeFile(\n path.join(interfacesDir, `${obj.shortApiName}.ts`),\n await formatTs(`\n import type { PropertyDef as $PropertyDef } from \"${\n forInternalUse ? \"@osdk/api\" : \"@osdk/client\"\n }\";\n import { $osdkMetadata } from \"../../OntologyMetadata${importExt}\";\n ${\n __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(\n obj,\n ontology,\n true,\n forInternalUse,\n relPath,\n )\n }\n `),\n );\n }\n\n await fs.writeFile(\n interfacesDir + \".ts\",\n await formatTs(`\n ${\n Object.values(ontology.interfaceTypes).filter(i =>\n i instanceof EnhancedInterfaceType\n ).map(interfaceType =>\n `export {${interfaceType.shortApiName}} from \"./interfaces/${interfaceType.shortApiName}${importExt}\";`\n ).join(\"\\n\")\n }\n ${\n Object.keys(ontology.interfaceTypes).length === 0\n ? \"export {}\"\n : \"\"\n }\n `),\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,MAAM,WAAW;AAC5B,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,WAAW,QAAQ,mCAAmC;AAE/D,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,8CAA8C,QAAQ,mDAAmD;;AAElH;AACA,OAAO,eAAeC,6BAA6BA,CACjD;EAAEC,EAAE;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,SAAS;EAAEC;AAAgC,CAAC,EACpE;EACA,MAAMC,aAAa,GAAGX,IAAI,CAACY,IAAI,CAACL,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC;EACjE,MAAMD,EAAE,CAACO,KAAK,CAACF,aAAa,EAAE;IAC5BG,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,MAAM,CAACT,QAAQ,CAACU,cAAc,CAAC,EAAE;IACxD,IAAIH,GAAG,YAAYb,WAAW,EAAE;IAChC,MAAMiB,OAAO,GAAGnB,IAAI,CAACY,IAAI,CACvB,GAAG,EACH,UAAU,EACV,YAAY,EACZ,GAAGG,GAAG,CAACK,YAAY,KACrB,CAAC;IAED,MAAMd,EAAE,CAACe,SAAS,CAChBrB,IAAI,CAACY,IAAI,CAACD,aAAa,EAAE,GAAGI,GAAG,CAACK,YAAY,KAAK,CAAC,EAClD,MAAMjB,QAAQ,CAAC;AACrB,4DACQO,cAAc,GAAG,WAAW,GAAG,cAAc;AACrD,+DAC+DD,SAAS;AACxE,QACQL,8CAA8C,CAC5CW,GAAG,EACHP,QAAQ,EACR,IAAI,EACJE,cAAc,EACdS,OACF,CAAC;AACT,KACK,CACD,CAAC;EACH;EAEA,MAAMb,EAAE,CAACe,SAAS,CAChBV,aAAa,GAAG,KAAK,EACrB,MAAMR,QAAQ,CAAC;AACnB,MACMa,MAAM,CAACC,MAAM,CAACT,QAAQ,CAACU,cAAc,CAAC,CAACI,MAAM,CAACC,CAAC,IAC7CA,CAAC,YAAYtB,qBACf,CAAC,CAACuB,GAAG,CAACC,aAAa,IACjB,WAAWA,aAAa,CAACL,YAAY,wBAAwBK,aAAa,CAACL,YAAY,GAAGX,SAAS,IACrG,CAAC,CAACG,IAAI,CAAC,IAAI,CAAC;AAClB,MAEMI,MAAM,CAACU,IAAI,CAAClB,QAAQ,CAACU,cAAc,CAAC,CAACS,MAAM,KAAK,CAAC,GAC7C,WAAW,GACX,EAAE;AACZ,KACK,CACH,CAAC;AACH","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { wireQueryDataTypeToQueryDataTypeDefinition, wireQueryParameterV2ToQueryParameterDefinition as paramToDef, wireQueryTypeV2ToSdkQueryDefinitionNoParams } from "@osdk/generator-converters";
|
|
18
18
|
import path from "node:path";
|
|
19
|
+
import { getInterfaceTypeApiNamesFromQuery } from "../shared/getInterfaceTypeApiNamesFromQuery.js";
|
|
19
20
|
import { getObjectImports } from "../shared/getObjectImports.js";
|
|
20
21
|
import { getObjectTypeApiNamesFromQuery } from "../shared/getObjectTypeApiNamesFromQuery.js";
|
|
21
22
|
import { deleteUndefineds } from "../util/deleteUndefineds.js";
|
|
@@ -46,8 +47,9 @@ export async function generatePerQueryDataFilesV2({
|
|
|
46
47
|
async function generateV2QueryFile(fs, outDir, relOutDir, query, importExt, ontology, forInternalUse, fixedVersionQueryTypes) {
|
|
47
48
|
const relFilePath = path.join(relOutDir, `${query.shortApiName}.ts`);
|
|
48
49
|
const objectTypes = getObjectTypeApiNamesFromQuery(query);
|
|
49
|
-
const
|
|
50
|
-
const
|
|
50
|
+
const interfaceTypes = getInterfaceTypeApiNamesFromQuery(query);
|
|
51
|
+
const interfaceAndObjectTypes = new Set([...objectTypes.map(o => ontology.requireObjectType(o)), ...interfaceTypes.map(o => ontology.requireInterfaceType(o))]);
|
|
52
|
+
const importObjects = getObjectImports(interfaceAndObjectTypes, "", relFilePath, true);
|
|
51
53
|
const baseProps = deleteUndefineds(wireQueryTypeV2ToSdkQueryDefinitionNoParams(query.raw));
|
|
52
54
|
const outputBase = deleteUndefineds(wireQueryDataTypeToQueryDataTypeDefinition(query.output));
|
|
53
55
|
const isUsingFixedVersion = fixedVersionQueryTypes.includes(query.fullApiName);
|
|
@@ -194,9 +196,15 @@ export function getQueryParamType(enhancedOntology, input, type, isMapKey = fals
|
|
|
194
196
|
}
|
|
195
197
|
inner = `Query${type}.ObjectType<${enhancedOntology.requireObjectType(input.object).getImportedDefinitionIdentifier(true)}>`;
|
|
196
198
|
break;
|
|
199
|
+
case "interface":
|
|
200
|
+
inner = `Query${type}.InterfaceType<${enhancedOntology.requireInterfaceType(input.interface).getImportedDefinitionIdentifier(true)}>`;
|
|
201
|
+
break;
|
|
197
202
|
case "objectSet":
|
|
198
203
|
inner = `Query${type}.ObjectSetType<${enhancedOntology.requireObjectType(input.objectSet).getImportedDefinitionIdentifier(true)}>`;
|
|
199
204
|
break;
|
|
205
|
+
case "interfaceObjectSet":
|
|
206
|
+
inner = `Query${type}.ObjectSetType<${enhancedOntology.requireInterfaceType(input.objectSet).getImportedDefinitionIdentifier(true)}>`;
|
|
207
|
+
break;
|
|
200
208
|
case "set":
|
|
201
209
|
inner = `${type === "Param" ? "Readonly" : ""}Set<${getQueryParamType(enhancedOntology, input.set, type)}>`;
|
|
202
210
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePerQueryDataFiles.js","names":["wireQueryDataTypeToQueryDataTypeDefinition","wireQueryParameterV2ToQueryParameterDefinition","paramToDef","wireQueryTypeV2ToSdkQueryDefinitionNoParams","path","getObjectImports","getObjectTypeApiNamesFromQuery","deleteUndefineds","stringify","formatTs","getDescriptionIfPresent","generatePerQueryDataFilesV2","fs","outDir","rootOutDir","ontology","fixedVersionQueryTypes","importExt","forInternalUse","relOutDir","join","mkdir","recursive","Promise","all","Object","values","queryTypes","map","query","generateV2QueryFile","writeFile","shortApiName","getImportPathRelTo","keys","length","relFilePath","objectTypes","objectTypeObjects","Set","o","requireObjectType","importObjects","baseProps","raw","outputBase","output","isUsingFixedVersion","includes","fullApiName","description","parameters","paramsIdentifier","*","parameter","formatter","apiName","q","queryParamJsDoc","nullable","getQueryParamType","type","dataType","parameterDefsForType","getLineFor__OsdkTargetType","undefined","displayName","rid","definitionIdentifier","valueFormatter","qdt","objectTypeApiName","getImportedDefinitionIdentifier","param","ret","enhancedOntology","input","isMapKey","inner","JSON","struct","p","twoDimensionalAggregation","keyType","keySubtype","valueType","threeDimensionalAggregation","object","objectSet","set","union","u","multiplicity"],"sources":["generatePerQueryDataFiles.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { QueryParameterDefinition } from \"@osdk/api\";\nimport type { QueryDataType } from \"@osdk/foundry.ontologies\";\nimport {\n wireQueryDataTypeToQueryDataTypeDefinition,\n wireQueryParameterV2ToQueryParameterDefinition as paramToDef,\n wireQueryTypeV2ToSdkQueryDefinitionNoParams,\n} from \"@osdk/generator-converters\";\nimport path from \"node:path\";\nimport type { EnhancedOntologyDefinition } from \"../GenerateContext/EnhancedOntologyDefinition.js\";\nimport type { EnhancedQuery } from \"../GenerateContext/EnhancedQuery.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport type { MinimalFs } from \"../MinimalFs.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { getObjectTypeApiNamesFromQuery } from \"../shared/getObjectTypeApiNamesFromQuery.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { stringify } from \"../util/stringify.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\nimport { getDescriptionIfPresent } from \"./getDescriptionIfPresent.js\";\n\nexport async function generatePerQueryDataFilesV2(\n {\n fs,\n outDir: rootOutDir,\n ontology,\n fixedVersionQueryTypes,\n importExt = \"\",\n forInternalUse = false,\n }: Pick<\n GenerateContext,\n | \"fs\"\n | \"outDir\"\n | \"importExt\"\n | \"ontology\"\n | \"forInternalUse\"\n | \"fixedVersionQueryTypes\"\n >,\n v2: boolean,\n): Promise<void> {\n const relOutDir = path.join(\".\", \"ontology\", \"queries\");\n const outDir = path.join(rootOutDir, \"ontology\", \"queries\");\n await fs.mkdir(outDir, { recursive: true });\n await Promise.all(\n Object.values(ontology.queryTypes).map(async query => {\n await generateV2QueryFile(\n fs,\n outDir,\n relOutDir,\n query,\n importExt,\n ontology,\n forInternalUse,\n fixedVersionQueryTypes,\n );\n }),\n );\n\n const indexFilePath = `${outDir}.ts`;\n await fs.writeFile(\n indexFilePath,\n await formatTs(`\n ${\n Object.values(ontology.queryTypes).map(query =>\n `export {${query.shortApiName}} from \"${\n query.getImportPathRelTo(relOutDir)\n }\";`\n )\n .join(\"\\n\")\n }\n ${Object.keys(ontology.queryTypes).length === 0 ? \"export {};\" : \"\"}\n `),\n );\n}\n\nasync function generateV2QueryFile(\n fs: MinimalFs,\n outDir: string,\n relOutDir: string,\n query: EnhancedQuery,\n importExt: string,\n ontology: EnhancedOntologyDefinition,\n forInternalUse: boolean,\n fixedVersionQueryTypes: string[],\n) {\n const relFilePath = path.join(relOutDir, `${query.shortApiName}.ts`);\n const objectTypes = getObjectTypeApiNamesFromQuery(query);\n const objectTypeObjects = new Set(\n objectTypes.map(o => ontology.requireObjectType(o)),\n );\n const importObjects = getObjectImports(\n objectTypeObjects,\n \"\",\n relFilePath,\n true,\n );\n\n const baseProps = deleteUndefineds(\n wireQueryTypeV2ToSdkQueryDefinitionNoParams(query.raw),\n );\n\n const outputBase = deleteUndefineds(\n wireQueryDataTypeToQueryDataTypeDefinition(query.output),\n );\n\n const isUsingFixedVersion = fixedVersionQueryTypes.includes(\n query.fullApiName,\n );\n\n await fs.writeFile(\n path.join(outDir, `${query.shortApiName}.ts`),\n await formatTs(`\n import type { ObjectSpecifier, QueryDefinition, QueryParam, QueryResult, VersionBound} from \"${\n forInternalUse ? \"@osdk/api\" : \"@osdk/client\"\n }\";\n import type { $ExpectedClientVersion } from \"../../OntologyMetadata${importExt}\";\n import { $osdkMetadata} from \"../../OntologyMetadata${importExt}\";\n ${importObjects}\n\n export namespace ${query.shortApiName} {\n export interface Signature {\n ${getDescriptionIfPresent(query.description)}\n (${\n Object.keys(query.parameters).length > 0\n ? `query: ${query.paramsIdentifier}`\n : \"\"\n }): Promise<${query.shortApiName}.ReturnType>\n }\n\n ${\n Object.keys(query.parameters).length > 0\n ? `\n export interface Parameters {\n ${\n stringify(query.parameters, {\n \"*\": (parameter, formatter, apiName) => {\n const q = paramToDef(parameter);\n return [\n `\n ${\n queryParamJsDoc(paramToDef(parameter), { apiName })\n }readonly \"${apiName}\"${q.nullable ? \"?\" : \"\"}`,\n getQueryParamType(ontology, q, \"Param\"),\n ];\n },\n })\n }\n }`\n : \"\"\n }\n\n ${\n query.output.type === \"struct\"\n ? `\n export interface ReturnType \n ${\n getQueryParamType(\n ontology,\n paramToDef({ dataType: query.output }),\n \"Result\",\n )\n }\n `\n : `\n export type ReturnType = ${\n getQueryParamType(\n ontology,\n paramToDef({ dataType: query.output }),\n \"Result\",\n )\n }\n `\n }\n }\n \n \n export interface ${query.shortApiName} extends QueryDefinition<\n ${query.shortApiName}.Signature\n >, VersionBound<$ExpectedClientVersion>{\n __DefinitionMetadata?: {\n ${stringify(baseProps)}\n isFixedVersion: ${isUsingFixedVersion};\n parameters: {\n ${parameterDefsForType(ontology, query)}\n };\n output: {\n ${stringify(outputBase)},\n ${getLineFor__OsdkTargetType(ontology, query.output)}\n };\n signature: ${query.shortApiName}.Signature;\n }, \n ${\n stringify(baseProps, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"rid\": () => undefined,\n })\n }, \n osdkMetadata: typeof $osdkMetadata;\n }\n\n\n export const ${query.shortApiName}: ${query.definitionIdentifier} = {\n ${\n stringify(baseProps, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"rid\": () => undefined,\n })\n },\n isFixedVersion: ${isUsingFixedVersion},\n osdkMetadata: $osdkMetadata\n };\n `),\n );\n}\n\nfunction parameterDefsForType(\n ontology: EnhancedOntologyDefinition,\n query: EnhancedQuery,\n) {\n return stringify(query.parameters, {\n \"*\": (parameter, valueFormatter, apiName) => [\n `${queryParamJsDoc(paramToDef(parameter), { apiName })} ${apiName}`,\n ` {\n ${stringify(deleteUndefineds(paramToDef(parameter)))},\n ${getLineFor__OsdkTargetType(ontology, parameter.dataType)}\n }`,\n ],\n });\n}\n\nfunction getLineFor__OsdkTargetType(\n ontology: EnhancedOntologyDefinition,\n qdt: QueryDataType,\n) {\n if (qdt.type === \"object\" || qdt.type === \"objectSet\") {\n return `__OsdkTargetType?: ${\n ontology.requireObjectType(\n qdt.objectTypeApiName!,\n ).getImportedDefinitionIdentifier(true)\n }`;\n }\n return \"\";\n}\n\nexport function queryParamJsDoc(\n param: QueryParameterDefinition<any>,\n { apiName }: { apiName: string },\n): string {\n let ret = `/**\\n`;\n\n if (param.description) {\n if (param.description) {\n ret += ` * description: ${param.description}\\n`;\n }\n } else {\n ret += ` * (no ontology metadata)\\n`;\n }\n\n ret += ` */\\n`;\n return ret;\n}\n\nexport function getQueryParamType(\n enhancedOntology: EnhancedOntologyDefinition,\n input: QueryParameterDefinition,\n type: \"Param\" | \"Result\",\n isMapKey = false,\n): string {\n let inner = `unknown /* ${input.type} */`;\n\n switch (input.type) {\n case \"date\":\n inner = `Query${type}.PrimitiveType<${JSON.stringify(\"datetime\")}>`;\n break;\n\n case \"attachment\":\n case \"boolean\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"timestamp\":\n inner = `Query${type}.PrimitiveType<${JSON.stringify(input.type)}>`;\n break;\n case \"struct\":\n inner = `{\n ${\n stringify(input.struct, {\n \"*\": (p, formatter, apiName) => {\n return [\n `\n ${type === \"Param\" ? \"readonly \" : \"\"}\"${apiName}\"${\n p.nullable ? \"?\" : \"\"\n }`,\n getQueryParamType(enhancedOntology, p, type),\n ];\n },\n })\n }\n }`;\n break;\n case \"twoDimensionalAggregation\":\n inner = `Query${type}.TwoDimensionalAggregationType<${\n input.twoDimensionalAggregation.keyType === \"range\"\n ? `Query${type}.RangeKey<\"${input.twoDimensionalAggregation.keySubtype}\">`\n : `\"${input.twoDimensionalAggregation.keyType}\"`\n }, \"${input.twoDimensionalAggregation.valueType}\">`;\n break;\n\n case \"threeDimensionalAggregation\":\n inner = `Query${type}.ThreeDimensionalAggregationType<${\n input.threeDimensionalAggregation.keyType === \"range\"\n ? `Query${type}.RangeKey<\"${input.threeDimensionalAggregation.keySubtype}\">`\n : `\"${input.threeDimensionalAggregation.keyType}\"`\n },${\n input.threeDimensionalAggregation.valueType.keyType === \"range\"\n ? `Query${type}.RangeKey<\"${input.threeDimensionalAggregation.valueType.keySubtype}\">`\n : `\"${input.threeDimensionalAggregation.valueType.keyType}\"`\n }, \n \"${input.threeDimensionalAggregation.valueType.valueType}\">`;\n break;\n case \"object\":\n if (isMapKey) {\n inner = `ObjectSpecifier<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n }\n inner = `Query${type}.ObjectType<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"objectSet\":\n inner = `Query${type}.ObjectSetType<${\n enhancedOntology.requireObjectType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"set\":\n inner = `${type === \"Param\" ? \"Readonly\" : \"\"}Set<${\n getQueryParamType(enhancedOntology, input.set, type)\n }>`;\n break;\n\n case \"union\":\n inner = input.union.map((u) =>\n getQueryParamType(enhancedOntology, u, type)\n ).join(\" | \");\n break;\n\n case \"map\":\n inner = `Partial<Record<${\n getQueryParamType(enhancedOntology, input.keyType, type, true)\n }, ${getQueryParamType(enhancedOntology, input.valueType, type)}>>`;\n }\n\n if (input.multiplicity && type === \"Param\") {\n return `ReadonlyArray<${inner}>`;\n } else if (input.multiplicity) {\n return `Array<${inner}>`;\n }\n return inner;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"generatePerQueryDataFiles.js","names":["wireQueryDataTypeToQueryDataTypeDefinition","wireQueryParameterV2ToQueryParameterDefinition","paramToDef","wireQueryTypeV2ToSdkQueryDefinitionNoParams","path","getInterfaceTypeApiNamesFromQuery","getObjectImports","getObjectTypeApiNamesFromQuery","deleteUndefineds","stringify","formatTs","getDescriptionIfPresent","generatePerQueryDataFilesV2","fs","outDir","rootOutDir","ontology","fixedVersionQueryTypes","importExt","forInternalUse","relOutDir","join","mkdir","recursive","Promise","all","Object","values","queryTypes","map","query","generateV2QueryFile","writeFile","shortApiName","getImportPathRelTo","keys","length","relFilePath","objectTypes","interfaceTypes","interfaceAndObjectTypes","Set","o","requireObjectType","requireInterfaceType","importObjects","baseProps","raw","outputBase","output","isUsingFixedVersion","includes","fullApiName","description","parameters","paramsIdentifier","*","parameter","formatter","apiName","q","queryParamJsDoc","nullable","getQueryParamType","type","dataType","parameterDefsForType","getLineFor__OsdkTargetType","undefined","displayName","rid","definitionIdentifier","valueFormatter","qdt","objectTypeApiName","getImportedDefinitionIdentifier","param","ret","enhancedOntology","input","isMapKey","inner","JSON","struct","p","twoDimensionalAggregation","keyType","keySubtype","valueType","threeDimensionalAggregation","object","interface","objectSet","set","union","u","multiplicity"],"sources":["generatePerQueryDataFiles.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { QueryParameterDefinition } from \"@osdk/api\";\nimport type { QueryDataType } from \"@osdk/foundry.ontologies\";\nimport {\n wireQueryDataTypeToQueryDataTypeDefinition,\n wireQueryParameterV2ToQueryParameterDefinition as paramToDef,\n wireQueryTypeV2ToSdkQueryDefinitionNoParams,\n} from \"@osdk/generator-converters\";\nimport path from \"node:path\";\nimport type { EnhancedOntologyDefinition } from \"../GenerateContext/EnhancedOntologyDefinition.js\";\nimport type { EnhancedQuery } from \"../GenerateContext/EnhancedQuery.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport type { MinimalFs } from \"../MinimalFs.js\";\nimport { getInterfaceTypeApiNamesFromQuery } from \"../shared/getInterfaceTypeApiNamesFromQuery.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { getObjectTypeApiNamesFromQuery } from \"../shared/getObjectTypeApiNamesFromQuery.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { stringify } from \"../util/stringify.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\nimport { getDescriptionIfPresent } from \"./getDescriptionIfPresent.js\";\n\nexport async function generatePerQueryDataFilesV2(\n {\n fs,\n outDir: rootOutDir,\n ontology,\n fixedVersionQueryTypes,\n importExt = \"\",\n forInternalUse = false,\n }: Pick<\n GenerateContext,\n | \"fs\"\n | \"outDir\"\n | \"importExt\"\n | \"ontology\"\n | \"forInternalUse\"\n | \"fixedVersionQueryTypes\"\n >,\n v2: boolean,\n): Promise<void> {\n const relOutDir = path.join(\".\", \"ontology\", \"queries\");\n const outDir = path.join(rootOutDir, \"ontology\", \"queries\");\n await fs.mkdir(outDir, { recursive: true });\n await Promise.all(\n Object.values(ontology.queryTypes).map(async query => {\n await generateV2QueryFile(\n fs,\n outDir,\n relOutDir,\n query,\n importExt,\n ontology,\n forInternalUse,\n fixedVersionQueryTypes,\n );\n }),\n );\n\n const indexFilePath = `${outDir}.ts`;\n await fs.writeFile(\n indexFilePath,\n await formatTs(`\n ${\n Object.values(ontology.queryTypes).map(query =>\n `export {${query.shortApiName}} from \"${\n query.getImportPathRelTo(relOutDir)\n }\";`\n )\n .join(\"\\n\")\n }\n ${Object.keys(ontology.queryTypes).length === 0 ? \"export {};\" : \"\"}\n `),\n );\n}\n\nasync function generateV2QueryFile(\n fs: MinimalFs,\n outDir: string,\n relOutDir: string,\n query: EnhancedQuery,\n importExt: string,\n ontology: EnhancedOntologyDefinition,\n forInternalUse: boolean,\n fixedVersionQueryTypes: string[],\n) {\n const relFilePath = path.join(relOutDir, `${query.shortApiName}.ts`);\n const objectTypes = getObjectTypeApiNamesFromQuery(query);\n const interfaceTypes = getInterfaceTypeApiNamesFromQuery(query);\n const interfaceAndObjectTypes = new Set(\n [\n ...objectTypes.map(o => ontology.requireObjectType(o)),\n ...interfaceTypes.map(o => ontology.requireInterfaceType(o)),\n ],\n );\n\n const importObjects = getObjectImports(\n interfaceAndObjectTypes,\n \"\",\n relFilePath,\n true,\n );\n\n const baseProps = deleteUndefineds(\n wireQueryTypeV2ToSdkQueryDefinitionNoParams(query.raw),\n );\n\n const outputBase = deleteUndefineds(\n wireQueryDataTypeToQueryDataTypeDefinition(query.output),\n );\n\n const isUsingFixedVersion = fixedVersionQueryTypes.includes(\n query.fullApiName,\n );\n\n await fs.writeFile(\n path.join(outDir, `${query.shortApiName}.ts`),\n await formatTs(`\n import type { ObjectSpecifier, QueryDefinition, QueryParam, QueryResult, VersionBound} from \"${\n forInternalUse ? \"@osdk/api\" : \"@osdk/client\"\n }\";\n import type { $ExpectedClientVersion } from \"../../OntologyMetadata${importExt}\";\n import { $osdkMetadata} from \"../../OntologyMetadata${importExt}\";\n ${importObjects}\n\n export namespace ${query.shortApiName} {\n export interface Signature {\n ${getDescriptionIfPresent(query.description)}\n (${\n Object.keys(query.parameters).length > 0\n ? `query: ${query.paramsIdentifier}`\n : \"\"\n }): Promise<${query.shortApiName}.ReturnType>\n }\n\n ${\n Object.keys(query.parameters).length > 0\n ? `\n export interface Parameters {\n ${\n stringify(query.parameters, {\n \"*\": (parameter, formatter, apiName) => {\n const q = paramToDef(parameter);\n return [\n `\n ${\n queryParamJsDoc(paramToDef(parameter), { apiName })\n }readonly \"${apiName}\"${q.nullable ? \"?\" : \"\"}`,\n getQueryParamType(ontology, q, \"Param\"),\n ];\n },\n })\n }\n }`\n : \"\"\n }\n\n ${\n query.output.type === \"struct\"\n ? `\n export interface ReturnType \n ${\n getQueryParamType(\n ontology,\n paramToDef({ dataType: query.output }),\n \"Result\",\n )\n }\n `\n : `\n export type ReturnType = ${\n getQueryParamType(\n ontology,\n paramToDef({ dataType: query.output }),\n \"Result\",\n )\n }\n `\n }\n }\n \n \n export interface ${query.shortApiName} extends QueryDefinition<\n ${query.shortApiName}.Signature\n >, VersionBound<$ExpectedClientVersion>{\n __DefinitionMetadata?: {\n ${stringify(baseProps)}\n isFixedVersion: ${isUsingFixedVersion};\n parameters: {\n ${parameterDefsForType(ontology, query)}\n };\n output: {\n ${stringify(outputBase)},\n ${getLineFor__OsdkTargetType(ontology, query.output)}\n };\n signature: ${query.shortApiName}.Signature;\n }, \n ${\n stringify(baseProps, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"rid\": () => undefined,\n })\n }, \n osdkMetadata: typeof $osdkMetadata;\n }\n\n\n export const ${query.shortApiName}: ${query.definitionIdentifier} = {\n ${\n stringify(baseProps, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"rid\": () => undefined,\n })\n },\n isFixedVersion: ${isUsingFixedVersion},\n osdkMetadata: $osdkMetadata\n };\n `),\n );\n}\n\nfunction parameterDefsForType(\n ontology: EnhancedOntologyDefinition,\n query: EnhancedQuery,\n) {\n return stringify(query.parameters, {\n \"*\": (parameter, valueFormatter, apiName) => [\n `${queryParamJsDoc(paramToDef(parameter), { apiName })} ${apiName}`,\n ` {\n ${stringify(deleteUndefineds(paramToDef(parameter)))},\n ${getLineFor__OsdkTargetType(ontology, parameter.dataType)}\n }`,\n ],\n });\n}\n\nfunction getLineFor__OsdkTargetType(\n ontology: EnhancedOntologyDefinition,\n qdt: QueryDataType,\n) {\n if (qdt.type === \"object\" || qdt.type === \"objectSet\") {\n return `__OsdkTargetType?: ${\n ontology.requireObjectType(\n qdt.objectTypeApiName!,\n ).getImportedDefinitionIdentifier(true)\n }`;\n }\n return \"\";\n}\n\nexport function queryParamJsDoc(\n param: QueryParameterDefinition<any>,\n { apiName }: { apiName: string },\n): string {\n let ret = `/**\\n`;\n\n if (param.description) {\n if (param.description) {\n ret += ` * description: ${param.description}\\n`;\n }\n } else {\n ret += ` * (no ontology metadata)\\n`;\n }\n\n ret += ` */\\n`;\n return ret;\n}\n\nexport function getQueryParamType(\n enhancedOntology: EnhancedOntologyDefinition,\n input: QueryParameterDefinition,\n type: \"Param\" | \"Result\",\n isMapKey = false,\n): string {\n let inner = `unknown /* ${input.type} */`;\n\n switch (input.type) {\n case \"date\":\n inner = `Query${type}.PrimitiveType<${JSON.stringify(\"datetime\")}>`;\n break;\n\n case \"attachment\":\n case \"boolean\":\n case \"double\":\n case \"float\":\n case \"integer\":\n case \"long\":\n case \"string\":\n case \"timestamp\":\n inner = `Query${type}.PrimitiveType<${JSON.stringify(input.type)}>`;\n break;\n case \"struct\":\n inner = `{\n ${\n stringify(input.struct, {\n \"*\": (p, formatter, apiName) => {\n return [\n `\n ${type === \"Param\" ? \"readonly \" : \"\"}\"${apiName}\"${\n p.nullable ? \"?\" : \"\"\n }`,\n getQueryParamType(enhancedOntology, p, type),\n ];\n },\n })\n }\n }`;\n break;\n case \"twoDimensionalAggregation\":\n inner = `Query${type}.TwoDimensionalAggregationType<${\n input.twoDimensionalAggregation.keyType === \"range\"\n ? `Query${type}.RangeKey<\"${input.twoDimensionalAggregation.keySubtype}\">`\n : `\"${input.twoDimensionalAggregation.keyType}\"`\n }, \"${input.twoDimensionalAggregation.valueType}\">`;\n break;\n\n case \"threeDimensionalAggregation\":\n inner = `Query${type}.ThreeDimensionalAggregationType<${\n input.threeDimensionalAggregation.keyType === \"range\"\n ? `Query${type}.RangeKey<\"${input.threeDimensionalAggregation.keySubtype}\">`\n : `\"${input.threeDimensionalAggregation.keyType}\"`\n },${\n input.threeDimensionalAggregation.valueType.keyType === \"range\"\n ? `Query${type}.RangeKey<\"${input.threeDimensionalAggregation.valueType.keySubtype}\">`\n : `\"${input.threeDimensionalAggregation.valueType.keyType}\"`\n }, \n \"${input.threeDimensionalAggregation.valueType.valueType}\">`;\n break;\n case \"object\":\n if (isMapKey) {\n inner = `ObjectSpecifier<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n }\n inner = `Query${type}.ObjectType<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n case \"interface\":\n inner = `Query${type}.InterfaceType<${\n enhancedOntology.requireInterfaceType(input.interface)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"objectSet\":\n inner = `Query${type}.ObjectSetType<${\n enhancedOntology.requireObjectType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"interfaceObjectSet\":\n inner = `Query${type}.ObjectSetType<${\n enhancedOntology.requireInterfaceType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"set\":\n inner = `${type === \"Param\" ? \"Readonly\" : \"\"}Set<${\n getQueryParamType(enhancedOntology, input.set, type)\n }>`;\n break;\n\n case \"union\":\n inner = input.union.map((u) =>\n getQueryParamType(enhancedOntology, u, type)\n ).join(\" | \");\n break;\n\n case \"map\":\n inner = `Partial<Record<${\n getQueryParamType(enhancedOntology, input.keyType, type, true)\n }, ${getQueryParamType(enhancedOntology, input.valueType, type)}>>`;\n }\n\n if (input.multiplicity && type === \"Param\") {\n return `ReadonlyArray<${inner}>`;\n } else if (input.multiplicity) {\n return `Array<${inner}>`;\n }\n return inner;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -182,8 +182,10 @@ export function createDefinition(object, ontology, identifier, {
|
|
|
182
182
|
strictProps: ${osdkObjectStrictPropsIdentifier};
|
|
183
183
|
${stringify(definition, {
|
|
184
184
|
links: () => `{
|
|
185
|
-
${stringify(definition.links, {
|
|
186
|
-
"*":
|
|
185
|
+
${definition.type === "interface" ? stringify(definition.links, {
|
|
186
|
+
"*": linkDefinition => `$InterfaceMetadata.Link<${linkDefinition.targetType === "interface" ? ontology.requireInterfaceType(linkDefinition.targetTypeApiName).getImportedDefinitionIdentifier(true) : ontology.requireObjectType(linkDefinition.targetTypeApiName).getImportedDefinitionIdentifier(true)}, ${linkDefinition.multiplicity}>`
|
|
187
|
+
}) : stringify(definition.links, {
|
|
188
|
+
"*": linkDefinition => `$ObjectMetadata.Link<${ontology.requireObjectType(linkDefinition.targetType).getImportedDefinitionIdentifier(true)}, ${linkDefinition.multiplicity}>`
|
|
187
189
|
})}
|
|
188
190
|
}`,
|
|
189
191
|
properties: () => `{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wireObjectTypeV2ToSdkObjectConstV2.js","names":["wireObjectTypeFullMetadataToSdkObjectMetadata","consola","EnhancedObjectType","ForeignType","getObjectImports","propertyJsdoc","stringify","wireObjectTypeV2ToSdkObjectConstV2","wireObject","ontology","forInternalUse","currentFilePath","object","requireObjectType","objectType","apiName","Error","uniqueLinkTargetTypes","Set","linkTypes","map","a","objectTypeApiName","definition","raw","objectDefIdentifier","getDefinitionIdentifier","objectSetIdentifier","shortApiName","propertyKeysIdentifier","osdkObjectPropsIdentifier","osdkObjectStrictPropsIdentifier","osdkObjectLinksIdentifier","osdkObjectIdentifier","identifiers","imports","createPropertyKeys","createLinks","createProps","createObjectSet","createOsdkObject","createDefinition","fullApiName","identifier","getCleanedUpDefinition","maybeStripNamespace","type","q","apiNamespace","startsWith","slice","length","strict","propertyMetadata","properties","undefined","*","propertyDefinition","_","remapStructType","JSON","multiplicity","nullable","primaryKeyApiName","links","targetType","getImportedDefinitionIdentifier","Object","keys","key","linkTarget","join","structType","output","entries","value"],"sources":["wireObjectTypeV2ToSdkObjectConstV2.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeFullMetadata } from \"@osdk/foundry.ontologies\";\nimport { wireObjectTypeFullMetadataToSdkObjectMetadata } from \"@osdk/generator-converters\";\nimport consola from \"consola\";\nimport type { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport type { EnhancedOntologyDefinition } from \"../GenerateContext/EnhancedOntologyDefinition.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { propertyJsdoc } from \"../shared/propertyJsdoc.js\";\nimport { stringify } from \"../util/stringify.js\";\n\n/** @internal */\nexport function wireObjectTypeV2ToSdkObjectConstV2(\n wireObject: ObjectTypeFullMetadata,\n { ontology, forInternalUse }: Pick<\n GenerateContext,\n \"ontology\" | \"forInternalUse\"\n >,\n currentFilePath: string,\n) {\n const object = ontology.requireObjectType(\n wireObject.objectType.apiName,\n true,\n );\n if (object instanceof ForeignType) {\n throw new Error(\"Should not be generating types for an external type\");\n }\n const uniqueLinkTargetTypes = new Set(\n wireObject.linkTypes.map(a =>\n ontology.requireObjectType(a.objectTypeApiName, false)\n ),\n );\n\n const definition = wireObjectTypeFullMetadataToSdkObjectMetadata(\n object.raw,\n true,\n consola,\n );\n\n const objectDefIdentifier = object.getDefinitionIdentifier(true);\n\n const objectSetIdentifier = `${object.shortApiName}.ObjectSet`;\n const propertyKeysIdentifier = `${object.shortApiName}.PropertyKeys`;\n // const osdkObjectPropsIdentifier = `OsdkObjectProps$${objectDefIdentifier}`;\n const osdkObjectPropsIdentifier = `${object.shortApiName}.Props`;\n const osdkObjectStrictPropsIdentifier = `${object.shortApiName}.StrictProps`;\n const osdkObjectLinksIdentifier = `${object.shortApiName}.Links`;\n const osdkObjectIdentifier = `${object.shortApiName}.OsdkObject`;\n\n const identifiers: Identifiers = {\n objectDefIdentifier: object.shortApiName,\n osdkObjectLinksIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n objectSetIdentifier,\n osdkObjectIdentifier,\n propertyKeysIdentifier,\n };\n\n function getV2Types(\n object: EnhancedObjectType,\n forInternalUse: boolean = false,\n ) {\n return `import type {\n PropertyKeys as $PropertyKeys, \n ObjectTypeDefinition as $ObjectTypeDefinition,\n ObjectMetadata as $ObjectMetadata,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n import type {\n ObjectSet as $ObjectSet, \n Osdk as $Osdk,\n OsdkObject as $OsdkObject,\n PropertyValueWireToClient as $PropType,\n SingleLinkAccessor as $SingleLinkAccessor,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n\n\n export namespace ${object.shortApiName} {\n\n ${createPropertyKeys(object)}\n\n\n ${createLinks(ontology, object, \"Links\")}\n\n ${createProps(object, \"Props\", false)}\n ${createProps(object, \"StrictProps\", true)}\n\n ${createObjectSet(object, identifiers)}\n \n ${createOsdkObject(object, \"OsdkInstance\", identifiers)}\n } \n\n\n\n ${createDefinition(object, ontology, object.shortApiName, identifiers)}\n `;\n }\n\n const imports = getObjectImports(\n uniqueLinkTargetTypes,\n definition.apiName,\n currentFilePath,\n true,\n );\n\n return `${imports}${getV2Types(object, forInternalUse)}\n\n export const ${object.shortApiName}: ${objectDefIdentifier}\n = {\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\",\n apiName: \"${object.fullApiName}\",\n osdkMetadata: $osdkMetadata, \n };`;\n}\n\nexport interface Identifiers extends\n Record<\n | \"osdkObjectIdentifier\"\n | \"propertyKeysIdentifier\"\n | \"osdkObjectPropsIdentifier\"\n | \"objectDefIdentifier\"\n | \"osdkObjectLinksIdentifier\"\n | \"osdkObjectStrictPropsIdentifier\"\n | \"objectSetIdentifier\",\n string\n >\n{}\n\nexport function createOsdkObject(\n object: EnhancedObjectType | EnhancedInterfaceType,\n identifier: string,\n {\n osdkObjectPropsIdentifier,\n objectDefIdentifier,\n osdkObjectStrictPropsIdentifier,\n osdkObjectLinksIdentifier,\n }: Identifiers,\n) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n export type ${identifier}<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > \n = $Osdk.Instance<\n ${objectDefIdentifier}, \n OPTIONS,\n K\n >;\n \n\n /** @deprecated use ${identifier} */\n export type OsdkObject<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > = ${identifier}<OPTIONS, K>;\n ;\n `;\n}\n\nexport function createObjectSet(\n object: EnhancedObjectType | EnhancedInterfaceType,\n {\n objectDefIdentifier,\n objectSetIdentifier,\n propertyKeysIdentifier,\n osdkObjectIdentifier,\n }: Identifiers,\n) {\n return `\nexport interface ObjectSet extends \n$ObjectSet<${objectDefIdentifier},\n\n${objectSetIdentifier}\n>\n{\n\n}\n`;\n}\n\nfunction maybeStripNamespace(\n type: EnhancedInterfaceType | EnhancedObjectType,\n q: string,\n) {\n if (\n type.apiNamespace && q.startsWith(`${type.apiNamespace}.`)\n ) {\n return q.slice(type.apiNamespace.length + 1);\n } else {\n return q;\n }\n}\n\nexport function createProps(\n type: EnhancedInterfaceType | EnhancedObjectType,\n identifier: string,\n strict: boolean,\n): string {\n if (identifier === \"StrictProps\") {\n return `export type StrictProps = Props`;\n }\n const definition = type.getCleanedUpDefinition(true);\n const propertyMetadata = type instanceof EnhancedObjectType\n ? type.raw.objectType.properties\n : undefined;\n return `export interface ${identifier} {\n${\n stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) => {\n return [\n `${\n propertyJsdoc(propertyDefinition, propertyMetadata?.[apiName], {\n apiName,\n })\n }readonly \"${maybeStripNamespace(type, apiName)}\"`,\n (typeof propertyDefinition.type === \"object\"\n ? remapStructType(propertyDefinition.type)\n : `$PropType[${JSON.stringify(propertyDefinition.type)}]`)\n + `${propertyDefinition.multiplicity ? \"[]\" : \"\"}${\n propertyDefinition.nullable\n || (!strict\n && !(definition.type === \"object\"\n && definition.primaryKeyApiName === apiName))\n ? `| undefined`\n : \"\"\n }`,\n ] as [string, string];\n },\n })\n }\n }`;\n}\n\nexport function createDefinition(\n object: EnhancedObjectType | EnhancedInterfaceType,\n ontology: EnhancedOntologyDefinition,\n identifier: string,\n {\n objectDefIdentifier,\n objectSetIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n osdkObjectLinksIdentifier,\n }: Identifiers,\n) {\n const definition = object.getCleanedUpDefinition(true);\n const propertyMetadata = object instanceof EnhancedObjectType\n ? object.raw.objectType.properties\n : undefined;\n return `\n export interface ${identifier} extends ${\n object instanceof EnhancedObjectType\n ? `$ObjectTypeDefinition`\n : `$InterfaceDefinition`\n } {\n osdkMetadata: typeof $osdkMetadata;\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\";\n apiName: \"${object.fullApiName}\";\n __DefinitionMetadata?: {\n objectSet: ${objectSetIdentifier};\n props: ${osdkObjectPropsIdentifier};\n linksType: ${osdkObjectLinksIdentifier};\n strictProps: ${osdkObjectStrictPropsIdentifier};\n ${\n stringify(definition, {\n links: (_value) =>\n `{\n ${\n stringify(definition.links, {\n \"*\": (definition) =>\n `$ObjectMetadata.Link<${\n ontology.requireObjectType(definition.targetType)\n .getImportedDefinitionIdentifier(true)\n }, ${definition.multiplicity}>`,\n })\n }\n }`,\n properties: (_value) => (`{\n ${\n stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) =>\n [\n `${\n propertyJsdoc(propertyDefinition, propertyMetadata?.[apiName], {\n apiName,\n })\n }\"${maybeStripNamespace(object, apiName)}\"`,\n `$PropertyDef<${JSON.stringify(propertyDefinition.type)}, \"${\n propertyDefinition.nullable ? \"nullable\" : \"non-nullable\"\n }\", \"${propertyDefinition.multiplicity ? \"array\" : \"single\"}\">`,\n ] as [string, string],\n })\n }\n }`),\n })\n }\n } \n}\n `;\n}\n\nexport function createLinks(\n ontology: EnhancedOntologyDefinition,\n object: EnhancedObjectType | EnhancedInterfaceType,\n identifier: string,\n) {\n const definition = object.getCleanedUpDefinition(true);\n\n return `\n ${\n Object.keys(definition.links).length === 0\n ? `export type ${identifier} = {};`\n : `\n export interface ${identifier} {\n${\n stringify(definition.links, {\n \"*\": (definition, _, key) => {\n const linkTarget = ontology.requireObjectType(\n definition.targetType,\n )\n .getImportedDefinitionIdentifier(true);\n\n return [\n `readonly ${key}`,\n `${\n definition.multiplicity\n ? `${linkTarget}.ObjectSet`\n : `$SingleLinkAccessor<${linkTarget}>`\n }\n `,\n ];\n },\n })\n }\n }\n `\n }`;\n}\n\nexport function createPropertyKeys(\n type: EnhancedObjectType | EnhancedInterfaceType,\n) {\n const properties = Object.keys(type.getCleanedUpDefinition(true).properties);\n return `export type PropertyKeys = ${\n properties.length === 0\n ? \"never\"\n : properties.map(\n (a) => maybeStripNamespace(type, a),\n ).map(a => `\"${a}\"`).join(\"|\")\n };`;\n}\n\nfunction remapStructType(structType: Record<string, any>): string {\n let output = `{`;\n Object.entries(structType).map(([key, value]) =>\n output += `${key}:$PropType[${JSON.stringify(value)}]|undefined;`\n );\n output += \"}\";\n return output;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"wireObjectTypeV2ToSdkObjectConstV2.js","names":["wireObjectTypeFullMetadataToSdkObjectMetadata","consola","EnhancedObjectType","ForeignType","getObjectImports","propertyJsdoc","stringify","wireObjectTypeV2ToSdkObjectConstV2","wireObject","ontology","forInternalUse","currentFilePath","object","requireObjectType","objectType","apiName","Error","uniqueLinkTargetTypes","Set","linkTypes","map","a","objectTypeApiName","definition","raw","objectDefIdentifier","getDefinitionIdentifier","objectSetIdentifier","shortApiName","propertyKeysIdentifier","osdkObjectPropsIdentifier","osdkObjectStrictPropsIdentifier","osdkObjectLinksIdentifier","osdkObjectIdentifier","identifiers","imports","createPropertyKeys","createLinks","createProps","createObjectSet","createOsdkObject","createDefinition","fullApiName","identifier","getCleanedUpDefinition","maybeStripNamespace","type","q","apiNamespace","startsWith","slice","length","strict","propertyMetadata","properties","undefined","*","propertyDefinition","_","remapStructType","JSON","multiplicity","nullable","primaryKeyApiName","links","linkDefinition","targetType","requireInterfaceType","targetTypeApiName","getImportedDefinitionIdentifier","Object","keys","key","linkTarget","join","structType","output","entries","value"],"sources":["wireObjectTypeV2ToSdkObjectConstV2.ts"],"sourcesContent":["/*\n * Copyright 2023 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeFullMetadata } from \"@osdk/foundry.ontologies\";\nimport { wireObjectTypeFullMetadataToSdkObjectMetadata } from \"@osdk/generator-converters\";\nimport consola from \"consola\";\nimport type { EnhancedInterfaceType } from \"../GenerateContext/EnhancedInterfaceType.js\";\nimport { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport type { EnhancedOntologyDefinition } from \"../GenerateContext/EnhancedOntologyDefinition.js\";\nimport { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { propertyJsdoc } from \"../shared/propertyJsdoc.js\";\nimport { stringify } from \"../util/stringify.js\";\n\n/** @internal */\nexport function wireObjectTypeV2ToSdkObjectConstV2(\n wireObject: ObjectTypeFullMetadata,\n { ontology, forInternalUse }: Pick<\n GenerateContext,\n \"ontology\" | \"forInternalUse\"\n >,\n currentFilePath: string,\n) {\n const object = ontology.requireObjectType(\n wireObject.objectType.apiName,\n true,\n );\n if (object instanceof ForeignType) {\n throw new Error(\"Should not be generating types for an external type\");\n }\n const uniqueLinkTargetTypes = new Set(\n wireObject.linkTypes.map(a =>\n ontology.requireObjectType(a.objectTypeApiName, false)\n ),\n );\n\n const definition = wireObjectTypeFullMetadataToSdkObjectMetadata(\n object.raw,\n true,\n consola,\n );\n\n const objectDefIdentifier = object.getDefinitionIdentifier(true);\n\n const objectSetIdentifier = `${object.shortApiName}.ObjectSet`;\n const propertyKeysIdentifier = `${object.shortApiName}.PropertyKeys`;\n // const osdkObjectPropsIdentifier = `OsdkObjectProps$${objectDefIdentifier}`;\n const osdkObjectPropsIdentifier = `${object.shortApiName}.Props`;\n const osdkObjectStrictPropsIdentifier = `${object.shortApiName}.StrictProps`;\n const osdkObjectLinksIdentifier = `${object.shortApiName}.Links`;\n const osdkObjectIdentifier = `${object.shortApiName}.OsdkObject`;\n\n const identifiers: Identifiers = {\n objectDefIdentifier: object.shortApiName,\n osdkObjectLinksIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n objectSetIdentifier,\n osdkObjectIdentifier,\n propertyKeysIdentifier,\n };\n\n function getV2Types(\n object: EnhancedObjectType,\n forInternalUse: boolean = false,\n ) {\n return `import type {\n PropertyKeys as $PropertyKeys, \n ObjectTypeDefinition as $ObjectTypeDefinition,\n ObjectMetadata as $ObjectMetadata,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n import type {\n ObjectSet as $ObjectSet, \n Osdk as $Osdk,\n OsdkObject as $OsdkObject,\n PropertyValueWireToClient as $PropType,\n SingleLinkAccessor as $SingleLinkAccessor,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n\n\n export namespace ${object.shortApiName} {\n\n ${createPropertyKeys(object)}\n\n\n ${createLinks(ontology, object, \"Links\")}\n\n ${createProps(object, \"Props\", false)}\n ${createProps(object, \"StrictProps\", true)}\n\n ${createObjectSet(object, identifiers)}\n \n ${createOsdkObject(object, \"OsdkInstance\", identifiers)}\n } \n\n\n\n ${createDefinition(object, ontology, object.shortApiName, identifiers)}\n `;\n }\n\n const imports = getObjectImports(\n uniqueLinkTargetTypes,\n definition.apiName,\n currentFilePath,\n true,\n );\n\n return `${imports}${getV2Types(object, forInternalUse)}\n\n export const ${object.shortApiName}: ${objectDefIdentifier}\n = {\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\",\n apiName: \"${object.fullApiName}\",\n osdkMetadata: $osdkMetadata, \n };`;\n}\n\nexport interface Identifiers extends\n Record<\n | \"osdkObjectIdentifier\"\n | \"propertyKeysIdentifier\"\n | \"osdkObjectPropsIdentifier\"\n | \"objectDefIdentifier\"\n | \"osdkObjectLinksIdentifier\"\n | \"osdkObjectStrictPropsIdentifier\"\n | \"objectSetIdentifier\",\n string\n >\n{}\n\nexport function createOsdkObject(\n object: EnhancedObjectType | EnhancedInterfaceType,\n identifier: string,\n {\n osdkObjectPropsIdentifier,\n objectDefIdentifier,\n osdkObjectStrictPropsIdentifier,\n osdkObjectLinksIdentifier,\n }: Identifiers,\n) {\n const definition = object.getCleanedUpDefinition(true);\n return `\n export type ${identifier}<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > \n = $Osdk.Instance<\n ${objectDefIdentifier}, \n OPTIONS,\n K\n >;\n \n\n /** @deprecated use ${identifier} */\n export type OsdkObject<\n OPTIONS extends never | \"$rid\" = never,\n K extends keyof ${osdkObjectPropsIdentifier}= keyof ${osdkObjectPropsIdentifier},\n > = ${identifier}<OPTIONS, K>;\n ;\n `;\n}\n\nexport function createObjectSet(\n object: EnhancedObjectType | EnhancedInterfaceType,\n {\n objectDefIdentifier,\n objectSetIdentifier,\n propertyKeysIdentifier,\n osdkObjectIdentifier,\n }: Identifiers,\n) {\n return `\nexport interface ObjectSet extends \n$ObjectSet<${objectDefIdentifier},\n\n${objectSetIdentifier}\n>\n{\n\n}\n`;\n}\n\nfunction maybeStripNamespace(\n type: EnhancedInterfaceType | EnhancedObjectType,\n q: string,\n) {\n if (\n type.apiNamespace && q.startsWith(`${type.apiNamespace}.`)\n ) {\n return q.slice(type.apiNamespace.length + 1);\n } else {\n return q;\n }\n}\n\nexport function createProps(\n type: EnhancedInterfaceType | EnhancedObjectType,\n identifier: string,\n strict: boolean,\n): string {\n if (identifier === \"StrictProps\") {\n return `export type StrictProps = Props`;\n }\n const definition = type.getCleanedUpDefinition(true);\n const propertyMetadata = type instanceof EnhancedObjectType\n ? type.raw.objectType.properties\n : undefined;\n return `export interface ${identifier} {\n${\n stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) => {\n return [\n `${\n propertyJsdoc(propertyDefinition, propertyMetadata?.[apiName], {\n apiName,\n })\n }readonly \"${maybeStripNamespace(type, apiName)}\"`,\n (typeof propertyDefinition.type === \"object\"\n ? remapStructType(propertyDefinition.type)\n : `$PropType[${JSON.stringify(propertyDefinition.type)}]`)\n + `${propertyDefinition.multiplicity ? \"[]\" : \"\"}${\n propertyDefinition.nullable\n || (!strict\n && !(definition.type === \"object\"\n && definition.primaryKeyApiName === apiName))\n ? `| undefined`\n : \"\"\n }`,\n ] as [string, string];\n },\n })\n }\n }`;\n}\n\nexport function createDefinition(\n object: EnhancedObjectType | EnhancedInterfaceType,\n ontology: EnhancedOntologyDefinition,\n identifier: string,\n {\n objectDefIdentifier,\n objectSetIdentifier,\n osdkObjectPropsIdentifier,\n osdkObjectStrictPropsIdentifier,\n osdkObjectLinksIdentifier,\n }: Identifiers,\n) {\n const definition = object.getCleanedUpDefinition(true);\n const propertyMetadata = object instanceof EnhancedObjectType\n ? object.raw.objectType.properties\n : undefined;\n return `\n export interface ${identifier} extends ${\n object instanceof EnhancedObjectType\n ? `$ObjectTypeDefinition`\n : `$InterfaceDefinition`\n } {\n osdkMetadata: typeof $osdkMetadata;\n type: \"${object instanceof EnhancedObjectType ? \"object\" : \"interface\"}\";\n apiName: \"${object.fullApiName}\";\n __DefinitionMetadata?: {\n objectSet: ${objectSetIdentifier};\n props: ${osdkObjectPropsIdentifier};\n linksType: ${osdkObjectLinksIdentifier};\n strictProps: ${osdkObjectStrictPropsIdentifier};\n ${\n stringify(definition, {\n links: (_value) =>\n `{\n ${\n definition.type === \"interface\"\n ? stringify(definition.links, {\n \"*\": (linkDefinition) =>\n `$InterfaceMetadata.Link<${\n linkDefinition.targetType === \"interface\"\n ? ontology.requireInterfaceType(\n linkDefinition.targetTypeApiName,\n )\n .getImportedDefinitionIdentifier(true)\n : ontology.requireObjectType(\n linkDefinition.targetTypeApiName,\n ).getImportedDefinitionIdentifier(true)\n }, ${linkDefinition.multiplicity}>`,\n })\n : stringify(definition.links, {\n \"*\": (linkDefinition) =>\n `$ObjectMetadata.Link<${\n ontology.requireObjectType(linkDefinition.targetType)\n .getImportedDefinitionIdentifier(true)\n }, ${linkDefinition.multiplicity}>`,\n })\n }\n }`,\n properties: (_value) => (`{\n ${\n stringify(definition.properties, {\n \"*\": (propertyDefinition, _, apiName) =>\n [\n `${\n propertyJsdoc(propertyDefinition, propertyMetadata?.[apiName], {\n apiName,\n })\n }\"${maybeStripNamespace(object, apiName)}\"`,\n `$PropertyDef<${JSON.stringify(propertyDefinition.type)}, \"${\n propertyDefinition.nullable ? \"nullable\" : \"non-nullable\"\n }\", \"${propertyDefinition.multiplicity ? \"array\" : \"single\"}\">`,\n ] as [string, string],\n })\n }\n }`),\n })\n }\n } \n}\n `;\n}\n\nexport function createLinks(\n ontology: EnhancedOntologyDefinition,\n object: EnhancedObjectType | EnhancedInterfaceType,\n identifier: string,\n) {\n const definition = object.getCleanedUpDefinition(true);\n\n return `\n ${\n Object.keys(definition.links).length === 0\n ? `export type ${identifier} = {};`\n : `\n export interface ${identifier} {\n${\n stringify(definition.links, {\n \"*\": (definition, _, key) => {\n const linkTarget = ontology.requireObjectType(\n definition.targetType,\n )\n .getImportedDefinitionIdentifier(true);\n\n return [\n `readonly ${key}`,\n `${\n definition.multiplicity\n ? `${linkTarget}.ObjectSet`\n : `$SingleLinkAccessor<${linkTarget}>`\n }\n `,\n ];\n },\n })\n }\n }\n `\n }`;\n}\n\nexport function createPropertyKeys(\n type: EnhancedObjectType | EnhancedInterfaceType,\n) {\n const properties = Object.keys(type.getCleanedUpDefinition(true).properties);\n return `export type PropertyKeys = ${\n properties.length === 0\n ? \"never\"\n : properties.map(\n (a) => maybeStripNamespace(type, a),\n ).map(a => `\"${a}\"`).join(\"|\")\n };`;\n}\n\nfunction remapStructType(structType: Record<string, any>): string {\n let output = `{`;\n Object.entries(structType).map(([key, value]) =>\n output += `${key}:$PropType[${JSON.stringify(value)}]|undefined;`\n );\n output += \"}\";\n return output;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,6CAA6C,QAAQ,4BAA4B;AAC1F,OAAOC,OAAO,MAAM,SAAS;AAE7B,SAASC,kBAAkB,QAAQ,0CAA0C;AAE7E,SAASC,WAAW,QAAQ,mCAAmC;AAE/D,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,SAAS,QAAQ,sBAAsB;;AAEhD;AACA,OAAO,SAASC,kCAAkCA,CAChDC,UAAkC,EAClC;EAAEC,QAAQ;EAAEC;AAGZ,CAAC,EACDC,eAAuB,EACvB;EACA,MAAMC,MAAM,GAAGH,QAAQ,CAACI,iBAAiB,CACvCL,UAAU,CAACM,UAAU,CAACC,OAAO,EAC7B,IACF,CAAC;EACD,IAAIH,MAAM,YAAYT,WAAW,EAAE;IACjC,MAAM,IAAIa,KAAK,CAAC,qDAAqD,CAAC;EACxE;EACA,MAAMC,qBAAqB,GAAG,IAAIC,GAAG,CACnCV,UAAU,CAACW,SAAS,CAACC,GAAG,CAACC,CAAC,IACxBZ,QAAQ,CAACI,iBAAiB,CAACQ,CAAC,CAACC,iBAAiB,EAAE,KAAK,CACvD,CACF,CAAC;EAED,MAAMC,UAAU,GAAGvB,6CAA6C,CAC9DY,MAAM,CAACY,GAAG,EACV,IAAI,EACJvB,OACF,CAAC;EAED,MAAMwB,mBAAmB,GAAGb,MAAM,CAACc,uBAAuB,CAAC,IAAI,CAAC;EAEhE,MAAMC,mBAAmB,GAAG,GAAGf,MAAM,CAACgB,YAAY,YAAY;EAC9D,MAAMC,sBAAsB,GAAG,GAAGjB,MAAM,CAACgB,YAAY,eAAe;EACpE;EACA,MAAME,yBAAyB,GAAG,GAAGlB,MAAM,CAACgB,YAAY,QAAQ;EAChE,MAAMG,+BAA+B,GAAG,GAAGnB,MAAM,CAACgB,YAAY,cAAc;EAC5E,MAAMI,yBAAyB,GAAG,GAAGpB,MAAM,CAACgB,YAAY,QAAQ;EAChE,MAAMK,oBAAoB,GAAG,GAAGrB,MAAM,CAACgB,YAAY,aAAa;EAEhE,MAAMM,WAAwB,GAAG;IAC/BT,mBAAmB,EAAEb,MAAM,CAACgB,YAAY;IACxCI,yBAAyB;IACzBF,yBAAyB;IACzBC,+BAA+B;IAC/BJ,mBAAmB;IACnBM,oBAAoB;IACpBJ;EACF,CAAC;EAyCD,MAAMM,OAAO,GAAG/B,gBAAgB,CAC9Ba,qBAAqB,EACrBM,UAAU,CAACR,OAAO,EAClBJ,eAAe,EACf,IACF,CAAC;EAED,OAAO,GAAGwB,OAAO,GA9CjB,UACEvB,MAA0B,EAC1BF,cAAuB,GAAG,KAAK,EAC/B;IACA,OAAO;AACX;AACA;AACA;AACA,cAAcA,cAAc,GAAG,WAAW,GAAG,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,cAAcA,cAAc,GAAG,WAAW,GAAG,cAAc;AAC3D;AACA;AACA,uBAAuBE,MAAM,CAACgB,YAAY;AAC1C;AACA,QAAQQ,kBAAkB,CAACxB,MAAM,CAAC;AAClC;AACA;AACA,QAAQyB,WAAW,CAAC5B,QAAQ,EAAEG,MAAM,EAAE,OAAO,CAAC;AAC9C;AACA,QAAQ0B,WAAW,CAAC1B,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;AAC3C,QAAQ0B,WAAW,CAAC1B,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC;AAChD;AACA,QAAQ2B,eAAe,CAAC3B,MAAM,EAAEsB,WAAW,CAAC;AAC5C;AACA,QAAQM,gBAAgB,CAAC5B,MAAM,EAAE,cAAc,EAAEsB,WAAW,CAAC;AAC7D;AACA;AACA;AACA;AACA,MAAMO,gBAAgB,CAAC7B,MAAM,EAAEH,QAAQ,EAAEG,MAAM,CAACgB,YAAY,EAAEM,WAAW,CAAC;AAC1E,KAAK;EACH,CAAC,CAS8BtB,MAAM,EAAEF,cAAc,CAAC;AACxD;AACA,mBAAmBE,MAAM,CAACgB,YAAY,KAAKH,mBAAmB;AAC9D;AACA,eAAeb,MAAM,YAAYV,kBAAkB,GAAG,QAAQ,GAAG,WAAW;AAC5E,kBAAkBU,MAAM,CAAC8B,WAAW;AACpC;AACA,OAAO;AACP;AAeA,OAAO,SAASF,gBAAgBA,CAC9B5B,MAAkD,EAClD+B,UAAkB,EAClB;EACEb,yBAAyB;EACzBL,mBAAmB;EACnBM,+BAA+B;EAC/BC;AACW,CAAC,EACd;EACmBpB,MAAM,CAACgC,sBAAsB,CAAC,IAAI,CAAC;EACtD,OAAO;AACT,kBAAkBD,UAAU;AAC5B;AACA,wBAAwBb,yBAAyB,WAAWA,yBAAyB;AACrF;AACA;AACA,UAAUL,mBAAmB;AAC7B;AACA;AACA;AACA;AACA;AACA,0BAA0BkB,UAAU;AACpC;AACA;AACA,wBAAwBb,yBAAyB,WAAWA,yBAAyB;AACrF,UAAUa,UAAU;AACpB;AACA,KAAK;AACL;AAEA,OAAO,SAASJ,eAAeA,CAC7B3B,MAAkD,EAClD;EACEa,mBAAmB;EACnBE,mBAAmB;EACnBE,sBAAsB;EACtBI;AACW,CAAC,EACd;EACA,OAAO;AACT;AACA,aAAaR,mBAAmB;AAChC;AACA,EAAEE,mBAAmB;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASkB,mBAAmBA,CAC1BC,IAAgD,EAChDC,CAAS,EACT;EACA,IACED,IAAI,CAACE,YAAY,IAAID,CAAC,CAACE,UAAU,CAAC,GAAGH,IAAI,CAACE,YAAY,GAAG,CAAC,EAC1D;IACA,OAAOD,CAAC,CAACG,KAAK,CAACJ,IAAI,CAACE,YAAY,CAACG,MAAM,GAAG,CAAC,CAAC;EAC9C,CAAC,MAAM;IACL,OAAOJ,CAAC;EACV;AACF;AAEA,OAAO,SAAST,WAAWA,CACzBQ,IAAgD,EAChDH,UAAkB,EAClBS,MAAe,EACP;EACR,IAAIT,UAAU,KAAK,aAAa,EAAE;IAChC,OAAO,iCAAiC;EAC1C;EACA,MAAMpB,UAAU,GAAGuB,IAAI,CAACF,sBAAsB,CAAC,IAAI,CAAC;EACpD,MAAMS,gBAAgB,GAAGP,IAAI,YAAY5C,kBAAkB,GACvD4C,IAAI,CAACtB,GAAG,CAACV,UAAU,CAACwC,UAAU,GAC9BC,SAAS;EACb,OAAO,oBAAoBZ,UAAU;AACvC,EACIrC,SAAS,CAACiB,UAAU,CAAC+B,UAAU,EAAE;IAC/B,GAAG,EAAEE,CAACC,kBAAkB,EAAEC,CAAC,EAAE3C,OAAO,KAAK;MACvC,OAAO,CACL,GACEV,aAAa,CAACoD,kBAAkB,EAAEJ,gBAAgB,GAAGtC,OAAO,CAAC,EAAE;QAC7DA;MACF,CAAC,CAAC,aACS8B,mBAAmB,CAACC,IAAI,EAAE/B,OAAO,CAAC,GAAG,EAClD,CAAC,OAAO0C,kBAAkB,CAACX,IAAI,KAAK,QAAQ,GACxCa,eAAe,CAACF,kBAAkB,CAACX,IAAI,CAAC,GACxC,aAAac,IAAI,CAACtD,SAAS,CAACmD,kBAAkB,CAACX,IAAI,CAAC,GAAG,IACzD,GAAGW,kBAAkB,CAACI,YAAY,GAAG,IAAI,GAAG,EAAE,GAC9CJ,kBAAkB,CAACK,QAAQ,IACrB,CAACV,MAAM,IACN,EAAE7B,UAAU,CAACuB,IAAI,KAAK,QAAQ,IAC5BvB,UAAU,CAACwC,iBAAiB,KAAKhD,OAAO,CAAE,GAC/C,aAAa,GACb,EAAE,EACN,CACH;IACH;EACF,CAAC,CAAC;AACN,MACM;AACN;AAEA,OAAO,SAAS0B,gBAAgBA,CAC9B7B,MAAkD,EAClDH,QAAoC,EACpCkC,UAAkB,EAClB;EACElB,mBAAmB;EACnBE,mBAAmB;EACnBG,yBAAyB;EACzBC,+BAA+B;EAC/BC;AACW,CAAC,EACd;EACA,MAAMT,UAAU,GAAGX,MAAM,CAACgC,sBAAsB,CAAC,IAAI,CAAC;EACtD,MAAMS,gBAAgB,GAAGzC,MAAM,YAAYV,kBAAkB,GACzDU,MAAM,CAACY,GAAG,CAACV,UAAU,CAACwC,UAAU,GAChCC,SAAS;EACb,OAAO;AACT,uBAAuBZ,UAAU,YAC7B/B,MAAM,YAAYV,kBAAkB,GAChC,uBAAuB,GACvB,sBAAsB;AAC9B;AACA,eACeU,MAAM,YAAYV,kBAAkB,GAAG,QAAQ,GAAG,WAAW;AAC5E,kBAAkBU,MAAM,CAAC8B,WAAW;AACpC;AACA,mBAAmBf,mBAAmB;AACtC,eAAeG,yBAAyB;AACxC,mBAAmBE,yBAAyB;AAC5C,qBAAqBD,+BAA+B;AACpD,QACIzB,SAAS,CAACiB,UAAU,EAAE;IACpByC,KAAK,EAAEA,CAAA,KACL;AACR,UACUzC,UAAU,CAACuB,IAAI,KAAK,WAAW,GAC3BxC,SAAS,CAACiB,UAAU,CAACyC,KAAK,EAAE;MAC5B,GAAG,EAAGC,cAAc,IAClB,2BACEA,cAAc,CAACC,UAAU,KAAK,WAAW,GACrCzD,QAAQ,CAAC0D,oBAAoB,CAC7BF,cAAc,CAACG,iBACjB,CAAC,CACEC,+BAA+B,CAAC,IAAI,CAAC,GACtC5D,QAAQ,CAACI,iBAAiB,CAC1BoD,cAAc,CAACG,iBACjB,CAAC,CAACC,+BAA+B,CAAC,IAAI,CAAC,KACtCJ,cAAc,CAACJ,YAAY;IACpC,CAAC,CAAC,GACAvD,SAAS,CAACiB,UAAU,CAACyC,KAAK,EAAE;MAC5B,GAAG,EAAGC,cAAc,IAClB,wBACExD,QAAQ,CAACI,iBAAiB,CAACoD,cAAc,CAACC,UAAU,CAAC,CAClDG,+BAA+B,CAAC,IAAI,CAAC,KACrCJ,cAAc,CAACJ,YAAY;IACpC,CAAC,CAAC;AACd,QACQ;IACFP,UAAU,EAAEA,CAAA,KAAa;AAC/B,UACQhD,SAAS,CAACiB,UAAU,CAAC+B,UAAU,EAAE;MAC/B,GAAG,EAAEE,CAACC,kBAAkB,EAAEC,CAAC,EAAE3C,OAAO,KAClC,CACE,GACEV,aAAa,CAACoD,kBAAkB,EAAEJ,gBAAgB,GAAGtC,OAAO,CAAC,EAAE;QAC7DA;MACF,CAAC,CAAC,IACA8B,mBAAmB,CAACjC,MAAM,EAAEG,OAAO,CAAC,GAAG,EAC3C,gBAAgB6C,IAAI,CAACtD,SAAS,CAACmD,kBAAkB,CAACX,IAAI,CAAC,MACrDW,kBAAkB,CAACK,QAAQ,GAAG,UAAU,GAAG,cAAc,OACpDL,kBAAkB,CAACI,YAAY,GAAG,OAAO,GAAG,QAAQ,IAAI;IAErE,CAAC,CAAC;AACV;EAEI,CAAC,CAAC;AACN;AACA;AACA,GACG;AACH;AAEA,OAAO,SAASxB,WAAWA,CACzB5B,QAAoC,EACpCG,MAAkD,EAClD+B,UAAkB,EAClB;EACA,MAAMpB,UAAU,GAAGX,MAAM,CAACgC,sBAAsB,CAAC,IAAI,CAAC;EAEtD,OAAO;AACT,MACI0B,MAAM,CAACC,IAAI,CAAChD,UAAU,CAACyC,KAAK,CAAC,CAACb,MAAM,KAAK,CAAC,GACtC,eAAeR,UAAU,QAAQ,GACjC;AACR,2BAA2BA,UAAU;AACrC,EACQrC,SAAS,CAACiB,UAAU,CAACyC,KAAK,EAAE;IAC1B,GAAG,EAAER,CAACjC,UAAU,EAAEmC,CAAC,EAAEc,GAAG,KAAK;MAC3B,MAAMC,UAAU,GAAGhE,QAAQ,CAACI,iBAAiB,CAC3CU,UAAU,CAAC2C,UACb,CAAC,CACEG,+BAA+B,CAAC,IAAI,CAAC;MAExC,OAAO,CACL,YAAYG,GAAG,EAAE,EACjB,GACEjD,UAAU,CAACsC,YAAY,GACnB,GAAGY,UAAU,YAAY,GACzB,uBAAuBA,UAAU,GAAG;AACxD,WACW,CACE;IACH;EACF,CAAC,CAAC;AACV;AACA,KACK,EACD;AACJ;AAEA,OAAO,SAASrC,kBAAkBA,CAChCU,IAAgD,EAChD;EACA,MAAMQ,UAAU,GAAGgB,MAAM,CAACC,IAAI,CAACzB,IAAI,CAACF,sBAAsB,CAAC,IAAI,CAAC,CAACU,UAAU,CAAC;EAC5E,OAAO,8BACLA,UAAU,CAACH,MAAM,KAAK,CAAC,GACnB,OAAO,GACPG,UAAU,CAAClC,GAAG,CACbC,CAAC,IAAKwB,mBAAmB,CAACC,IAAI,EAAEzB,CAAC,CACpC,CAAC,CAACD,GAAG,CAACC,CAAC,IAAI,IAAIA,CAAC,GAAG,CAAC,CAACqD,IAAI,CAAC,GAAG,CAAC,GAC/B;AACL;AAEA,SAASf,eAAeA,CAACgB,UAA+B,EAAU;EAChE,IAAIC,MAAM,GAAG,GAAG;EAChBN,MAAM,CAACO,OAAO,CAACF,UAAU,CAAC,CAACvD,GAAG,CAAC,CAAC,CAACoD,GAAG,EAAEM,KAAK,CAAC,KAC1CF,MAAM,IAAI,GAAGJ,GAAG,cAAcZ,IAAI,CAACtD,SAAS,CAACwE,KAAK,CAAC,cACrD,CAAC;EACDF,MAAM,IAAI,GAAG;EACb,OAAOA,MAAM;AACf","ignoreList":[]}
|
package/build/cjs/index.cjs
CHANGED
|
@@ -814,8 +814,10 @@ function createDefinition(object, ontology, identifier, {
|
|
|
814
814
|
strictProps: ${osdkObjectStrictPropsIdentifier};
|
|
815
815
|
${stringify(definition, {
|
|
816
816
|
links: (_value) => `{
|
|
817
|
-
${stringify(definition.links, {
|
|
818
|
-
"*": (
|
|
817
|
+
${definition.type === "interface" ? stringify(definition.links, {
|
|
818
|
+
"*": (linkDefinition) => `$InterfaceMetadata.Link<${linkDefinition.targetType === "interface" ? ontology.requireInterfaceType(linkDefinition.targetTypeApiName).getImportedDefinitionIdentifier(true) : ontology.requireObjectType(linkDefinition.targetTypeApiName).getImportedDefinitionIdentifier(true)}, ${linkDefinition.multiplicity}>`
|
|
819
|
+
}) : stringify(definition.links, {
|
|
820
|
+
"*": (linkDefinition) => `$ObjectMetadata.Link<${ontology.requireObjectType(linkDefinition.targetType).getImportedDefinitionIdentifier(true)}, ${linkDefinition.multiplicity}>`
|
|
819
821
|
})}
|
|
820
822
|
}`,
|
|
821
823
|
properties: (_value) => `{
|
|
@@ -857,8 +859,9 @@ function remapStructType(structType) {
|
|
|
857
859
|
}
|
|
858
860
|
|
|
859
861
|
// src/v2.0/UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst.ts
|
|
860
|
-
function __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(interfaceDef, ontology, v2 = false, forInternalUse = false) {
|
|
862
|
+
function __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(interfaceDef, ontology, v2 = false, forInternalUse = false, currentFilePath = "") {
|
|
861
863
|
const definition = deleteUndefineds(generatorConverters.__UNSTABLE_wireInterfaceTypeV2ToSdkObjectDefinition(interfaceDef.raw, v2));
|
|
864
|
+
const uniqueLinkTargetTypes = new Set(definition.links ? Object.values(definition.links).map((a) => a.targetType === "object" ? ontology.requireObjectType(a.targetTypeApiName) : ontology.requireInterfaceType(a.targetTypeApiName)) : []);
|
|
862
865
|
const objectDefIdentifier = interfaceDef.getDefinitionIdentifier(v2);
|
|
863
866
|
const parents = definition.implements?.map((p) => {
|
|
864
867
|
const parent = ontology.requireInterfaceType(p, true);
|
|
@@ -908,22 +911,23 @@ function __UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(interfaceDef, ontology,
|
|
|
908
911
|
function getV2Types(forInternalUse2 = false) {
|
|
909
912
|
return `import type {
|
|
910
913
|
InterfaceDefinition as $InterfaceDefinition,
|
|
914
|
+
InterfaceMetadata as $InterfaceMetadata,
|
|
911
915
|
ObjectSet as $ObjectSet,
|
|
912
916
|
Osdk as $Osdk,
|
|
913
917
|
PropertyValueWireToClient as $PropType,
|
|
914
918
|
} from "${forInternalUse2 ? "@osdk/api" : "@osdk/client"}";
|
|
915
919
|
|
|
916
|
-
${Object.keys(definition.links).length
|
|
920
|
+
${definition.links ? Object.keys(definition.links).length > 0 ? `
|
|
917
921
|
export interface ${osdkObjectLinksIdentifier} {
|
|
918
922
|
${stringify(definition.links, {
|
|
919
923
|
"*": (definition2) => {
|
|
920
|
-
const linkTarget = ontology.requireObjectType(definition2.
|
|
921
|
-
return `${definition2.multiplicity ? `${linkTarget}
|
|
924
|
+
const linkTarget = definition2.targetType === "object" ? ontology.requireObjectType(definition2.targetTypeApiName).getImportedDefinitionIdentifier(v2) : ontology.requireInterfaceType(definition2.targetTypeApiName).getImportedDefinitionIdentifier(v2);
|
|
925
|
+
return `${definition2.multiplicity ? `${linkTarget}.ObjectSet` : `${linkTarget}.ObjectSet`}
|
|
922
926
|
`;
|
|
923
927
|
}
|
|
924
928
|
})}
|
|
925
929
|
}
|
|
926
|
-
`}
|
|
930
|
+
` : `export type ${osdkObjectLinksIdentifier} = {};` : `export type ${osdkObjectLinksIdentifier} = {};`}
|
|
927
931
|
|
|
928
932
|
export namespace ${interfaceDef.shortApiName} {
|
|
929
933
|
|
|
@@ -944,8 +948,8 @@ ${stringify(definition.links, {
|
|
|
944
948
|
|
|
945
949
|
`;
|
|
946
950
|
}
|
|
947
|
-
const imports =
|
|
948
|
-
return `${imports
|
|
951
|
+
const imports = getObjectImports(uniqueLinkTargetTypes, definition.apiName, currentFilePath, true);
|
|
952
|
+
return `${imports}
|
|
949
953
|
${v2 ? getV2Types(forInternalUse) : ""}
|
|
950
954
|
|
|
951
955
|
export const ${interfaceDef.shortApiName}: ${interfaceDef.shortApiName} = {
|
|
@@ -969,10 +973,11 @@ async function generatePerInterfaceDataFiles({
|
|
|
969
973
|
});
|
|
970
974
|
for (const obj of Object.values(ontology.interfaceTypes)) {
|
|
971
975
|
if (obj instanceof ForeignType) continue;
|
|
976
|
+
const relPath = path8__namespace.default.join(".", "ontology", "interfaces", `${obj.shortApiName}.ts`);
|
|
972
977
|
await fs2.writeFile(path8__namespace.default.join(interfacesDir, `${obj.shortApiName}.ts`), await formatTs(`
|
|
973
978
|
import type { PropertyDef as $PropertyDef } from "${forInternalUse ? "@osdk/api" : "@osdk/client"}";
|
|
974
979
|
import { $osdkMetadata } from "../../OntologyMetadata${importExt}";
|
|
975
|
-
${__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(obj, ontology, true, forInternalUse)}
|
|
980
|
+
${__UNSTABLE_wireInterfaceTypeV2ToSdkObjectConst(obj, ontology, true, forInternalUse, relPath)}
|
|
976
981
|
`));
|
|
977
982
|
}
|
|
978
983
|
await fs2.writeFile(interfacesDir + ".ts", await formatTs(`
|
|
@@ -1007,6 +1012,65 @@ async function generatePerObjectDataFiles(ctx) {
|
|
|
1007
1012
|
`));
|
|
1008
1013
|
}
|
|
1009
1014
|
|
|
1015
|
+
// src/shared/getInterfaceTypesFromQueryDataType.ts
|
|
1016
|
+
function getInterfaceTypesFromQueryDataType(dataType, types) {
|
|
1017
|
+
switch (dataType.type) {
|
|
1018
|
+
case "array":
|
|
1019
|
+
case "set":
|
|
1020
|
+
getInterfaceTypesFromQueryDataType(dataType.subType, types);
|
|
1021
|
+
return;
|
|
1022
|
+
case "interfaceObject":
|
|
1023
|
+
case "interfaceObjectSet":
|
|
1024
|
+
types.add(dataType.interfaceTypeApiName);
|
|
1025
|
+
return;
|
|
1026
|
+
case "struct":
|
|
1027
|
+
for (const prop of Object.values(dataType.fields)) {
|
|
1028
|
+
getInterfaceTypesFromQueryDataType(prop.fieldType, types);
|
|
1029
|
+
}
|
|
1030
|
+
return;
|
|
1031
|
+
case "union":
|
|
1032
|
+
for (const type of dataType.unionTypes) {
|
|
1033
|
+
getInterfaceTypesFromQueryDataType(type, types);
|
|
1034
|
+
}
|
|
1035
|
+
return;
|
|
1036
|
+
case "entrySet":
|
|
1037
|
+
getInterfaceTypesFromQueryDataType(dataType.keyType, types);
|
|
1038
|
+
getInterfaceTypesFromQueryDataType(dataType.valueType, types);
|
|
1039
|
+
return;
|
|
1040
|
+
case "attachment":
|
|
1041
|
+
case "boolean":
|
|
1042
|
+
case "date":
|
|
1043
|
+
case "double":
|
|
1044
|
+
case "float":
|
|
1045
|
+
case "integer":
|
|
1046
|
+
case "long":
|
|
1047
|
+
case "null":
|
|
1048
|
+
case "string":
|
|
1049
|
+
case "threeDimensionalAggregation":
|
|
1050
|
+
case "timestamp":
|
|
1051
|
+
case "twoDimensionalAggregation":
|
|
1052
|
+
case "entrySet":
|
|
1053
|
+
case "unsupported":
|
|
1054
|
+
case "object":
|
|
1055
|
+
case "objectSet":
|
|
1056
|
+
return;
|
|
1057
|
+
default:
|
|
1058
|
+
throw new Error(`Unknown query data type ${dataType.type}`);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
// src/shared/getInterfaceTypeApiNamesFromQuery.ts
|
|
1063
|
+
function getInterfaceTypeApiNamesFromQuery(query) {
|
|
1064
|
+
const types = /* @__PURE__ */ new Set();
|
|
1065
|
+
for (const {
|
|
1066
|
+
dataType
|
|
1067
|
+
} of Object.values(query.parameters)) {
|
|
1068
|
+
getInterfaceTypesFromQueryDataType(dataType, types);
|
|
1069
|
+
}
|
|
1070
|
+
getInterfaceTypesFromQueryDataType(query.output, types);
|
|
1071
|
+
return Array.from(types);
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1010
1074
|
// src/shared/getObjectTypesFromQueryDataType.ts
|
|
1011
1075
|
function getObjectTypesFromQueryDataType(dataType, types) {
|
|
1012
1076
|
switch (dataType.type) {
|
|
@@ -1048,9 +1112,11 @@ function getObjectTypesFromQueryDataType(dataType, types) {
|
|
|
1048
1112
|
case "twoDimensionalAggregation":
|
|
1049
1113
|
case "entrySet":
|
|
1050
1114
|
case "unsupported":
|
|
1115
|
+
case "interfaceObject":
|
|
1116
|
+
case "interfaceObjectSet":
|
|
1051
1117
|
return;
|
|
1052
1118
|
default:
|
|
1053
|
-
throw new Error(`
|
|
1119
|
+
throw new Error(`Unknown query data type ${dataType.type}`);
|
|
1054
1120
|
}
|
|
1055
1121
|
}
|
|
1056
1122
|
|
|
@@ -1092,8 +1158,9 @@ async function generatePerQueryDataFilesV2({
|
|
|
1092
1158
|
async function generateV2QueryFile(fs2, outDir, relOutDir, query, importExt, ontology, forInternalUse, fixedVersionQueryTypes) {
|
|
1093
1159
|
const relFilePath = path8__namespace.default.join(relOutDir, `${query.shortApiName}.ts`);
|
|
1094
1160
|
const objectTypes = getObjectTypeApiNamesFromQuery(query);
|
|
1095
|
-
const
|
|
1096
|
-
const
|
|
1161
|
+
const interfaceTypes = getInterfaceTypeApiNamesFromQuery(query);
|
|
1162
|
+
const interfaceAndObjectTypes = /* @__PURE__ */ new Set([...objectTypes.map((o) => ontology.requireObjectType(o)), ...interfaceTypes.map((o) => ontology.requireInterfaceType(o))]);
|
|
1163
|
+
const importObjects = getObjectImports(interfaceAndObjectTypes, "", relFilePath, true);
|
|
1097
1164
|
const baseProps = deleteUndefineds(generatorConverters.wireQueryTypeV2ToSdkQueryDefinitionNoParams(query.raw));
|
|
1098
1165
|
const outputBase = deleteUndefineds(generatorConverters.wireQueryDataTypeToQueryDataTypeDefinition(query.output));
|
|
1099
1166
|
const isUsingFixedVersion = fixedVersionQueryTypes.includes(query.fullApiName);
|
|
@@ -1244,9 +1311,15 @@ function getQueryParamType(enhancedOntology, input, type, isMapKey = false) {
|
|
|
1244
1311
|
}
|
|
1245
1312
|
inner = `Query${type}.ObjectType<${enhancedOntology.requireObjectType(input.object).getImportedDefinitionIdentifier(true)}>`;
|
|
1246
1313
|
break;
|
|
1314
|
+
case "interface":
|
|
1315
|
+
inner = `Query${type}.InterfaceType<${enhancedOntology.requireInterfaceType(input.interface).getImportedDefinitionIdentifier(true)}>`;
|
|
1316
|
+
break;
|
|
1247
1317
|
case "objectSet":
|
|
1248
1318
|
inner = `Query${type}.ObjectSetType<${enhancedOntology.requireObjectType(input.objectSet).getImportedDefinitionIdentifier(true)}>`;
|
|
1249
1319
|
break;
|
|
1320
|
+
case "interfaceObjectSet":
|
|
1321
|
+
inner = `Query${type}.ObjectSetType<${enhancedOntology.requireInterfaceType(input.objectSet).getImportedDefinitionIdentifier(true)}>`;
|
|
1322
|
+
break;
|
|
1250
1323
|
case "set":
|
|
1251
1324
|
inner = `${type === "Param" ? "Readonly" : ""}Set<${getQueryParamType(enhancedOntology, input.set, type)}>`;
|
|
1252
1325
|
break;
|