@osdk/generator 2.4.0-beta.8 → 2.4.0-rc.19
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 +92 -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 +7 -4
- package/build/browser/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -1
- package/build/browser/v2.0/generatePerActionDataFiles.js +1 -1
- package/build/browser/v2.0/generatePerActionDataFiles.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 +87 -14
- 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 +7 -4
- package/build/esm/v2.0/generateClientSdkVersionTwoPointZero.test.js.map +1 -1
- package/build/esm/v2.0/generatePerActionDataFiles.js +1 -1
- package/build/esm/v2.0/generatePerActionDataFiles.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 +4 -4
package/build/cjs/index.cjs
CHANGED
|
@@ -446,7 +446,7 @@ async function generatePerActionDataFiles({
|
|
|
446
446
|
"*": (ogValue, _, ogKey) => {
|
|
447
447
|
const key = `${getDescriptionIfPresent(ogValue.description)}
|
|
448
448
|
readonly "${ogKey}"${ogValue.nullable ? "?" : ""}`;
|
|
449
|
-
const value =
|
|
449
|
+
const value = ogValue.multiplicity ? `ReadonlyArray<${getActionParamType(ogValue.type)}>` : `${getActionParamType(ogValue.type)}`;
|
|
450
450
|
jsDocBlock.push(`* @param {${getActionParamType(ogValue.type)}} ${ogValue.nullable ? `[${ogKey}]` : ogKey} ${ogValue.description ?? ""} `);
|
|
451
451
|
return [key, value];
|
|
452
452
|
}
|
|
@@ -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;
|