@osdk/generator 2.43.0 → 2.43.1-main-cb3038078d742f4c47a9f986b840ba1b9f78c4e9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/build/browser/shared/propertyJsdoc.js +6 -5
- package/build/browser/shared/propertyJsdoc.js.map +1 -1
- package/build/browser/util/escapeJsDocText.js +24 -0
- package/build/browser/util/escapeJsDocText.js.map +1 -0
- package/build/browser/v2.0/generateMetadata.js +1 -1
- package/build/browser/v2.0/generateMetadata.js.map +1 -1
- package/build/browser/v2.0/generatePerActionDataFiles.js +10 -9
- package/build/browser/v2.0/generatePerActionDataFiles.js.map +1 -1
- package/build/browser/v2.0/generatePerQueryDataFiles.js +5 -4
- package/build/browser/v2.0/generatePerQueryDataFiles.js.map +1 -1
- package/build/browser/v2.0/getDescriptionIfPresent.js +2 -1
- package/build/browser/v2.0/getDescriptionIfPresent.js.map +1 -1
- package/build/cjs/index.cjs +25 -20
- package/build/cjs/index.cjs.map +1 -1
- package/build/esm/shared/propertyJsdoc.js +6 -5
- package/build/esm/shared/propertyJsdoc.js.map +1 -1
- package/build/esm/util/escapeJsDocText.js +24 -0
- package/build/esm/util/escapeJsDocText.js.map +1 -0
- package/build/esm/v2.0/generateMetadata.js +1 -1
- package/build/esm/v2.0/generateMetadata.js.map +1 -1
- package/build/esm/v2.0/generatePerActionDataFiles.js +10 -9
- package/build/esm/v2.0/generatePerActionDataFiles.js.map +1 -1
- package/build/esm/v2.0/generatePerQueryDataFiles.js +5 -4
- package/build/esm/v2.0/generatePerQueryDataFiles.js.map +1 -1
- package/build/esm/v2.0/getDescriptionIfPresent.js +2 -1
- package/build/esm/v2.0/getDescriptionIfPresent.js.map +1 -1
- package/build/types/shared/propertyJsdoc.d.ts.map +1 -1
- package/build/types/util/escapeJsDocText.d.ts +5 -0
- package/build/types/util/escapeJsDocText.d.ts.map +1 -0
- package/build/types/v2.0/generatePerActionDataFiles.d.ts.map +1 -1
- package/build/types/v2.0/generatePerQueryDataFiles.d.ts.map +1 -1
- package/build/types/v2.0/getDescriptionIfPresent.d.ts.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @osdk/generator
|
|
2
2
|
|
|
3
|
+
## 2.43.1-main-cb3038078d742f4c47a9f986b840ba1b9f78c4e9
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- f29a4df: Escape `*/` in ontology descriptions and display names so they cannot prematurely close generated JSDoc comments and break SDK generation.
|
|
8
|
+
- @osdk/api@2.43.1-main-cb3038078d742f4c47a9f986b840ba1b9f78c4e9
|
|
9
|
+
- @osdk/generator-converters@2.43.1-main-cb3038078d742f4c47a9f986b840ba1b9f78c4e9
|
|
10
|
+
|
|
3
11
|
## 2.43.0
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import { escapeJsDocText } from "../util/escapeJsDocText.js";
|
|
17
18
|
export function propertyJsdoc(property, rawPropertyMetadata, {
|
|
18
19
|
isInherited,
|
|
19
20
|
apiName
|
|
@@ -26,12 +27,12 @@ export function propertyJsdoc(property, rawPropertyMetadata, {
|
|
|
26
27
|
let deprecationStatus = "";
|
|
27
28
|
if (status.type === "deprecated") {
|
|
28
29
|
deprecationStatus += ` * @deprecated\n`;
|
|
29
|
-
deprecationStatus += ` * - ${status.message}\n`;
|
|
30
|
+
deprecationStatus += ` * - ${escapeJsDocText(status.message)}\n`;
|
|
30
31
|
if (status.deadline) {
|
|
31
|
-
deprecationStatus += ` * - deadline: ${status.deadline}\n`;
|
|
32
|
+
deprecationStatus += ` * - deadline: ${escapeJsDocText(status.deadline)}\n`;
|
|
32
33
|
}
|
|
33
34
|
if (status.replacedBy) {
|
|
34
|
-
deprecationStatus += ` * - replaced by: ${status.replacedBy}\n`;
|
|
35
|
+
deprecationStatus += ` * - replaced by: ${escapeJsDocText(status.replacedBy)}\n`;
|
|
35
36
|
}
|
|
36
37
|
ret.push(deprecationStatus);
|
|
37
38
|
} else if (status.type === "experimental") {
|
|
@@ -43,10 +44,10 @@ export function propertyJsdoc(property, rawPropertyMetadata, {
|
|
|
43
44
|
ret.push(` * (inherited from parent)\n`);
|
|
44
45
|
}
|
|
45
46
|
if (renderDisplayName) {
|
|
46
|
-
ret.push(` * display name: '${property.displayName}'${property.description ? "," : ""}\n`);
|
|
47
|
+
ret.push(` * display name: '${escapeJsDocText(property.displayName)}'${property.description ? "," : ""}\n`);
|
|
47
48
|
}
|
|
48
49
|
if (property.description) {
|
|
49
|
-
ret.push(` * description: ${property.description}\n`);
|
|
50
|
+
ret.push(` * description: ${escapeJsDocText(property.description)}\n`);
|
|
50
51
|
}
|
|
51
52
|
} else {
|
|
52
53
|
ret.push(` * (no ontology metadata)\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyJsdoc.js","names":["propertyJsdoc","property","rawPropertyMetadata","isInherited","apiName","ret","renderDisplayName","displayName","status","description","deprecationStatus","type","message","deadline","replacedBy","push","join"],"sources":["propertyJsdoc.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { ObjectMetadata } from \"@osdk/api\";\nimport type { PropertyV2 } from \"@osdk/foundry.ontologies\";\n\nexport function propertyJsdoc(\n property: ObjectMetadata.Property,\n rawPropertyMetadata: PropertyV2 | undefined,\n { isInherited, apiName }: { isInherited?: boolean; apiName: string },\n): string {\n const ret = [];\n const renderDisplayName = property.displayName\n && property.displayName !== apiName;\n const status = rawPropertyMetadata?.status;\n if (isInherited || renderDisplayName || property.description || status) {\n if (status) {\n let deprecationStatus = \"\";\n if (status.type === \"deprecated\") {\n deprecationStatus += ` * @deprecated\\n`;\n deprecationStatus += ` * - ${status.message}\\n`;\n if (status.deadline) {\n deprecationStatus += ` * - deadline: ${status.deadline}\\n`;\n }\n if (status.replacedBy) {\n deprecationStatus += ` * - replaced by: ${status.replacedBy}\\n`;\n }\n ret.push(deprecationStatus);\n } else if (status.type === \"experimental\") {\n ret.push(` * @${status.type}\\n`);\n }\n ret.push(` * property status: ${status.type}\\n`);\n }\n if (isInherited) {\n ret.push(` * (inherited from parent)\\n`);\n }\n\n if (renderDisplayName) {\n ret.push(\n ` * display name: '${property.displayName}'${\n property.description ? \",\" : \"\"\n }\\n`,\n );\n }\n\n if (property.description) {\n ret.push(` * description: ${property.description}\\n`);\n }\n } else {\n ret.push(` * (no ontology metadata)\\n`);\n }\n return `/**\\n` + ret.join(\"*\\n\") + ` */\\n`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"file":"propertyJsdoc.js","names":["escapeJsDocText","propertyJsdoc","property","rawPropertyMetadata","isInherited","apiName","ret","renderDisplayName","displayName","status","description","deprecationStatus","type","message","deadline","replacedBy","push","join"],"sources":["propertyJsdoc.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { ObjectMetadata } from \"@osdk/api\";\nimport type { PropertyV2 } from \"@osdk/foundry.ontologies\";\nimport { escapeJsDocText } from \"../util/escapeJsDocText.js\";\n\nexport function propertyJsdoc(\n property: ObjectMetadata.Property,\n rawPropertyMetadata: PropertyV2 | undefined,\n { isInherited, apiName }: { isInherited?: boolean; apiName: string },\n): string {\n const ret = [];\n const renderDisplayName = property.displayName\n && property.displayName !== apiName;\n const status = rawPropertyMetadata?.status;\n if (isInherited || renderDisplayName || property.description || status) {\n if (status) {\n let deprecationStatus = \"\";\n if (status.type === \"deprecated\") {\n deprecationStatus += ` * @deprecated\\n`;\n deprecationStatus += ` * - ${escapeJsDocText(status.message)}\\n`;\n if (status.deadline) {\n deprecationStatus += ` * - deadline: ${\n escapeJsDocText(status.deadline)\n }\\n`;\n }\n if (status.replacedBy) {\n deprecationStatus += ` * - replaced by: ${\n escapeJsDocText(status.replacedBy)\n }\\n`;\n }\n ret.push(deprecationStatus);\n } else if (status.type === \"experimental\") {\n ret.push(` * @${status.type}\\n`);\n }\n ret.push(` * property status: ${status.type}\\n`);\n }\n if (isInherited) {\n ret.push(` * (inherited from parent)\\n`);\n }\n\n if (renderDisplayName) {\n ret.push(\n ` * display name: '${escapeJsDocText(property.displayName!)}'${\n property.description ? \",\" : \"\"\n }\\n`,\n );\n }\n\n if (property.description) {\n ret.push(` * description: ${escapeJsDocText(property.description)}\\n`);\n }\n } else {\n ret.push(` * (no ontology metadata)\\n`);\n }\n return `/**\\n` + ret.join(\"*\\n\") + ` */\\n`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,SAASA,eAAe,QAAQ,4BAA4B;AAE5D,OAAO,SAASC,aAAaA,CAC3BC,QAAiC,EACjCC,mBAA2C,EAC3C;EAAEC,WAAW;EAAEC;AAAoD,CAAC,EAC5D;EACR,MAAMC,GAAG,GAAG,EAAE;EACd,MAAMC,iBAAiB,GAAGL,QAAQ,CAACM,WAAW,IACzCN,QAAQ,CAACM,WAAW,KAAKH,OAAO;EACrC,MAAMI,MAAM,GAAGN,mBAAmB,EAAEM,MAAM;EAC1C,IAAIL,WAAW,IAAIG,iBAAiB,IAAIL,QAAQ,CAACQ,WAAW,IAAID,MAAM,EAAE;IACtE,IAAIA,MAAM,EAAE;MACV,IAAIE,iBAAiB,GAAG,EAAE;MAC1B,IAAIF,MAAM,CAACG,IAAI,KAAK,YAAY,EAAE;QAChCD,iBAAiB,IAAI,oBAAoB;QACzCA,iBAAiB,IAAI,UAAUX,eAAe,CAACS,MAAM,CAACI,OAAO,CAAC,IAAI;QAClE,IAAIJ,MAAM,CAACK,QAAQ,EAAE;UACnBH,iBAAiB,IAAI,oBACnBX,eAAe,CAACS,MAAM,CAACK,QAAQ,CAAC,IAC9B;QACN;QACA,IAAIL,MAAM,CAACM,UAAU,EAAE;UACrBJ,iBAAiB,IAAI,uBACnBX,eAAe,CAACS,MAAM,CAACM,UAAU,CAAC,IAChC;QACN;QACAT,GAAG,CAACU,IAAI,CAACL,iBAAiB,CAAC;MAC7B,CAAC,MAAM,IAAIF,MAAM,CAACG,IAAI,KAAK,cAAc,EAAE;QACzCN,GAAG,CAACU,IAAI,CAAC,OAAOP,MAAM,CAACG,IAAI,IAAI,CAAC;MAClC;MACAN,GAAG,CAACU,IAAI,CAAC,yBAAyBP,MAAM,CAACG,IAAI,IAAI,CAAC;IACpD;IACA,IAAIR,WAAW,EAAE;MACfE,GAAG,CAACU,IAAI,CAAC,8BAA8B,CAAC;IAC1C;IAEA,IAAIT,iBAAiB,EAAE;MACrBD,GAAG,CAACU,IAAI,CACN,uBAAuBhB,eAAe,CAACE,QAAQ,CAACM,WAAY,CAAC,IAC3DN,QAAQ,CAACQ,WAAW,GAAG,GAAG,GAAG,EAAE,IAEnC,CAAC;IACH;IAEA,IAAIR,QAAQ,CAACQ,WAAW,EAAE;MACxBJ,GAAG,CAACU,IAAI,CAAC,qBAAqBhB,eAAe,CAACE,QAAQ,CAACQ,WAAW,CAAC,IAAI,CAAC;IAC1E;EACF,CAAC,MAAM;IACLJ,GAAG,CAACU,IAAI,CAAC,6BAA6B,CAAC;EACzC;EACA,OAAO,OAAO,GAAGV,GAAG,CAACW,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO;AAC5C","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Escapes text so it can be embedded in a JSDoc block comment without
|
|
19
|
+
* prematurely closing it.
|
|
20
|
+
*/
|
|
21
|
+
export function escapeJsDocText(text) {
|
|
22
|
+
return text.replace(/\*\//gu, "*\\/");
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=escapeJsDocText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escapeJsDocText.js","names":["escapeJsDocText","text","replace"],"sources":["escapeJsDocText.ts"],"sourcesContent":["/*\n * Copyright 2025 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\n/**\n * Escapes text so it can be embedded in a JSDoc block comment without\n * prematurely closing it.\n */\nexport function escapeJsDocText(text: string): string {\n return text.replace(/\\*\\//gu, \"*\\\\/\");\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAACC,IAAY,EAAU;EACpD,OAAOA,IAAI,CAACC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvC","ignoreList":[]}
|
|
@@ -18,7 +18,7 @@ import path from "path";
|
|
|
18
18
|
import { formatTs } from "../util/test/formatTs.js";
|
|
19
19
|
|
|
20
20
|
// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.
|
|
21
|
-
const ExpectedOsdkVersion = "2.43.
|
|
21
|
+
const ExpectedOsdkVersion = "2.43.1";
|
|
22
22
|
// END: THIS IS GENERATED CODE. DO NOT EDIT.
|
|
23
23
|
|
|
24
24
|
export async function generateOntologyMetadataFile({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateMetadata.js","names":["path","formatTs","ExpectedOsdkVersion","generateOntologyMetadataFile","fs","outDir","ontology","ontologyApiNamespace","userAgent","writeFile","join","rid","raw","branch"],"sources":["generateMetadata.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 \"path\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\n\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst ExpectedOsdkVersion = \"2.43.
|
|
1
|
+
{"version":3,"file":"generateMetadata.js","names":["path","formatTs","ExpectedOsdkVersion","generateOntologyMetadataFile","fs","outDir","ontology","ontologyApiNamespace","userAgent","writeFile","join","rid","raw","branch"],"sources":["generateMetadata.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 \"path\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\n\n// BEGIN: THIS IS GENERATED CODE. DO NOT EDIT.\nconst ExpectedOsdkVersion = \"2.43.1\";\n// END: THIS IS GENERATED CODE. DO NOT EDIT.\n\nexport async function generateOntologyMetadataFile(\n { fs, outDir, ontology, ontologyApiNamespace }: GenerateContext,\n userAgent: string,\n): Promise<void> {\n await fs.writeFile(\n path.join(outDir, \"OntologyMetadata.ts\"),\n await formatTs(\n `\n export type $ExpectedClientVersion = \"${ExpectedOsdkVersion}\";\n export const $osdkMetadata = { extraUserAgent: \"${userAgent}\" };\n ${\n ontologyApiNamespace == null\n ? `\n export const $ontologyRid = \"${ontology.ontology.rid}\";\n /**\n * The RID of the Foundry branch this SDK was generated against, or\n * \\`undefined\\` if it was generated against the main branch.\n */\n export const $branch: string | undefined = ${\n ontology.raw.branch != null\n ? `\"${ontology.raw.branch.rid}\"`\n : \"undefined\"\n };\n `\n : \"\"\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,MAAM;AAEvB,SAASC,QAAQ,QAAQ,0BAA0B;;AAEnD;AACA,MAAMC,mBAAmB,GAAG,QAAQ;AACpC;;AAEA,OAAO,eAAeC,4BAA4BA,CAChD;EAAEC,EAAE;EAAEC,MAAM;EAAEC,QAAQ;EAAEC;AAAsC,CAAC,EAC/DC,SAAiB,EACF;EACf,MAAMJ,EAAE,CAACK,SAAS,CAChBT,IAAI,CAACU,IAAI,CAACL,MAAM,EAAE,qBAAqB,CAAC,EACxC,MAAMJ,QAAQ,CACZ;AACN,8CAA8CC,mBAAmB;AACjE,wDAAwDM,SAAS;AACjE,QACQD,oBAAoB,IAAI,IAAI,GACxB;AACZ,uCAAuCD,QAAQ,CAACA,QAAQ,CAACK,GAAG;AAC5D;AACA;AACA;AACA;AACA,qDACYL,QAAQ,CAACM,GAAG,CAACC,MAAM,IAAI,IAAI,GACvB,IAAIP,QAAQ,CAACM,GAAG,CAACC,MAAM,CAACF,GAAG,GAAG,GAC9B,WAAW;AAC3B,SACS,GACG,EAAE;AACd,OAEI,CACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -18,6 +18,7 @@ import { wireActionTypeV2ToSdkActionMetadata } from "@osdk/generator-converters"
|
|
|
18
18
|
import path from "node:path";
|
|
19
19
|
import { getObjectImports } from "../shared/getObjectImports.js";
|
|
20
20
|
import { deleteUndefineds } from "../util/deleteUndefineds.js";
|
|
21
|
+
import { escapeJsDocText } from "../util/escapeJsDocText.js";
|
|
21
22
|
import { stringify } from "../util/stringify.js";
|
|
22
23
|
import { formatTs } from "../util/test/formatTs.js";
|
|
23
24
|
import { getDescriptionIfPresent } from "./getDescriptionIfPresent.js";
|
|
@@ -129,12 +130,12 @@ export async function generatePerActionDataFiles({
|
|
|
129
130
|
import { $osdkMetadata} from "../../OntologyMetadata${importExt}";
|
|
130
131
|
${imports}
|
|
131
132
|
|
|
132
|
-
|
|
133
|
+
|
|
133
134
|
${function () {
|
|
134
135
|
`${action.shortApiName}$Params`;
|
|
135
136
|
const jsDocBlock = ["/**"];
|
|
136
137
|
if (action.description != null) {
|
|
137
|
-
jsDocBlock.push(`* ${action.description}`);
|
|
138
|
+
jsDocBlock.push(`* ${escapeJsDocText(action.description)}`);
|
|
138
139
|
|
|
139
140
|
// Add note about null values to the action description if there are nullable parameters
|
|
140
141
|
const hasNullableParams = Object.values(fullActionDef.parameters || {}).some(param => param.nullable === true);
|
|
@@ -149,7 +150,7 @@ export async function generatePerActionDataFiles({
|
|
|
149
150
|
// the params must be a `type` to align properly with the `ActionDefinition` interface
|
|
150
151
|
// this way we can generate a strict type for the function itself and reference it from the Action Definition
|
|
151
152
|
return `
|
|
152
|
-
|
|
153
|
+
|
|
153
154
|
export namespace ${action.shortApiName}{
|
|
154
155
|
${createParamsDef()}
|
|
155
156
|
|
|
@@ -160,7 +161,7 @@ export async function generatePerActionDataFiles({
|
|
|
160
161
|
const key = `${getDescriptionIfPresent(ogValue.description)}
|
|
161
162
|
readonly "${ogKey}"${ogValue.nullable ? "?" : ""}`;
|
|
162
163
|
const value = (ogValue.multiplicity ? `ReadonlyArray<${getActionParamType(ogValue.type)}>` : `${getActionParamType(ogValue.type)}`) + (ogValue.nullable ? " | null" : "");
|
|
163
|
-
jsDocBlock.push(`* @param {${getActionParamType(ogValue.type)}} ${ogValue.nullable ? `[${ogKey}]` : ogKey} ${ogValue.description ?? ""}`);
|
|
164
|
+
jsDocBlock.push(`* @param {${getActionParamType(ogValue.type)}} ${ogValue.nullable ? `[${ogKey}]` : ogKey} ${escapeJsDocText(ogValue.description ?? "")}`);
|
|
164
165
|
return [key, value];
|
|
165
166
|
}
|
|
166
167
|
})}
|
|
@@ -170,13 +171,13 @@ export async function generatePerActionDataFiles({
|
|
|
170
171
|
export interface Signatures {
|
|
171
172
|
${getDescriptionIfPresent(action.description)}
|
|
172
173
|
applyAction<OP extends ApplyActionOptions>(args: ${action.paramsIdentifier}, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;
|
|
173
|
-
|
|
174
|
+
|
|
174
175
|
batchApplyAction<OP extends ApplyBatchActionOptions>(args: ReadonlyArray<${action.paramsIdentifier}>, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;
|
|
175
176
|
}
|
|
176
|
-
|
|
177
|
+
|
|
177
178
|
}
|
|
178
179
|
|
|
179
|
-
|
|
180
|
+
|
|
180
181
|
${jsDocBlock.join("\n")}
|
|
181
182
|
*/
|
|
182
183
|
export interface ${action.shortApiName} extends ActionDefinition<${action.shortApiName}.Signatures> {
|
|
@@ -184,7 +185,7 @@ export async function generatePerActionDataFiles({
|
|
|
184
185
|
${stringify(fullActionDef, {
|
|
185
186
|
"parameters": () => action.definitionParamsIdentifier
|
|
186
187
|
})}
|
|
187
|
-
|
|
188
|
+
|
|
188
189
|
signatures: ${action.shortApiName}.Signatures;
|
|
189
190
|
},
|
|
190
191
|
${stringify(fullActionDef, {
|
|
@@ -201,7 +202,7 @@ export async function generatePerActionDataFiles({
|
|
|
201
202
|
}()}
|
|
202
203
|
|
|
203
204
|
${function () {
|
|
204
|
-
return ` export const ${action.shortApiName}: ${action.shortApiName} =
|
|
205
|
+
return ` export const ${action.shortApiName}: ${action.shortApiName} =
|
|
205
206
|
{
|
|
206
207
|
${stringify(fullActionDef, {
|
|
207
208
|
"description": () => undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePerActionDataFiles.js","names":["wireActionTypeV2ToSdkActionMetadata","path","getObjectImports","deleteUndefineds","stringify","formatTs","getDescriptionIfPresent","generatePerActionDataFiles","ontology","fs","outDir","rootOutDir","importExt","enhancedOntology","forInternalUse","join","mkdir","recursive","Promise","all","Object","values","actionTypes","map","action","currentFilePath","shortApiName","fullActionDef","raw","unsanitizedApiName","createParamsDef","entries","parameters","sort","a","b","localeCompare","length","key","value","description","d","undefined","type","JSON","obj","requireObjectType","object","getImportedDefinitionIdentifier","objectSet","requireInterfaceType","interface","struct","getActionParamType","input","referencedObjectDefs","Set","p","dataType","objectApiName","add","objectTypeApiName","interfaceTypeApiName","subType","imports","writeFile","jsDocBlock","push","hasNullableParams","some","param","nullable","*","ogValue","_","ogKey","multiplicity","paramsIdentifier","definitionParamsIdentifier","displayName","modifiedEntities","rid","status","indexFileRelPath","exportConstLine","getImportPathRelTo","keys","extractReferencedObjectsFromAction","actionType","referencedObjectsInParameters","flatMap","objectTypeReference","extractReferencedObjectsFromActionParameter","referenceObjectsInEdits","operations","actionParameter"],"sources":["generatePerActionDataFiles.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 { ActionMetadata } from \"@osdk/api\";\nimport type {\n ActionParameterType,\n ActionTypeV2,\n} from \"@osdk/foundry.ontologies\";\nimport { wireActionTypeV2ToSdkActionMetadata } from \"@osdk/generator-converters\";\nimport path from \"node:path\";\nimport type { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport type { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.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 generatePerActionDataFiles(\n {\n ontology,\n fs,\n outDir: rootOutDir,\n importExt = \"\",\n ontology: enhancedOntology,\n forInternalUse = false,\n }: Pick<\n GenerateContext,\n | \"fs\"\n | \"outDir\"\n | \"importExt\"\n | \"ontology\"\n | \"forInternalUse\"\n >,\n): Promise<void> {\n const outDir = path.join(rootOutDir, \"ontology\", \"actions\");\n\n await fs.mkdir(outDir, { recursive: true });\n await Promise.all(\n Object.values(enhancedOntology.actionTypes).map(async (action) => {\n const currentFilePath = path.join(\n \"ontology\",\n \"actions\",\n `${action.shortApiName}.ts`,\n );\n\n const fullActionDef = deleteUndefineds(\n wireActionTypeV2ToSdkActionMetadata(\n action.raw,\n action.unsanitizedApiName,\n ),\n );\n\n function createParamsDef() {\n const entries = Object.entries(fullActionDef.parameters ?? {});\n entries.sort((a, b) => a[0].localeCompare(b[0]));\n\n if (entries.length === 0) {\n return `// Represents the definition of the parameters for the action\n export type ParamsDefinition = Record<string, never>;`;\n }\n\n return `// Represents the definition of the parameters for the action\n export type ParamsDefinition = {\n ${\n entries.map(([key, value]) => {\n return `\"${key}\": {\n ${\n stringify(value, {\n description: (value, d) => value ? d(value) : undefined, // trick to remove undefineds\n type: (type) => {\n if (typeof type === \"string\") {\n return JSON.stringify(type);\n } else if (type.type === \"object\") {\n const obj = enhancedOntology.requireObjectType(type.object);\n return `ActionMetadata.DataType.Object<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"objectSet\") {\n const obj = enhancedOntology.requireObjectType(\n type.objectSet,\n );\n return `ActionMetadata.DataType.ObjectSet<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"interface\") {\n const obj = enhancedOntology.requireInterfaceType(\n type.interface,\n );\n return `ActionMetadata.DataType.Interface<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"struct\") {\n return `ActionMetadata.DataType.Struct<${\n JSON.stringify(type.struct)\n }>`;\n }\n return undefined;\n },\n })\n }\n }`;\n })\n .join(\";\\n\")\n }\n }`;\n }\n\n function getActionParamType(\n input: ActionMetadata.Parameter[\"type\"],\n ) {\n if (typeof input === \"string\") {\n return `ActionParam.PrimitiveType<${JSON.stringify(input)}>`;\n } else if (input.type === \"object\") {\n return `ActionParam.ObjectType<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"objectSet\") {\n return `ActionParam.ObjectSetType<${\n enhancedOntology.requireObjectType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"interface\") {\n return `ActionParam.InterfaceType<${\n enhancedOntology.requireInterfaceType(input.interface)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"struct\") {\n return `ActionParam.StructType<${JSON.stringify(input.struct)}>`;\n }\n }\n\n function createV2Types() {\n const oldParamsIdentifier = `${action.shortApiName}$Params`;\n const jsDocBlock = [\"/**\"];\n if (action.description != null) {\n jsDocBlock.push(`* ${action.description}`);\n\n // Add note about null values to the action description if there are nullable parameters\n const hasNullableParams = Object.values(\n fullActionDef.parameters || {},\n ).some(param => param.nullable === true);\n if (hasNullableParams) {\n jsDocBlock.push(`* `);\n jsDocBlock.push(\n `* **Note on null values:** _For optional parameters, explicitly providing a null value instead of undefined`,\n );\n jsDocBlock.push(\n `* can change the behavior of the applied action. If prefills are configured, null prevents them`,\n );\n jsDocBlock.push(\n `* from being applied. If a parameter modifies an object's property, null will clear the data from`,\n );\n jsDocBlock.push(\n `* the object, whereas undefined would not modify that property._`,\n );\n }\n }\n // the params must be a `type` to align properly with the `ActionDefinition` interface\n // this way we can generate a strict type for the function itself and reference it from the Action Definition\n return `\n \n export namespace ${action.shortApiName}{\n ${createParamsDef()}\n\n ${getDescriptionIfPresent(action.description)}\n export interface Params {\n ${\n stringify(fullActionDef.parameters, {\n \"*\": (ogValue, _, ogKey) => {\n const key = `${getDescriptionIfPresent(ogValue.description)}\n readonly \"${ogKey}\"${ogValue.nullable ? \"?\" : \"\"}`;\n\n const value = (ogValue.multiplicity\n ? `ReadonlyArray<${getActionParamType(ogValue.type)}>`\n : `${getActionParamType(ogValue.type)}`)\n + (ogValue.nullable ? \" | null\" : \"\");\n jsDocBlock.push(\n `* @param {${getActionParamType(ogValue.type)}} ${\n ogValue.nullable ? `[${ogKey}]` : ogKey\n } ${ogValue.description ?? \"\"}`,\n );\n return [key, value];\n },\n })\n }\n }\n\n // Represents a fqn of the action\n export interface Signatures {\n ${getDescriptionIfPresent(action.description)}\n applyAction<OP extends ApplyActionOptions>(args: ${action.paramsIdentifier}, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;\n \n batchApplyAction<OP extends ApplyBatchActionOptions>(args: ReadonlyArray<${action.paramsIdentifier}>, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;\n }\n \n }\n\n \n ${jsDocBlock.join(\"\\n\")}\n */\n export interface ${action.shortApiName} extends ActionDefinition<${action.shortApiName}.Signatures> {\n __DefinitionMetadata?: {\n ${\n stringify(fullActionDef, {\n \"parameters\": () => action.definitionParamsIdentifier,\n })\n }\n \n signatures: ${action.shortApiName}.Signatures;\n },\n ${\n stringify(fullActionDef, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"modifiedEntities\": () => undefined,\n \"parameters\": () => undefined,\n \"rid\": () => undefined,\n \"status\": () => undefined,\n })\n }\n osdkMetadata: typeof $osdkMetadata;\n }\n `;\n }\n\n function createV2Object() {\n return ` export const ${action.shortApiName}: ${action.shortApiName} = \n {\n ${\n stringify(fullActionDef, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"modifiedEntities\": () => undefined,\n \"parameters\": () => undefined,\n \"rid\": () => undefined,\n \"status\": () => undefined,\n })\n },\n osdkMetadata: $osdkMetadata\n }\n `;\n }\n\n const referencedObjectDefs = new Set<EnhancedObjectType | ForeignType>();\n for (const p of Object.values(action.parameters)) {\n if (p.dataType.type === \"object\" || p.dataType.type === \"objectSet\") {\n if (p.dataType.objectApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(p.dataType.objectApiName),\n );\n }\n if (p.dataType.objectTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(p.dataType.objectTypeApiName),\n );\n }\n }\n if (p.dataType.type === \"interfaceObject\") {\n if (p.dataType.interfaceTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireInterfaceType(\n p.dataType.interfaceTypeApiName,\n ),\n );\n }\n }\n if (p.dataType.type === \"array\") {\n if (\n p.dataType.subType.type === \"object\"\n || p.dataType.subType.type === \"objectSet\"\n ) {\n if (p.dataType.subType.objectApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(\n p.dataType.subType.objectApiName,\n ),\n );\n }\n if (p.dataType.subType.objectTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(\n p.dataType.subType.objectTypeApiName,\n ),\n );\n }\n }\n if (\n p.dataType.subType.type === \"interfaceObject\"\n ) {\n if (p.dataType.subType.interfaceTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireInterfaceType(\n p.dataType.subType.interfaceTypeApiName,\n ),\n );\n }\n }\n }\n }\n\n const imports = getObjectImports(\n referencedObjectDefs,\n undefined,\n currentFilePath,\n true,\n );\n\n await fs.writeFile(\n path.join(rootOutDir, currentFilePath),\n await formatTs(`\n import type {\n ActionDefinition,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n import { $osdkMetadata} from \"../../OntologyMetadata${importExt}\";\n ${imports}\n\n \n ${createV2Types()}\n\n ${createV2Object()}\n `),\n );\n }),\n );\n\n const indexFileRelPath = path.join(\"ontology\", \"actions.ts\");\n\n await fs.writeFile(\n path.join(rootOutDir, indexFileRelPath),\n await formatTs(`\n ${\n Object.values(enhancedOntology.actionTypes).map(action => {\n const exportConstLine = `export {${action.shortApiName} } from \"${\n action.getImportPathRelTo(indexFileRelPath)\n }\";`;\n\n return exportConstLine;\n })\n .join(\"\\n\")\n }\n ${Object.keys(ontology.actionTypes).length === 0 ? \"export {};\" : \"\"}\n `),\n );\n}\n\nfunction extractReferencedObjectsFromAction(\n actionType: ActionTypeV2,\n): string[] {\n const referencedObjectsInParameters = Object.values(actionType.parameters)\n .flatMap(({ dataType }) => {\n const objectTypeReference = extractReferencedObjectsFromActionParameter(\n dataType,\n );\n return objectTypeReference ? [objectTypeReference] : [];\n });\n\n const referenceObjectsInEdits = actionType.operations.flatMap(value => {\n switch (value.type) {\n case \"createObject\":\n return [value.objectTypeApiName];\n case \"modifyObject\":\n return [value.objectTypeApiName];\n case \"deleteObject\":\n case \"createLink\":\n case \"deleteLink\":\n default:\n return [];\n }\n });\n\n return [...referenceObjectsInEdits, ...referencedObjectsInParameters];\n}\n\nfunction extractReferencedObjectsFromActionParameter(\n actionParameter: ActionParameterType,\n): string | undefined {\n switch (actionParameter.type) {\n case \"objectSet\":\n case \"object\":\n return actionParameter.objectTypeApiName;\n case \"array\":\n return extractReferencedObjectsFromActionParameter(\n actionParameter.subType,\n );\n case \"string\":\n case \"boolean\":\n case \"attachment\":\n case \"date\":\n case \"double\":\n case \"integer\":\n case \"long\":\n case \"timestamp\":\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"generatePerActionDataFiles.js","names":["wireActionTypeV2ToSdkActionMetadata","path","getObjectImports","deleteUndefineds","escapeJsDocText","stringify","formatTs","getDescriptionIfPresent","generatePerActionDataFiles","ontology","fs","outDir","rootOutDir","importExt","enhancedOntology","forInternalUse","join","mkdir","recursive","Promise","all","Object","values","actionTypes","map","action","currentFilePath","shortApiName","fullActionDef","raw","unsanitizedApiName","createParamsDef","entries","parameters","sort","a","b","localeCompare","length","key","value","description","d","undefined","type","JSON","obj","requireObjectType","object","getImportedDefinitionIdentifier","objectSet","requireInterfaceType","interface","struct","getActionParamType","input","referencedObjectDefs","Set","p","dataType","objectApiName","add","objectTypeApiName","interfaceTypeApiName","subType","imports","writeFile","jsDocBlock","push","hasNullableParams","some","param","nullable","*","ogValue","_","ogKey","multiplicity","paramsIdentifier","definitionParamsIdentifier","displayName","modifiedEntities","rid","status","indexFileRelPath","exportConstLine","getImportPathRelTo","keys","extractReferencedObjectsFromAction","actionType","referencedObjectsInParameters","flatMap","objectTypeReference","extractReferencedObjectsFromActionParameter","referenceObjectsInEdits","operations","actionParameter"],"sources":["generatePerActionDataFiles.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 { ActionMetadata } from \"@osdk/api\";\nimport type {\n ActionParameterType,\n ActionTypeV2,\n} from \"@osdk/foundry.ontologies\";\nimport { wireActionTypeV2ToSdkActionMetadata } from \"@osdk/generator-converters\";\nimport path from \"node:path\";\nimport type { EnhancedObjectType } from \"../GenerateContext/EnhancedObjectType.js\";\nimport type { ForeignType } from \"../GenerateContext/ForeignType.js\";\nimport type { GenerateContext } from \"../GenerateContext/GenerateContext.js\";\nimport { getObjectImports } from \"../shared/getObjectImports.js\";\nimport { deleteUndefineds } from \"../util/deleteUndefineds.js\";\nimport { escapeJsDocText } from \"../util/escapeJsDocText.js\";\nimport { stringify } from \"../util/stringify.js\";\nimport { formatTs } from \"../util/test/formatTs.js\";\nimport { getDescriptionIfPresent } from \"./getDescriptionIfPresent.js\";\n\nexport async function generatePerActionDataFiles(\n {\n ontology,\n fs,\n outDir: rootOutDir,\n importExt = \"\",\n ontology: enhancedOntology,\n forInternalUse = false,\n }: Pick<\n GenerateContext,\n | \"fs\"\n | \"outDir\"\n | \"importExt\"\n | \"ontology\"\n | \"forInternalUse\"\n >,\n): Promise<void> {\n const outDir = path.join(rootOutDir, \"ontology\", \"actions\");\n\n await fs.mkdir(outDir, { recursive: true });\n await Promise.all(\n Object.values(enhancedOntology.actionTypes).map(async (action) => {\n const currentFilePath = path.join(\n \"ontology\",\n \"actions\",\n `${action.shortApiName}.ts`,\n );\n\n const fullActionDef = deleteUndefineds(\n wireActionTypeV2ToSdkActionMetadata(\n action.raw,\n action.unsanitizedApiName,\n ),\n );\n\n function createParamsDef() {\n const entries = Object.entries(fullActionDef.parameters ?? {});\n entries.sort((a, b) => a[0].localeCompare(b[0]));\n\n if (entries.length === 0) {\n return `// Represents the definition of the parameters for the action\n export type ParamsDefinition = Record<string, never>;`;\n }\n\n return `// Represents the definition of the parameters for the action\n export type ParamsDefinition = {\n ${\n entries.map(([key, value]) => {\n return `\"${key}\": {\n ${\n stringify(value, {\n description: (value, d) => value ? d(value) : undefined, // trick to remove undefineds\n type: (type) => {\n if (typeof type === \"string\") {\n return JSON.stringify(type);\n } else if (type.type === \"object\") {\n const obj = enhancedOntology.requireObjectType(type.object);\n return `ActionMetadata.DataType.Object<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"objectSet\") {\n const obj = enhancedOntology.requireObjectType(\n type.objectSet,\n );\n return `ActionMetadata.DataType.ObjectSet<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"interface\") {\n const obj = enhancedOntology.requireInterfaceType(\n type.interface,\n );\n return `ActionMetadata.DataType.Interface<${\n obj.getImportedDefinitionIdentifier(true)\n }>`;\n } else if (type.type === \"struct\") {\n return `ActionMetadata.DataType.Struct<${\n JSON.stringify(type.struct)\n }>`;\n }\n return undefined;\n },\n })\n }\n }`;\n })\n .join(\";\\n\")\n }\n }`;\n }\n\n function getActionParamType(\n input: ActionMetadata.Parameter[\"type\"],\n ) {\n if (typeof input === \"string\") {\n return `ActionParam.PrimitiveType<${JSON.stringify(input)}>`;\n } else if (input.type === \"object\") {\n return `ActionParam.ObjectType<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"objectSet\") {\n return `ActionParam.ObjectSetType<${\n enhancedOntology.requireObjectType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"interface\") {\n return `ActionParam.InterfaceType<${\n enhancedOntology.requireInterfaceType(input.interface)\n .getImportedDefinitionIdentifier(true)\n }>`;\n } else if (input.type === \"struct\") {\n return `ActionParam.StructType<${JSON.stringify(input.struct)}>`;\n }\n }\n\n function createV2Types() {\n const oldParamsIdentifier = `${action.shortApiName}$Params`;\n const jsDocBlock = [\"/**\"];\n if (action.description != null) {\n jsDocBlock.push(`* ${escapeJsDocText(action.description)}`);\n\n // Add note about null values to the action description if there are nullable parameters\n const hasNullableParams = Object.values(\n fullActionDef.parameters || {},\n ).some(param => param.nullable === true);\n if (hasNullableParams) {\n jsDocBlock.push(`* `);\n jsDocBlock.push(\n `* **Note on null values:** _For optional parameters, explicitly providing a null value instead of undefined`,\n );\n jsDocBlock.push(\n `* can change the behavior of the applied action. If prefills are configured, null prevents them`,\n );\n jsDocBlock.push(\n `* from being applied. If a parameter modifies an object's property, null will clear the data from`,\n );\n jsDocBlock.push(\n `* the object, whereas undefined would not modify that property._`,\n );\n }\n }\n // the params must be a `type` to align properly with the `ActionDefinition` interface\n // this way we can generate a strict type for the function itself and reference it from the Action Definition\n return `\n\n export namespace ${action.shortApiName}{\n ${createParamsDef()}\n\n ${getDescriptionIfPresent(action.description)}\n export interface Params {\n ${\n stringify(fullActionDef.parameters, {\n \"*\": (ogValue, _, ogKey) => {\n const key = `${getDescriptionIfPresent(ogValue.description)}\n readonly \"${ogKey}\"${ogValue.nullable ? \"?\" : \"\"}`;\n\n const value = (ogValue.multiplicity\n ? `ReadonlyArray<${getActionParamType(ogValue.type)}>`\n : `${getActionParamType(ogValue.type)}`)\n + (ogValue.nullable ? \" | null\" : \"\");\n jsDocBlock.push(\n `* @param {${getActionParamType(ogValue.type)}} ${\n ogValue.nullable ? `[${ogKey}]` : ogKey\n } ${escapeJsDocText(ogValue.description ?? \"\")}`,\n );\n return [key, value];\n },\n })\n }\n }\n\n // Represents a fqn of the action\n export interface Signatures {\n ${getDescriptionIfPresent(action.description)}\n applyAction<OP extends ApplyActionOptions>(args: ${action.paramsIdentifier}, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;\n\n batchApplyAction<OP extends ApplyBatchActionOptions>(args: ReadonlyArray<${action.paramsIdentifier}>, options?: OP): Promise<ActionReturnTypeForOptions<OP>>;\n }\n\n }\n\n\n ${jsDocBlock.join(\"\\n\")}\n */\n export interface ${action.shortApiName} extends ActionDefinition<${action.shortApiName}.Signatures> {\n __DefinitionMetadata?: {\n ${\n stringify(fullActionDef, {\n \"parameters\": () => action.definitionParamsIdentifier,\n })\n }\n\n signatures: ${action.shortApiName}.Signatures;\n },\n ${\n stringify(fullActionDef, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"modifiedEntities\": () => undefined,\n \"parameters\": () => undefined,\n \"rid\": () => undefined,\n \"status\": () => undefined,\n })\n }\n osdkMetadata: typeof $osdkMetadata;\n }\n `;\n }\n\n function createV2Object() {\n return ` export const ${action.shortApiName}: ${action.shortApiName} =\n {\n ${\n stringify(fullActionDef, {\n \"description\": () => undefined,\n \"displayName\": () => undefined,\n \"modifiedEntities\": () => undefined,\n \"parameters\": () => undefined,\n \"rid\": () => undefined,\n \"status\": () => undefined,\n })\n },\n osdkMetadata: $osdkMetadata\n }\n `;\n }\n\n const referencedObjectDefs = new Set<EnhancedObjectType | ForeignType>();\n for (const p of Object.values(action.parameters)) {\n if (p.dataType.type === \"object\" || p.dataType.type === \"objectSet\") {\n if (p.dataType.objectApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(p.dataType.objectApiName),\n );\n }\n if (p.dataType.objectTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(p.dataType.objectTypeApiName),\n );\n }\n }\n if (p.dataType.type === \"interfaceObject\") {\n if (p.dataType.interfaceTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireInterfaceType(\n p.dataType.interfaceTypeApiName,\n ),\n );\n }\n }\n if (p.dataType.type === \"array\") {\n if (\n p.dataType.subType.type === \"object\"\n || p.dataType.subType.type === \"objectSet\"\n ) {\n if (p.dataType.subType.objectApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(\n p.dataType.subType.objectApiName,\n ),\n );\n }\n if (p.dataType.subType.objectTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireObjectType(\n p.dataType.subType.objectTypeApiName,\n ),\n );\n }\n }\n if (\n p.dataType.subType.type === \"interfaceObject\"\n ) {\n if (p.dataType.subType.interfaceTypeApiName) {\n referencedObjectDefs.add(\n enhancedOntology.requireInterfaceType(\n p.dataType.subType.interfaceTypeApiName,\n ),\n );\n }\n }\n }\n }\n\n const imports = getObjectImports(\n referencedObjectDefs,\n undefined,\n currentFilePath,\n true,\n );\n\n await fs.writeFile(\n path.join(rootOutDir, currentFilePath),\n await formatTs(`\n import type {\n ActionDefinition,\n ActionMetadata,\n ActionParam,\n ActionReturnTypeForOptions,\n ApplyActionOptions,\n ApplyBatchActionOptions,\n } from \"${forInternalUse ? \"@osdk/api\" : \"@osdk/client\"}\";\n import { $osdkMetadata} from \"../../OntologyMetadata${importExt}\";\n ${imports}\n\n\n ${createV2Types()}\n\n ${createV2Object()}\n `),\n );\n }),\n );\n\n const indexFileRelPath = path.join(\"ontology\", \"actions.ts\");\n\n await fs.writeFile(\n path.join(rootOutDir, indexFileRelPath),\n await formatTs(`\n ${\n Object.values(enhancedOntology.actionTypes).map(action => {\n const exportConstLine = `export {${action.shortApiName} } from \"${\n action.getImportPathRelTo(indexFileRelPath)\n }\";`;\n\n return exportConstLine;\n })\n .join(\"\\n\")\n }\n ${Object.keys(ontology.actionTypes).length === 0 ? \"export {};\" : \"\"}\n `),\n );\n}\n\nfunction extractReferencedObjectsFromAction(\n actionType: ActionTypeV2,\n): string[] {\n const referencedObjectsInParameters = Object.values(actionType.parameters)\n .flatMap(({ dataType }) => {\n const objectTypeReference = extractReferencedObjectsFromActionParameter(\n dataType,\n );\n return objectTypeReference ? [objectTypeReference] : [];\n });\n\n const referenceObjectsInEdits = actionType.operations.flatMap(value => {\n switch (value.type) {\n case \"createObject\":\n return [value.objectTypeApiName];\n case \"modifyObject\":\n return [value.objectTypeApiName];\n case \"deleteObject\":\n case \"createLink\":\n case \"deleteLink\":\n default:\n return [];\n }\n });\n\n return [...referenceObjectsInEdits, ...referencedObjectsInParameters];\n}\n\nfunction extractReferencedObjectsFromActionParameter(\n actionParameter: ActionParameterType,\n): string | undefined {\n switch (actionParameter.type) {\n case \"objectSet\":\n case \"object\":\n return actionParameter.objectTypeApiName;\n case \"array\":\n return extractReferencedObjectsFromActionParameter(\n actionParameter.subType,\n );\n case \"string\":\n case \"boolean\":\n case \"attachment\":\n case \"date\":\n case \"double\":\n case \"integer\":\n case \"long\":\n case \"timestamp\":\n return undefined;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,6 +20,7 @@ import { getInterfaceTypeApiNamesFromQuery } from "../shared/getInterfaceTypeApi
|
|
|
20
20
|
import { getObjectImports } from "../shared/getObjectImports.js";
|
|
21
21
|
import { getObjectTypeApiNamesFromQuery } from "../shared/getObjectTypeApiNamesFromQuery.js";
|
|
22
22
|
import { deleteUndefineds } from "../util/deleteUndefineds.js";
|
|
23
|
+
import { escapeJsDocText } from "../util/escapeJsDocText.js";
|
|
23
24
|
import { stringify } from "../util/stringify.js";
|
|
24
25
|
import { formatTs } from "../util/test/formatTs.js";
|
|
25
26
|
import { getDescriptionIfPresent } from "./getDescriptionIfPresent.js";
|
|
@@ -108,12 +109,12 @@ async function generateV2QueryFile(fs, outDir, relOutDir, query, importExt, onto
|
|
|
108
109
|
${getLineFor__OsdkTargetType(ontology, query.output)}
|
|
109
110
|
};
|
|
110
111
|
signature: ${query.shortApiName}.Signature;
|
|
111
|
-
},
|
|
112
|
+
},
|
|
112
113
|
${stringify(baseProps, {
|
|
113
114
|
"description": () => undefined,
|
|
114
115
|
"displayName": () => undefined,
|
|
115
116
|
"rid": () => undefined
|
|
116
|
-
})},
|
|
117
|
+
})},
|
|
117
118
|
osdkMetadata: typeof $osdkMetadata;
|
|
118
119
|
}
|
|
119
120
|
|
|
@@ -151,7 +152,7 @@ export function queryParamJsDoc(param, {
|
|
|
151
152
|
let ret = `/**\n`;
|
|
152
153
|
if (param.description) {
|
|
153
154
|
if (param.description) {
|
|
154
|
-
ret += ` * description: ${param.description}\n`;
|
|
155
|
+
ret += ` * description: ${escapeJsDocText(param.description)}\n`;
|
|
155
156
|
}
|
|
156
157
|
} else {
|
|
157
158
|
ret += ` * (no ontology metadata)\n`;
|
|
@@ -200,7 +201,7 @@ export function getQueryParamType(enhancedOntology, input, type, isMapKey = fals
|
|
|
200
201
|
paramType = `Query${type}.TwoDimensionalAggregationType<${input.twoDimensionalAggregation.keyType === "range" ? `Query${type}.RangeKey<"${input.twoDimensionalAggregation.keySubtype}">` : `"${input.twoDimensionalAggregation.keyType}"`}, "${input.twoDimensionalAggregation.valueType}">`;
|
|
201
202
|
break;
|
|
202
203
|
case "threeDimensionalAggregation":
|
|
203
|
-
paramType = `Query${type}.ThreeDimensionalAggregationType<${input.threeDimensionalAggregation.keyType === "range" ? `Query${type}.RangeKey<"${input.threeDimensionalAggregation.keySubtype}">` : `"${input.threeDimensionalAggregation.keyType}"`},${input.threeDimensionalAggregation.valueType.keyType === "range" ? `Query${type}.RangeKey<"${input.threeDimensionalAggregation.valueType.keySubtype}">` : `"${input.threeDimensionalAggregation.valueType.keyType}"`},
|
|
204
|
+
paramType = `Query${type}.ThreeDimensionalAggregationType<${input.threeDimensionalAggregation.keyType === "range" ? `Query${type}.RangeKey<"${input.threeDimensionalAggregation.keySubtype}">` : `"${input.threeDimensionalAggregation.keyType}"`},${input.threeDimensionalAggregation.valueType.keyType === "range" ? `Query${type}.RangeKey<"${input.threeDimensionalAggregation.valueType.keySubtype}">` : `"${input.threeDimensionalAggregation.valueType.keyType}"`},
|
|
204
205
|
"${input.threeDimensionalAggregation.valueType.valueType}">`;
|
|
205
206
|
break;
|
|
206
207
|
case "object":
|
|
@@ -1 +1 @@
|
|
|
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","typeRefs","typeReferences","customTypesNs","generateCustomTypesNamespace","typeRefNames","buildTypeRefNames","description","parameters","paramsIdentifier","*","parameter","formatter","apiName","q","queryParamJsDoc","nullable","getQueryParamType","outputDef","dataType","required","outputType","type","parameterDefsForType","getLineFor__OsdkTargetType","undefined","displayName","rid","definitionIdentifier","valueFormatter","qdt","objectTypeApiName","getImportedDefinitionIdentifier","param","ret","enhancedOntology","input","isMapKey","paramType","recurse","i","mk","array","JSON","struct","p","twoDimensionalAggregation","keyType","keySubtype","valueType","threeDimensionalAggregation","object","interface","objectSet","set","union","u","resolved","get","typeId","Error","expand","names","Map","id","sanitized","replace","qualName","size","interfaces","dt","entries","converted","push"],"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 {\n QueryDataTypeDefinition,\n QueryParameterDefinition,\n} 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 const typeRefs = query.raw.typeReferences ?? {};\n const customTypesNs = generateCustomTypesNamespace(ontology, typeRefs);\n const typeRefNames = buildTypeRefNames(typeRefs, true);\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 ${customTypesNs}\n\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\", false, typeRefNames),\n ];\n },\n })\n }\n }`\n : \"\"\n }\n\n ${\n (() => {\n const outputDef = paramToDef({\n dataType: query.output,\n required: true,\n });\n const outputType = getQueryParamType(\n ontology,\n outputDef,\n \"Result\",\n false,\n typeRefNames,\n );\n return query.output.type === \"struct\"\n ? `export interface ReturnType ${outputType}`\n : `export type ReturnType = ${outputType};`;\n })()\n }\n }\n\n ${getDescriptionIfPresent(query.description)}\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 ${getDescriptionIfPresent(query.description)}\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: QueryDataTypeDefinition,\n type: \"Param\" | \"Result\",\n isMapKey = false,\n typeRefNames?: Map<string, string>,\n): string {\n let paramType = `unknown /* ${input.type} */`;\n const recurse = (i: QueryDataTypeDefinition, mk = false) =>\n getQueryParamType(enhancedOntology, i, type, mk, typeRefNames);\n\n switch (input.type) {\n case \"array\":\n paramType = `${type === \"Param\" ? \"Readonly\" : \"\"}Array<${\n recurse(input.array)\n }>`;\n break;\n case \"date\":\n paramType = `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 paramType = `Query${type}.PrimitiveType<${JSON.stringify(input.type)}>`;\n break;\n case \"mediaReference\":\n if (type === \"Param\") {\n paramType = `Query${type}.PrimitiveType<${JSON.stringify(input.type)}>`;\n } else {\n paramType = `Query${type}.MediaType`;\n }\n break;\n case \"struct\":\n paramType = `{\n ${\n stringify(input.struct, {\n \"*\": (p, formatter, apiName) => {\n return [\n `\n ${type === \"Param\" ? \"readonly \" : \"\"}\"${apiName}\"${\n p.nullable ? \"?\" : \"\"\n }`,\n recurse(p),\n ];\n },\n })\n }\n }`;\n break;\n case \"twoDimensionalAggregation\":\n paramType = `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 paramType = `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 paramType = `ObjectSpecifier<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n }\n paramType = `Query${type}.ObjectType<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n case \"interface\":\n paramType = `Query${type}.InterfaceType<${\n enhancedOntology.requireInterfaceType(input.interface)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"objectSet\":\n paramType = `Query${type}.ObjectSetType<${\n enhancedOntology.requireObjectType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"interfaceObjectSet\":\n paramType = `Query${type}.ObjectSetType<${\n enhancedOntology.requireInterfaceType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"set\":\n paramType = `${type === \"Param\" ? \"Readonly\" : \"\"}Set<${\n recurse(input.set)\n }>`;\n break;\n\n case \"union\":\n paramType = input.union.map((u) => recurse(u)).join(\" | \");\n break;\n\n case \"map\":\n paramType = `Partial<Record<${recurse(input.keyType, true)}, ${\n recurse(input.valueType)\n }>>`;\n break;\n\n case \"typeReference\": {\n const resolved = typeRefNames?.get(input.typeId);\n if (resolved == null) {\n throw new Error(`Unknown typeReference: ${input.typeId}`);\n }\n paramType = resolved;\n break;\n }\n }\n\n return paramType;\n}\n\nfunction buildTypeRefNames(\n typeRefs: Record<string, QueryDataType>,\n expand: boolean,\n): Map<string, string> {\n const names = new Map<string, string>();\n for (const id of Object.keys(typeRefs)) {\n // We prefix with $ to ensure the name is a valid TypeScript identifier, and replace any dashes with underscores for the same reason\n // An example ID looks like so \"1225e6a4-41d2-4081-9b3c-9b7dd0db5390\"\n const sanitized = `$${id.replace(/-/g, \"_\")}`;\n const qualName = `CustomTypes.${sanitized}`;\n names.set(id, expand ? `CustomTypes.Expand<${qualName}>` : qualName);\n }\n return names;\n}\n\nfunction generateCustomTypesNamespace(\n ontology: EnhancedOntologyDefinition,\n typeRefs: Record<string, QueryDataType>,\n): string {\n const names = buildTypeRefNames(typeRefs, false);\n if (names.size === 0) return \"\";\n\n const interfaces: string[] = [];\n for (const [id, dt] of Object.entries(typeRefs)) {\n if (dt.type !== \"struct\") {\n throw new Error(\n `Unsupported typeReference type \"${dt.type}\" for id \"${id}\": only struct type references are supported`,\n );\n }\n const sanitized = `$${id.replace(/-/g, \"_\")}`;\n const converted = wireQueryDataTypeToQueryDataTypeDefinition(dt);\n interfaces.push(\n `export interface ${sanitized} ${\n getQueryParamType(ontology, converted, \"Param\", false, names)\n }`,\n );\n }\n\n if (interfaces.length === 0) return \"\";\n\n return `namespace CustomTypes {\n export type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;\n ${interfaces.join(\"\\n\\n\")}\n }`;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"generatePerQueryDataFiles.js","names":["wireQueryDataTypeToQueryDataTypeDefinition","wireQueryParameterV2ToQueryParameterDefinition","paramToDef","wireQueryTypeV2ToSdkQueryDefinitionNoParams","path","getInterfaceTypeApiNamesFromQuery","getObjectImports","getObjectTypeApiNamesFromQuery","deleteUndefineds","escapeJsDocText","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","typeRefs","typeReferences","customTypesNs","generateCustomTypesNamespace","typeRefNames","buildTypeRefNames","description","parameters","paramsIdentifier","*","parameter","formatter","apiName","q","queryParamJsDoc","nullable","getQueryParamType","outputDef","dataType","required","outputType","type","parameterDefsForType","getLineFor__OsdkTargetType","undefined","displayName","rid","definitionIdentifier","valueFormatter","qdt","objectTypeApiName","getImportedDefinitionIdentifier","param","ret","enhancedOntology","input","isMapKey","paramType","recurse","i","mk","array","JSON","struct","p","twoDimensionalAggregation","keyType","keySubtype","valueType","threeDimensionalAggregation","object","interface","objectSet","set","union","u","resolved","get","typeId","Error","expand","names","Map","id","sanitized","replace","qualName","size","interfaces","dt","entries","converted","push"],"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 {\n QueryDataTypeDefinition,\n QueryParameterDefinition,\n} 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 { escapeJsDocText } from \"../util/escapeJsDocText.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 const typeRefs = query.raw.typeReferences ?? {};\n const customTypesNs = generateCustomTypesNamespace(ontology, typeRefs);\n const typeRefNames = buildTypeRefNames(typeRefs, true);\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 ${customTypesNs}\n\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\", false, typeRefNames),\n ];\n },\n })\n }\n }`\n : \"\"\n }\n\n ${\n (() => {\n const outputDef = paramToDef({\n dataType: query.output,\n required: true,\n });\n const outputType = getQueryParamType(\n ontology,\n outputDef,\n \"Result\",\n false,\n typeRefNames,\n );\n return query.output.type === \"struct\"\n ? `export interface ReturnType ${outputType}`\n : `export type ReturnType = ${outputType};`;\n })()\n }\n }\n\n ${getDescriptionIfPresent(query.description)}\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 ${getDescriptionIfPresent(query.description)}\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: ${escapeJsDocText(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: QueryDataTypeDefinition,\n type: \"Param\" | \"Result\",\n isMapKey = false,\n typeRefNames?: Map<string, string>,\n): string {\n let paramType = `unknown /* ${input.type} */`;\n const recurse = (i: QueryDataTypeDefinition, mk = false) =>\n getQueryParamType(enhancedOntology, i, type, mk, typeRefNames);\n\n switch (input.type) {\n case \"array\":\n paramType = `${type === \"Param\" ? \"Readonly\" : \"\"}Array<${\n recurse(input.array)\n }>`;\n break;\n case \"date\":\n paramType = `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 paramType = `Query${type}.PrimitiveType<${JSON.stringify(input.type)}>`;\n break;\n case \"mediaReference\":\n if (type === \"Param\") {\n paramType = `Query${type}.PrimitiveType<${JSON.stringify(input.type)}>`;\n } else {\n paramType = `Query${type}.MediaType`;\n }\n break;\n case \"struct\":\n paramType = `{\n ${\n stringify(input.struct, {\n \"*\": (p, formatter, apiName) => {\n return [\n `\n ${type === \"Param\" ? \"readonly \" : \"\"}\"${apiName}\"${\n p.nullable ? \"?\" : \"\"\n }`,\n recurse(p),\n ];\n },\n })\n }\n }`;\n break;\n case \"twoDimensionalAggregation\":\n paramType = `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 paramType = `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 paramType = `ObjectSpecifier<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n }\n paramType = `Query${type}.ObjectType<${\n enhancedOntology.requireObjectType(input.object)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n case \"interface\":\n paramType = `Query${type}.InterfaceType<${\n enhancedOntology.requireInterfaceType(input.interface)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"objectSet\":\n paramType = `Query${type}.ObjectSetType<${\n enhancedOntology.requireObjectType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"interfaceObjectSet\":\n paramType = `Query${type}.ObjectSetType<${\n enhancedOntology.requireInterfaceType(input.objectSet)\n .getImportedDefinitionIdentifier(true)\n }>`;\n break;\n\n case \"set\":\n paramType = `${type === \"Param\" ? \"Readonly\" : \"\"}Set<${\n recurse(input.set)\n }>`;\n break;\n\n case \"union\":\n paramType = input.union.map((u) => recurse(u)).join(\" | \");\n break;\n\n case \"map\":\n paramType = `Partial<Record<${recurse(input.keyType, true)}, ${\n recurse(input.valueType)\n }>>`;\n break;\n\n case \"typeReference\": {\n const resolved = typeRefNames?.get(input.typeId);\n if (resolved == null) {\n throw new Error(`Unknown typeReference: ${input.typeId}`);\n }\n paramType = resolved;\n break;\n }\n }\n\n return paramType;\n}\n\nfunction buildTypeRefNames(\n typeRefs: Record<string, QueryDataType>,\n expand: boolean,\n): Map<string, string> {\n const names = new Map<string, string>();\n for (const id of Object.keys(typeRefs)) {\n // We prefix with $ to ensure the name is a valid TypeScript identifier, and replace any dashes with underscores for the same reason\n // An example ID looks like so \"1225e6a4-41d2-4081-9b3c-9b7dd0db5390\"\n const sanitized = `$${id.replace(/-/g, \"_\")}`;\n const qualName = `CustomTypes.${sanitized}`;\n names.set(id, expand ? `CustomTypes.Expand<${qualName}>` : qualName);\n }\n return names;\n}\n\nfunction generateCustomTypesNamespace(\n ontology: EnhancedOntologyDefinition,\n typeRefs: Record<string, QueryDataType>,\n): string {\n const names = buildTypeRefNames(typeRefs, false);\n if (names.size === 0) return \"\";\n\n const interfaces: string[] = [];\n for (const [id, dt] of Object.entries(typeRefs)) {\n if (dt.type !== \"struct\") {\n throw new Error(\n `Unsupported typeReference type \"${dt.type}\" for id \"${id}\": only struct type references are supported`,\n );\n }\n const sanitized = `$${id.replace(/-/g, \"_\")}`;\n const converted = wireQueryDataTypeToQueryDataTypeDefinition(dt);\n interfaces.push(\n `export interface ${sanitized} ${\n getQueryParamType(ontology, converted, \"Param\", false, names)\n }`,\n );\n }\n\n if (interfaces.length === 0) return \"\";\n\n return `namespace CustomTypes {\n export type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;\n ${interfaces.join(\"\\n\\n\")}\n }`;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import { escapeJsDocText } from "../util/escapeJsDocText.js";
|
|
17
18
|
export function getDescriptionIfPresent(description, includeNewline) {
|
|
18
19
|
if (description) {
|
|
19
20
|
// Preserve line breaks in multi-line descriptions
|
|
20
|
-
const lines = description.split("\n");
|
|
21
|
+
const lines = escapeJsDocText(description).split("\n");
|
|
21
22
|
const formattedLines = lines.map(line => ` * ${line}`).join("\n");
|
|
22
23
|
return `/**
|
|
23
24
|
${formattedLines}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDescriptionIfPresent.js","names":["getDescriptionIfPresent","description","includeNewline","lines","split","formattedLines","map","line","join"],"sources":["getDescriptionIfPresent.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\nexport function getDescriptionIfPresent(\n description?: string,\n includeNewline?: boolean,\n): string {\n if (description) {\n // Preserve line breaks in multi-line descriptions\n const lines = description.split(\"\\n\");\n const formattedLines = lines.map(line => ` * ${line}`).join(\"\\n\");\n return `/**\n${formattedLines}\n */${includeNewline ? \"\\n\" : \"\"}`;\n }\n return \"\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"getDescriptionIfPresent.js","names":["escapeJsDocText","getDescriptionIfPresent","description","includeNewline","lines","split","formattedLines","map","line","join"],"sources":["getDescriptionIfPresent.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 { escapeJsDocText } from \"../util/escapeJsDocText.js\";\n\nexport function getDescriptionIfPresent(\n description?: string,\n includeNewline?: boolean,\n): string {\n if (description) {\n // Preserve line breaks in multi-line descriptions\n const lines = escapeJsDocText(description).split(\"\\n\");\n const formattedLines = lines.map(line => ` * ${line}`).join(\"\\n\");\n return `/**\n${formattedLines}\n */${includeNewline ? \"\\n\" : \"\"}`;\n }\n return \"\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,eAAe,QAAQ,4BAA4B;AAE5D,OAAO,SAASC,uBAAuBA,CACrCC,WAAoB,EACpBC,cAAwB,EAChB;EACR,IAAID,WAAW,EAAE;IACf;IACA,MAAME,KAAK,GAAGJ,eAAe,CAACE,WAAW,CAAC,CAACG,KAAK,CAAC,IAAI,CAAC;IACtD,MAAMC,cAAc,GAAGF,KAAK,CAACG,GAAG,CAACC,IAAI,IAAI,MAAMA,IAAI,EAAE,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IACjE,OAAO;AACX,EAAEH,cAAc;AAChB,KAAKH,cAAc,GAAG,IAAI,GAAG,EAAE,EAAE;EAC/B;EACA,OAAO,EAAE;AACX","ignoreList":[]}
|