@osdk/vite-plugin-oac 0.1.0-beta.0 → 0.1.0-beta.2
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 +39 -0
- package/build/browser/Logger.js +64 -0
- package/build/browser/Logger.js.map +1 -0
- package/build/browser/OacConfig.js +22 -0
- package/build/browser/OacConfig.js.map +1 -0
- package/build/browser/OacContext.js +42 -0
- package/build/browser/OacContext.js.map +1 -0
- package/build/browser/OacDevServer.js +80 -0
- package/build/browser/OacDevServer.js.map +1 -0
- package/build/browser/OacServerContext.js +26 -0
- package/build/browser/OacServerContext.js.map +1 -0
- package/build/browser/applyOntologyAndSeed.js +38 -0
- package/build/browser/applyOntologyAndSeed.js.map +1 -0
- package/build/browser/generateOntologyAssets.js +81 -87
- package/build/browser/generateOntologyAssets.js.map +1 -1
- package/build/browser/index.js +2 -52
- package/build/browser/index.js.map +1 -1
- package/build/browser/ontologyAsCode.js +58 -0
- package/build/browser/ontologyAsCode.js.map +1 -0
- package/build/browser/registerOntologyFullMetadata.js +90 -57
- package/build/browser/registerOntologyFullMetadata.js.map +1 -1
- package/build/browser/syncDirectories.js +11 -34
- package/build/browser/syncDirectories.js.map +1 -1
- package/build/cjs/index.cjs +487 -414
- package/build/cjs/index.cjs.map +1 -1
- package/build/cjs/index.d.cts +20 -6
- package/build/esm/Logger.js +64 -0
- package/build/esm/Logger.js.map +1 -0
- package/build/esm/OacConfig.js +22 -0
- package/build/esm/OacConfig.js.map +1 -0
- package/build/esm/OacContext.js +42 -0
- package/build/esm/OacContext.js.map +1 -0
- package/build/esm/OacDevServer.js +80 -0
- package/build/esm/OacDevServer.js.map +1 -0
- package/build/esm/OacServerContext.js +26 -0
- package/build/esm/OacServerContext.js.map +1 -0
- package/build/esm/applyOntologyAndSeed.js +38 -0
- package/build/esm/applyOntologyAndSeed.js.map +1 -0
- package/build/esm/generateOntologyAssets.js +81 -87
- package/build/esm/generateOntologyAssets.js.map +1 -1
- package/build/esm/index.js +2 -52
- package/build/esm/index.js.map +1 -1
- package/build/esm/ontologyAsCode.js +58 -0
- package/build/esm/ontologyAsCode.js.map +1 -0
- package/build/esm/registerOntologyFullMetadata.js +90 -57
- package/build/esm/registerOntologyFullMetadata.js.map +1 -1
- package/build/esm/syncDirectories.js +11 -34
- package/build/esm/syncDirectories.js.map +1 -1
- package/build/types/Logger.d.ts +18 -0
- package/build/types/Logger.d.ts.map +1 -0
- package/build/types/OacConfig.d.ts +12 -0
- package/build/types/OacConfig.d.ts.map +1 -0
- package/build/types/OacContext.d.ts +12 -0
- package/build/types/OacContext.d.ts.map +1 -0
- package/build/types/OacDevServer.d.ts +10 -0
- package/build/types/OacDevServer.d.ts.map +1 -0
- package/build/types/OacServerContext.d.ts +12 -0
- package/build/types/OacServerContext.d.ts.map +1 -0
- package/build/types/applyOntologyAndSeed.d.ts +3 -0
- package/build/types/applyOntologyAndSeed.d.ts.map +1 -0
- package/build/types/generateOntologyAssets.d.ts +4 -7
- package/build/types/generateOntologyAssets.d.ts.map +1 -1
- package/build/types/index.d.ts +2 -11
- package/build/types/index.d.ts.map +1 -1
- package/build/types/ontologyAsCode.d.ts +7 -0
- package/build/types/ontologyAsCode.d.ts.map +1 -0
- package/build/types/registerOntologyFullMetadata.d.ts.map +1 -1
- package/build/types/syncDirectories.d.ts +1 -1
- package/build/types/syncDirectories.d.ts.map +1 -1
- package/package.json +12 -9
- package/build/browser/FauxFoundryTypes.js +0 -2
- package/build/browser/FauxFoundryTypes.js.map +0 -1
- package/build/browser/FoundryMiddlewareController.js +0 -88
- package/build/browser/FoundryMiddlewareController.js.map +0 -1
- package/build/browser/watchOntologyAsCode.js +0 -69
- package/build/browser/watchOntologyAsCode.js.map +0 -1
- package/build/esm/FauxFoundryTypes.js +0 -2
- package/build/esm/FauxFoundryTypes.js.map +0 -1
- package/build/esm/FoundryMiddlewareController.js +0 -88
- package/build/esm/FoundryMiddlewareController.js.map +0 -1
- package/build/esm/watchOntologyAsCode.js +0 -69
- package/build/esm/watchOntologyAsCode.js.map +0 -1
- package/build/types/FauxFoundryTypes.d.ts +0 -2
- package/build/types/FauxFoundryTypes.d.ts.map +0 -1
- package/build/types/FoundryMiddlewareController.d.ts +0 -14
- package/build/types/FoundryMiddlewareController.d.ts.map +0 -1
- package/build/types/watchOntologyAsCode.d.ts +0 -10
- package/build/types/watchOntologyAsCode.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"AAmBA,cAAc,cAAc,
|
|
1
|
+
{"mappings":"AAmBA,cAAc,cAAc,aAAc;;;;AAK1C,OAAO,iBAAe,gBACpBA,mBACAC,mBACAC,QAAQ,SACP","names":["sourceDir: string","targetDir: string","logger: Logger"],"sources":["../../src/syncDirectories.ts"],"version":3,"file":"syncDirectories.d.ts"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osdk/vite-plugin-oac",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.2",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -28,15 +28,18 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@osdk/foundry.ontologies": "^2.23.0",
|
|
31
|
+
"chalk": "^5.4.1",
|
|
32
|
+
"emittery": "^1.2.0",
|
|
31
33
|
"execa": "^9.6.0",
|
|
32
34
|
"express": "^5.1.0",
|
|
33
35
|
"jiti": "^2.4.2",
|
|
34
|
-
"
|
|
35
|
-
"@osdk/
|
|
36
|
-
"@osdk/
|
|
37
|
-
"@osdk/client.unstable": "2.3.0-beta.
|
|
38
|
-
"@osdk/
|
|
39
|
-
"@osdk/
|
|
36
|
+
"tiny-invariant": "^1.3.3",
|
|
37
|
+
"@osdk/api": "2.3.0-beta.7",
|
|
38
|
+
"@osdk/cli": "0.27.0-beta.7",
|
|
39
|
+
"@osdk/client.unstable": "2.3.0-beta.7",
|
|
40
|
+
"@osdk/faux": "0.1.0-beta.3",
|
|
41
|
+
"@osdk/generator-converters.ontologyir": "2.3.0-beta.7",
|
|
42
|
+
"@osdk/maker": "0.11.0-beta.8"
|
|
40
43
|
},
|
|
41
44
|
"peerDependencies": {
|
|
42
45
|
"@osdk/maker": "*",
|
|
@@ -45,8 +48,8 @@
|
|
|
45
48
|
"devDependencies": {
|
|
46
49
|
"@types/node": "^20.19.0",
|
|
47
50
|
"typescript": "~5.5.4",
|
|
48
|
-
"@osdk/monorepo.
|
|
49
|
-
"@osdk/monorepo.
|
|
51
|
+
"@osdk/monorepo.api-extractor": "~0.2.0-beta.1",
|
|
52
|
+
"@osdk/monorepo.tsconfig": "~0.2.0-beta.1"
|
|
50
53
|
},
|
|
51
54
|
"publishConfig": {
|
|
52
55
|
"access": "public"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FauxFoundryTypes.js","names":[],"sources":["FauxFoundryTypes.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\nimport type { FauxFoundry } from \"@osdk/faux\";\n\nexport type FauxActionImpl = Parameters<\n ReturnType<FauxFoundry[\"getOntology\"]>[\"registerActionType\"]\n>[1];\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,88 +0,0 @@
|
|
|
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
|
-
import { FauxFoundry } from "@osdk/faux";
|
|
18
|
-
import EventEmitter from "node:events";
|
|
19
|
-
import path from "node:path";
|
|
20
|
-
import { applySeed } from "./applySeed.js";
|
|
21
|
-
import { registerOntologyFullMetadata } from "./registerOntologyFullMetadata.js";
|
|
22
|
-
import { routeConnectToMsw } from "./routeConnectToMsw.js";
|
|
23
|
-
import { readJsonFile } from "./utils/readJsonFile.js";
|
|
24
|
-
export class FoundryMiddlewareController {
|
|
25
|
-
#fauxFoundry;
|
|
26
|
-
#serverUrl;
|
|
27
|
-
#defaultOntologyRid;
|
|
28
|
-
mswEmitter = new EventEmitter();
|
|
29
|
-
#hooks;
|
|
30
|
-
constructor(serverUrl, defaultOntologyRid, oacEmitter, hooks) {
|
|
31
|
-
this.#serverUrl = serverUrl;
|
|
32
|
-
this.#defaultOntologyRid = defaultOntologyRid;
|
|
33
|
-
this.#hooks = hooks;
|
|
34
|
-
|
|
35
|
-
// create empty initial foundry
|
|
36
|
-
this.#fauxFoundry = this.#createNewFauxFoundry();
|
|
37
|
-
oacEmitter.on("generated", () => {
|
|
38
|
-
this.#reloadOntologyDefinition().catch(e => {
|
|
39
|
-
// eslint-disable-next-line no-console
|
|
40
|
-
console.error("[oac] error reloading ontology definition", e);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
#debugLog(message, ...optionalParams) {
|
|
45
|
-
// eslint-disable-next-line no-console
|
|
46
|
-
console.log("[oac]", message, ...optionalParams);
|
|
47
|
-
}
|
|
48
|
-
#infoLog(message, ...optionalParams) {
|
|
49
|
-
// eslint-disable-next-line no-console
|
|
50
|
-
console.log("[oac]", message, ...optionalParams);
|
|
51
|
-
}
|
|
52
|
-
#errorLog(message, ...optionalParams) {
|
|
53
|
-
// eslint-disable-next-line no-console
|
|
54
|
-
console.error("[oac]", message, ...optionalParams);
|
|
55
|
-
}
|
|
56
|
-
#createNewFauxFoundry() {
|
|
57
|
-
return new FauxFoundry(this.#serverUrl, {
|
|
58
|
-
apiName: "DefaultOntology",
|
|
59
|
-
description: "Description",
|
|
60
|
-
displayName: "Ontology",
|
|
61
|
-
rid: this.#defaultOntologyRid
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
async #reloadOntologyDefinition() {
|
|
65
|
-
// Start with a fresh faux foundry + data
|
|
66
|
-
const fauxFoundry = this.#fauxFoundry = this.#createNewFauxFoundry();
|
|
67
|
-
const ontology = fauxFoundry.getDefaultOntology();
|
|
68
|
-
const ontologyFullMetadata = readJsonFile(".ontology.json");
|
|
69
|
-
registerOntologyFullMetadata(ontology, ontologyFullMetadata);
|
|
70
|
-
try {
|
|
71
|
-
if (this.#hooks?.preSeed) {
|
|
72
|
-
this.#debugLog("[oac] calling preSeed hook");
|
|
73
|
-
}
|
|
74
|
-
await this.#hooks?.preSeed?.(ontology);
|
|
75
|
-
} catch (e) {
|
|
76
|
-
this.#errorLog("[oac] Unhandled error from preSeed hook. Ignoring and continuing.", e);
|
|
77
|
-
}
|
|
78
|
-
this.#debugLog("[osdk] applying seed data");
|
|
79
|
-
await applySeed(this.#fauxFoundry, path.resolve(import.meta.dirname, "..", "..", ".ontology", "seed.ts"));
|
|
80
|
-
this.#infoLog("[osdk] Finished reloading ontology & seed data");
|
|
81
|
-
// TODO Maybe emit something that tells the front end associated with this
|
|
82
|
-
// vite plugin to full reload?
|
|
83
|
-
}
|
|
84
|
-
middleware = async (req, res, next) => {
|
|
85
|
-
return void (await routeConnectToMsw(this.#serverUrl, this.#fauxFoundry.handlers, this.mswEmitter, req, res, next));
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=FoundryMiddlewareController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FoundryMiddlewareController.js","names":["FauxFoundry","EventEmitter","path","applySeed","registerOntologyFullMetadata","routeConnectToMsw","readJsonFile","FoundryMiddlewareController","fauxFoundry","serverUrl","defaultOntologyRid","mswEmitter","hooks","constructor","oacEmitter","createNewFauxFoundry","on","reloadOntologyDefinition","catch","e","console","error","debugLog","#debugLog","message","optionalParams","log","infoLog","#infoLog","errorLog","#errorLog","#createNewFauxFoundry","apiName","description","displayName","rid","#reloadOntologyDefinition","ontology","getDefaultOntology","ontologyFullMetadata","preSeed","resolve","import","meta","dirname","middleware","req","res","next","handlers"],"sources":["FoundryMiddlewareController.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\nimport type { msw } from \"@osdk/faux\";\nimport { FauxFoundry } from \"@osdk/faux\";\nimport type * as Ontologies from \"@osdk/foundry.ontologies\";\nimport EventEmitter from \"node:events\";\nimport path from \"node:path\";\nimport type { Connect } from \"vite\";\nimport { applySeed } from \"./applySeed.js\";\nimport { registerOntologyFullMetadata } from \"./registerOntologyFullMetadata.js\";\nimport { routeConnectToMsw } from \"./routeConnectToMsw.js\";\nimport { readJsonFile } from \"./utils/readJsonFile.js\";\nimport type { WatchOntologyAsCodeEvents } from \"./watchOntologyAsCode.js\";\n\nexport interface Hooks {\n preSeed?: (\n fauxOntology: ReturnType<FauxFoundry[\"getOntology\"]>,\n ) => Promise<void>;\n}\n\nexport class FoundryMiddlewareController {\n #fauxFoundry: FauxFoundry;\n #serverUrl: string;\n #defaultOntologyRid: string;\n readonly mswEmitter: EventEmitter<msw.LifeCycleEventsMap> = new EventEmitter<\n msw.LifeCycleEventsMap\n >();\n #hooks: Hooks | undefined;\n\n constructor(\n serverUrl: string,\n defaultOntologyRid: string,\n oacEmitter: EventEmitter<WatchOntologyAsCodeEvents>,\n hooks?: Hooks,\n ) {\n this.#serverUrl = serverUrl;\n this.#defaultOntologyRid = defaultOntologyRid;\n this.#hooks = hooks;\n\n // create empty initial foundry\n this.#fauxFoundry = this.#createNewFauxFoundry();\n\n oacEmitter.on(\"generated\", () => {\n this.#reloadOntologyDefinition().catch(e => {\n // eslint-disable-next-line no-console\n console.error(\"[oac] error reloading ontology definition\", e);\n });\n });\n }\n\n #debugLog(message?: any, ...optionalParams: any[]) {\n // eslint-disable-next-line no-console\n console.log(\"[oac]\", message, ...optionalParams);\n }\n\n #infoLog(message?: any, ...optionalParams: any[]) {\n // eslint-disable-next-line no-console\n console.log(\"[oac]\", message, ...optionalParams);\n }\n\n #errorLog(message?: any, ...optionalParams: any[]) {\n // eslint-disable-next-line no-console\n console.error(\"[oac]\", message, ...optionalParams);\n }\n\n #createNewFauxFoundry() {\n return new FauxFoundry(this.#serverUrl, {\n apiName: \"DefaultOntology\",\n description: \"Description\",\n displayName: \"Ontology\",\n rid: this.#defaultOntologyRid,\n });\n }\n\n async #reloadOntologyDefinition() {\n // Start with a fresh faux foundry + data\n const fauxFoundry = (this.#fauxFoundry = this.#createNewFauxFoundry());\n\n const ontology = fauxFoundry.getDefaultOntology();\n\n const ontologyFullMetadata = readJsonFile<Ontologies.OntologyFullMetadata>(\n \".ontology.json\",\n );\n registerOntologyFullMetadata(ontology, ontologyFullMetadata);\n\n try {\n if (this.#hooks?.preSeed) {\n this.#debugLog(\"[oac] calling preSeed hook\");\n }\n\n await this.#hooks?.preSeed?.(ontology);\n } catch (e) {\n this.#errorLog(\n \"[oac] Unhandled error from preSeed hook. Ignoring and continuing.\",\n e,\n );\n }\n\n this.#debugLog(\"[osdk] applying seed data\");\n await applySeed(\n this.#fauxFoundry,\n path.resolve(import.meta.dirname, \"..\", \"..\", \".ontology\", \"seed.ts\"),\n );\n\n this.#infoLog(\"[osdk] Finished reloading ontology & seed data\");\n // TODO Maybe emit something that tells the front end associated with this\n // vite plugin to full reload?\n }\n\n middleware: Connect.NextHandleFunction = async (req, res, next) => {\n return void await routeConnectToMsw(\n this.#serverUrl,\n this.#fauxFoundry.handlers,\n this.mswEmitter,\n req,\n res,\n next,\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,69 +0,0 @@
|
|
|
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
|
-
import EventEmitter from "node:events";
|
|
18
|
-
import fs from "node:fs";
|
|
19
|
-
import { generateOntologyAssets } from "./generateOntologyAssets.js";
|
|
20
|
-
export function watchOntologyAsCode({
|
|
21
|
-
watcher,
|
|
22
|
-
logger,
|
|
23
|
-
ontologyDir
|
|
24
|
-
}) {
|
|
25
|
-
const emitter = new EventEmitter();
|
|
26
|
-
logger.info(`Starting OAC file watcher for ${ontologyDir}`, {
|
|
27
|
-
timestamp: true
|
|
28
|
-
});
|
|
29
|
-
if (!fs.existsSync(ontologyDir)) {
|
|
30
|
-
fs.mkdirSync(ontologyDir, {
|
|
31
|
-
recursive: true
|
|
32
|
-
});
|
|
33
|
-
logger.info("Created .ontology directory", {
|
|
34
|
-
timestamp: true
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
watcher.add(ontologyDir);
|
|
38
|
-
|
|
39
|
-
// Add event listeners
|
|
40
|
-
watcher.on("add", handleOacFileChanged).on("change", handleOacFileChanged).on("unlink", handleOacFileChanged);
|
|
41
|
-
|
|
42
|
-
// invoke the handler at startup
|
|
43
|
-
handleOacFileChanged(undefined);
|
|
44
|
-
return emitter;
|
|
45
|
-
function handleOacFileChanged(filePath) {
|
|
46
|
-
if (filePath && !filePath.startsWith(`${ontologyDir}/`)) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (filePath) {
|
|
50
|
-
logger.info(`File ${filePath} changed.`, {
|
|
51
|
-
timestamp: true
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
(async () => {
|
|
55
|
-
await generateOntologyAssets({
|
|
56
|
-
logger,
|
|
57
|
-
ontologyDir
|
|
58
|
-
});
|
|
59
|
-
emitter.emit("generated");
|
|
60
|
-
})().catch(error => {
|
|
61
|
-
// eslint-disable-next-line no-console
|
|
62
|
-
console.error(error);
|
|
63
|
-
logger.error(`Error executing command: ${error.message}`, {
|
|
64
|
-
timestamp: true
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=watchOntologyAsCode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"watchOntologyAsCode.js","names":["EventEmitter","fs","generateOntologyAssets","watchOntologyAsCode","watcher","logger","ontologyDir","emitter","info","timestamp","existsSync","mkdirSync","recursive","add","on","handleOacFileChanged","undefined","filePath","startsWith","emit","catch","error","console","message"],"sources":["watchOntologyAsCode.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\nimport EventEmitter from \"node:events\";\nimport fs from \"node:fs\";\nimport type { FSWatcher, Logger } from \"vite\";\nimport { generateOntologyAssets } from \"./generateOntologyAssets.js\";\n\nexport interface WatchOntologyAsCodeEvents {\n generated: [];\n}\n\nexport function watchOntologyAsCode(\n { watcher, logger, ontologyDir }: {\n watcher: FSWatcher;\n logger: Logger;\n ontologyDir: string;\n },\n): EventEmitter<WatchOntologyAsCodeEvents> {\n const emitter = new EventEmitter<WatchOntologyAsCodeEvents>();\n logger.info(`Starting OAC file watcher for ${ontologyDir}`, {\n timestamp: true,\n });\n\n if (!fs.existsSync(ontologyDir)) {\n fs.mkdirSync(ontologyDir, { recursive: true });\n\n logger.info(\"Created .ontology directory\", { timestamp: true });\n }\n\n watcher.add(ontologyDir);\n\n // Add event listeners\n watcher\n .on(\"add\", handleOacFileChanged)\n .on(\"change\", handleOacFileChanged)\n .on(\"unlink\", handleOacFileChanged);\n\n // invoke the handler at startup\n handleOacFileChanged(undefined);\n\n return emitter;\n\n function handleOacFileChanged(filePath: string | undefined): void {\n if (filePath && !filePath.startsWith(`${ontologyDir}/`)) {\n return;\n }\n\n if (filePath) {\n logger.info(`File ${filePath} changed.`, { timestamp: true });\n }\n\n (async () => {\n await generateOntologyAssets({\n logger,\n ontologyDir,\n });\n emitter.emit(\"generated\");\n })().catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n logger.error(`Error executing command: ${error.message}`, {\n timestamp: true,\n });\n });\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,YAAY,MAAM,aAAa;AACtC,OAAOC,EAAE,MAAM,SAAS;AAExB,SAASC,sBAAsB,QAAQ,6BAA6B;AAMpE,OAAO,SAASC,mBAAmBA,CACjC;EAAEC,OAAO;EAAEC,MAAM;EAAEC;AAInB,CAAC,EACwC;EACzC,MAAMC,OAAO,GAAG,IAAIP,YAAY,CAA4B,CAAC;EAC7DK,MAAM,CAACG,IAAI,CAAC,iCAAiCF,WAAW,EAAE,EAAE;IAC1DG,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,IAAI,CAACR,EAAE,CAACS,UAAU,CAACJ,WAAW,CAAC,EAAE;IAC/BL,EAAE,CAACU,SAAS,CAACL,WAAW,EAAE;MAAEM,SAAS,EAAE;IAAK,CAAC,CAAC;IAE9CP,MAAM,CAACG,IAAI,CAAC,6BAA6B,EAAE;MAAEC,SAAS,EAAE;IAAK,CAAC,CAAC;EACjE;EAEAL,OAAO,CAACS,GAAG,CAACP,WAAW,CAAC;;EAExB;EACAF,OAAO,CACJU,EAAE,CAAC,KAAK,EAAEC,oBAAoB,CAAC,CAC/BD,EAAE,CAAC,QAAQ,EAAEC,oBAAoB,CAAC,CAClCD,EAAE,CAAC,QAAQ,EAAEC,oBAAoB,CAAC;;EAErC;EACAA,oBAAoB,CAACC,SAAS,CAAC;EAE/B,OAAOT,OAAO;EAEd,SAASQ,oBAAoBA,CAACE,QAA4B,EAAQ;IAChE,IAAIA,QAAQ,IAAI,CAACA,QAAQ,CAACC,UAAU,CAAC,GAAGZ,WAAW,GAAG,CAAC,EAAE;MACvD;IACF;IAEA,IAAIW,QAAQ,EAAE;MACZZ,MAAM,CAACG,IAAI,CAAC,QAAQS,QAAQ,WAAW,EAAE;QAAER,SAAS,EAAE;MAAK,CAAC,CAAC;IAC/D;IAEA,CAAC,YAAY;MACX,MAAMP,sBAAsB,CAAC;QAC3BG,MAAM;QACNC;MACF,CAAC,CAAC;MACFC,OAAO,CAACY,IAAI,CAAC,WAAW,CAAC;IAC3B,CAAC,EAAE,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;MACpB;MACAC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACpBhB,MAAM,CAACgB,KAAK,CAAC,4BAA4BA,KAAK,CAACE,OAAO,EAAE,EAAE;QACxDd,SAAS,EAAE;MACb,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FauxFoundryTypes.js","names":[],"sources":["FauxFoundryTypes.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\nimport type { FauxFoundry } from \"@osdk/faux\";\n\nexport type FauxActionImpl = Parameters<\n ReturnType<FauxFoundry[\"getOntology\"]>[\"registerActionType\"]\n>[1];\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,88 +0,0 @@
|
|
|
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
|
-
import { FauxFoundry } from "@osdk/faux";
|
|
18
|
-
import EventEmitter from "node:events";
|
|
19
|
-
import path from "node:path";
|
|
20
|
-
import { applySeed } from "./applySeed.js";
|
|
21
|
-
import { registerOntologyFullMetadata } from "./registerOntologyFullMetadata.js";
|
|
22
|
-
import { routeConnectToMsw } from "./routeConnectToMsw.js";
|
|
23
|
-
import { readJsonFile } from "./utils/readJsonFile.js";
|
|
24
|
-
export class FoundryMiddlewareController {
|
|
25
|
-
#fauxFoundry;
|
|
26
|
-
#serverUrl;
|
|
27
|
-
#defaultOntologyRid;
|
|
28
|
-
mswEmitter = new EventEmitter();
|
|
29
|
-
#hooks;
|
|
30
|
-
constructor(serverUrl, defaultOntologyRid, oacEmitter, hooks) {
|
|
31
|
-
this.#serverUrl = serverUrl;
|
|
32
|
-
this.#defaultOntologyRid = defaultOntologyRid;
|
|
33
|
-
this.#hooks = hooks;
|
|
34
|
-
|
|
35
|
-
// create empty initial foundry
|
|
36
|
-
this.#fauxFoundry = this.#createNewFauxFoundry();
|
|
37
|
-
oacEmitter.on("generated", () => {
|
|
38
|
-
this.#reloadOntologyDefinition().catch(e => {
|
|
39
|
-
// eslint-disable-next-line no-console
|
|
40
|
-
console.error("[oac] error reloading ontology definition", e);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
#debugLog(message, ...optionalParams) {
|
|
45
|
-
// eslint-disable-next-line no-console
|
|
46
|
-
console.log("[oac]", message, ...optionalParams);
|
|
47
|
-
}
|
|
48
|
-
#infoLog(message, ...optionalParams) {
|
|
49
|
-
// eslint-disable-next-line no-console
|
|
50
|
-
console.log("[oac]", message, ...optionalParams);
|
|
51
|
-
}
|
|
52
|
-
#errorLog(message, ...optionalParams) {
|
|
53
|
-
// eslint-disable-next-line no-console
|
|
54
|
-
console.error("[oac]", message, ...optionalParams);
|
|
55
|
-
}
|
|
56
|
-
#createNewFauxFoundry() {
|
|
57
|
-
return new FauxFoundry(this.#serverUrl, {
|
|
58
|
-
apiName: "DefaultOntology",
|
|
59
|
-
description: "Description",
|
|
60
|
-
displayName: "Ontology",
|
|
61
|
-
rid: this.#defaultOntologyRid
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
async #reloadOntologyDefinition() {
|
|
65
|
-
// Start with a fresh faux foundry + data
|
|
66
|
-
const fauxFoundry = this.#fauxFoundry = this.#createNewFauxFoundry();
|
|
67
|
-
const ontology = fauxFoundry.getDefaultOntology();
|
|
68
|
-
const ontologyFullMetadata = readJsonFile(".ontology.json");
|
|
69
|
-
registerOntologyFullMetadata(ontology, ontologyFullMetadata);
|
|
70
|
-
try {
|
|
71
|
-
if (this.#hooks?.preSeed) {
|
|
72
|
-
this.#debugLog("[oac] calling preSeed hook");
|
|
73
|
-
}
|
|
74
|
-
await this.#hooks?.preSeed?.(ontology);
|
|
75
|
-
} catch (e) {
|
|
76
|
-
this.#errorLog("[oac] Unhandled error from preSeed hook. Ignoring and continuing.", e);
|
|
77
|
-
}
|
|
78
|
-
this.#debugLog("[osdk] applying seed data");
|
|
79
|
-
await applySeed(this.#fauxFoundry, path.resolve(import.meta.dirname, "..", "..", ".ontology", "seed.ts"));
|
|
80
|
-
this.#infoLog("[osdk] Finished reloading ontology & seed data");
|
|
81
|
-
// TODO Maybe emit something that tells the front end associated with this
|
|
82
|
-
// vite plugin to full reload?
|
|
83
|
-
}
|
|
84
|
-
middleware = async (req, res, next) => {
|
|
85
|
-
return void (await routeConnectToMsw(this.#serverUrl, this.#fauxFoundry.handlers, this.mswEmitter, req, res, next));
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=FoundryMiddlewareController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FoundryMiddlewareController.js","names":["FauxFoundry","EventEmitter","path","applySeed","registerOntologyFullMetadata","routeConnectToMsw","readJsonFile","FoundryMiddlewareController","fauxFoundry","serverUrl","defaultOntologyRid","mswEmitter","hooks","constructor","oacEmitter","createNewFauxFoundry","on","reloadOntologyDefinition","catch","e","console","error","debugLog","#debugLog","message","optionalParams","log","infoLog","#infoLog","errorLog","#errorLog","#createNewFauxFoundry","apiName","description","displayName","rid","#reloadOntologyDefinition","ontology","getDefaultOntology","ontologyFullMetadata","preSeed","resolve","import","meta","dirname","middleware","req","res","next","handlers"],"sources":["FoundryMiddlewareController.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\nimport type { msw } from \"@osdk/faux\";\nimport { FauxFoundry } from \"@osdk/faux\";\nimport type * as Ontologies from \"@osdk/foundry.ontologies\";\nimport EventEmitter from \"node:events\";\nimport path from \"node:path\";\nimport type { Connect } from \"vite\";\nimport { applySeed } from \"./applySeed.js\";\nimport { registerOntologyFullMetadata } from \"./registerOntologyFullMetadata.js\";\nimport { routeConnectToMsw } from \"./routeConnectToMsw.js\";\nimport { readJsonFile } from \"./utils/readJsonFile.js\";\nimport type { WatchOntologyAsCodeEvents } from \"./watchOntologyAsCode.js\";\n\nexport interface Hooks {\n preSeed?: (\n fauxOntology: ReturnType<FauxFoundry[\"getOntology\"]>,\n ) => Promise<void>;\n}\n\nexport class FoundryMiddlewareController {\n #fauxFoundry: FauxFoundry;\n #serverUrl: string;\n #defaultOntologyRid: string;\n readonly mswEmitter: EventEmitter<msw.LifeCycleEventsMap> = new EventEmitter<\n msw.LifeCycleEventsMap\n >();\n #hooks: Hooks | undefined;\n\n constructor(\n serverUrl: string,\n defaultOntologyRid: string,\n oacEmitter: EventEmitter<WatchOntologyAsCodeEvents>,\n hooks?: Hooks,\n ) {\n this.#serverUrl = serverUrl;\n this.#defaultOntologyRid = defaultOntologyRid;\n this.#hooks = hooks;\n\n // create empty initial foundry\n this.#fauxFoundry = this.#createNewFauxFoundry();\n\n oacEmitter.on(\"generated\", () => {\n this.#reloadOntologyDefinition().catch(e => {\n // eslint-disable-next-line no-console\n console.error(\"[oac] error reloading ontology definition\", e);\n });\n });\n }\n\n #debugLog(message?: any, ...optionalParams: any[]) {\n // eslint-disable-next-line no-console\n console.log(\"[oac]\", message, ...optionalParams);\n }\n\n #infoLog(message?: any, ...optionalParams: any[]) {\n // eslint-disable-next-line no-console\n console.log(\"[oac]\", message, ...optionalParams);\n }\n\n #errorLog(message?: any, ...optionalParams: any[]) {\n // eslint-disable-next-line no-console\n console.error(\"[oac]\", message, ...optionalParams);\n }\n\n #createNewFauxFoundry() {\n return new FauxFoundry(this.#serverUrl, {\n apiName: \"DefaultOntology\",\n description: \"Description\",\n displayName: \"Ontology\",\n rid: this.#defaultOntologyRid,\n });\n }\n\n async #reloadOntologyDefinition() {\n // Start with a fresh faux foundry + data\n const fauxFoundry = (this.#fauxFoundry = this.#createNewFauxFoundry());\n\n const ontology = fauxFoundry.getDefaultOntology();\n\n const ontologyFullMetadata = readJsonFile<Ontologies.OntologyFullMetadata>(\n \".ontology.json\",\n );\n registerOntologyFullMetadata(ontology, ontologyFullMetadata);\n\n try {\n if (this.#hooks?.preSeed) {\n this.#debugLog(\"[oac] calling preSeed hook\");\n }\n\n await this.#hooks?.preSeed?.(ontology);\n } catch (e) {\n this.#errorLog(\n \"[oac] Unhandled error from preSeed hook. Ignoring and continuing.\",\n e,\n );\n }\n\n this.#debugLog(\"[osdk] applying seed data\");\n await applySeed(\n this.#fauxFoundry,\n path.resolve(import.meta.dirname, \"..\", \"..\", \".ontology\", \"seed.ts\"),\n );\n\n this.#infoLog(\"[osdk] Finished reloading ontology & seed data\");\n // TODO Maybe emit something that tells the front end associated with this\n // vite plugin to full reload?\n }\n\n middleware: Connect.NextHandleFunction = async (req, res, next) => {\n return void await routeConnectToMsw(\n this.#serverUrl,\n this.#fauxFoundry.handlers,\n this.mswEmitter,\n req,\n res,\n next,\n );\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,WAAW,QAAQ,YAAY;AAExC,OAAOC,YAAY,MAAM,aAAa;AACtC,OAAOC,IAAI,MAAM,WAAW;AAE5B,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,4BAA4B,QAAQ,mCAAmC;AAChF,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,YAAY,QAAQ,yBAAyB;AAStD,OAAO,MAAMC,2BAA2B,CAAC;EACvC,CAACC,WAAW;EACZ,CAACC,SAAS;EACV,CAACC,kBAAkB;EACVC,UAAU,GAAyC,IAAIV,YAAY,CAE1E,CAAC;EACH,CAACW,KAAK;EAENC,WAAWA,CACTJ,SAAiB,EACjBC,kBAA0B,EAC1BI,UAAmD,EACnDF,KAAa,EACb;IACA,IAAI,CAAC,CAACH,SAAS,GAAGA,SAAS;IAC3B,IAAI,CAAC,CAACC,kBAAkB,GAAGA,kBAAkB;IAC7C,IAAI,CAAC,CAACE,KAAK,GAAGA,KAAK;;IAEnB;IACA,IAAI,CAAC,CAACJ,WAAW,GAAG,IAAI,CAAC,CAACO,oBAAoB,CAAC,CAAC;IAEhDD,UAAU,CAACE,EAAE,CAAC,WAAW,EAAE,MAAM;MAC/B,IAAI,CAAC,CAACC,wBAAwB,CAAC,CAAC,CAACC,KAAK,CAACC,CAAC,IAAI;QAC1C;QACAC,OAAO,CAACC,KAAK,CAAC,2CAA2C,EAAEF,CAAC,CAAC;MAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,CAACG,QAAQC,CAACC,OAAa,EAAE,GAAGC,cAAqB,EAAE;IACjD;IACAL,OAAO,CAACM,GAAG,CAAC,OAAO,EAAEF,OAAO,EAAE,GAAGC,cAAc,CAAC;EAClD;EAEA,CAACE,OAAOC,CAACJ,OAAa,EAAE,GAAGC,cAAqB,EAAE;IAChD;IACAL,OAAO,CAACM,GAAG,CAAC,OAAO,EAAEF,OAAO,EAAE,GAAGC,cAAc,CAAC;EAClD;EAEA,CAACI,QAAQC,CAACN,OAAa,EAAE,GAAGC,cAAqB,EAAE;IACjD;IACAL,OAAO,CAACC,KAAK,CAAC,OAAO,EAAEG,OAAO,EAAE,GAAGC,cAAc,CAAC;EACpD;EAEA,CAACV,oBAAoBgB,CAAA,EAAG;IACtB,OAAO,IAAI/B,WAAW,CAAC,IAAI,CAAC,CAACS,SAAS,EAAE;MACtCuB,OAAO,EAAE,iBAAiB;MAC1BC,WAAW,EAAE,aAAa;MAC1BC,WAAW,EAAE,UAAU;MACvBC,GAAG,EAAE,IAAI,CAAC,CAACzB;IACb,CAAC,CAAC;EACJ;EAEA,MAAM,CAACO,wBAAwBmB,CAAA,EAAG;IAChC;IACA,MAAM5B,WAAW,GAAI,IAAI,CAAC,CAACA,WAAW,GAAG,IAAI,CAAC,CAACO,oBAAoB,CAAC,CAAE;IAEtE,MAAMsB,QAAQ,GAAG7B,WAAW,CAAC8B,kBAAkB,CAAC,CAAC;IAEjD,MAAMC,oBAAoB,GAAGjC,YAAY,CACvC,gBACF,CAAC;IACDF,4BAA4B,CAACiC,QAAQ,EAAEE,oBAAoB,CAAC;IAE5D,IAAI;MACF,IAAI,IAAI,CAAC,CAAC3B,KAAK,EAAE4B,OAAO,EAAE;QACxB,IAAI,CAAC,CAAClB,QAAQ,CAAC,4BAA4B,CAAC;MAC9C;MAEA,MAAM,IAAI,CAAC,CAACV,KAAK,EAAE4B,OAAO,GAAGH,QAAQ,CAAC;IACxC,CAAC,CAAC,OAAOlB,CAAC,EAAE;MACV,IAAI,CAAC,CAACU,QAAQ,CACZ,mEAAmE,EACnEV,CACF,CAAC;IACH;IAEA,IAAI,CAAC,CAACG,QAAQ,CAAC,2BAA2B,CAAC;IAC3C,MAAMnB,SAAS,CACb,IAAI,CAAC,CAACK,WAAW,EACjBN,IAAI,CAACuC,OAAO,CAACC,MAAM,CAACC,IAAI,CAACC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CACtE,CAAC;IAED,IAAI,CAAC,CAACjB,OAAO,CAAC,gDAAgD,CAAC;IAC/D;IACA;EACF;EAEAkB,UAAU,GAA+B,MAAAA,CAAOC,GAAG,EAAEC,GAAG,EAAEC,IAAI,KAAK;IACjE,OAAO,MAAK,MAAM3C,iBAAiB,CACjC,IAAI,CAAC,CAACI,SAAS,EACf,IAAI,CAAC,CAACD,WAAW,CAACyC,QAAQ,EAC1B,IAAI,CAACtC,UAAU,EACfmC,GAAG,EACHC,GAAG,EACHC,IACF,CAAC;EACH,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,69 +0,0 @@
|
|
|
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
|
-
import EventEmitter from "node:events";
|
|
18
|
-
import fs from "node:fs";
|
|
19
|
-
import { generateOntologyAssets } from "./generateOntologyAssets.js";
|
|
20
|
-
export function watchOntologyAsCode({
|
|
21
|
-
watcher,
|
|
22
|
-
logger,
|
|
23
|
-
ontologyDir
|
|
24
|
-
}) {
|
|
25
|
-
const emitter = new EventEmitter();
|
|
26
|
-
logger.info(`Starting OAC file watcher for ${ontologyDir}`, {
|
|
27
|
-
timestamp: true
|
|
28
|
-
});
|
|
29
|
-
if (!fs.existsSync(ontologyDir)) {
|
|
30
|
-
fs.mkdirSync(ontologyDir, {
|
|
31
|
-
recursive: true
|
|
32
|
-
});
|
|
33
|
-
logger.info("Created .ontology directory", {
|
|
34
|
-
timestamp: true
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
watcher.add(ontologyDir);
|
|
38
|
-
|
|
39
|
-
// Add event listeners
|
|
40
|
-
watcher.on("add", handleOacFileChanged).on("change", handleOacFileChanged).on("unlink", handleOacFileChanged);
|
|
41
|
-
|
|
42
|
-
// invoke the handler at startup
|
|
43
|
-
handleOacFileChanged(undefined);
|
|
44
|
-
return emitter;
|
|
45
|
-
function handleOacFileChanged(filePath) {
|
|
46
|
-
if (filePath && !filePath.startsWith(`${ontologyDir}/`)) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (filePath) {
|
|
50
|
-
logger.info(`File ${filePath} changed.`, {
|
|
51
|
-
timestamp: true
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
(async () => {
|
|
55
|
-
await generateOntologyAssets({
|
|
56
|
-
logger,
|
|
57
|
-
ontologyDir
|
|
58
|
-
});
|
|
59
|
-
emitter.emit("generated");
|
|
60
|
-
})().catch(error => {
|
|
61
|
-
// eslint-disable-next-line no-console
|
|
62
|
-
console.error(error);
|
|
63
|
-
logger.error(`Error executing command: ${error.message}`, {
|
|
64
|
-
timestamp: true
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=watchOntologyAsCode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"watchOntologyAsCode.js","names":["EventEmitter","fs","generateOntologyAssets","watchOntologyAsCode","watcher","logger","ontologyDir","emitter","info","timestamp","existsSync","mkdirSync","recursive","add","on","handleOacFileChanged","undefined","filePath","startsWith","emit","catch","error","console","message"],"sources":["watchOntologyAsCode.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\nimport EventEmitter from \"node:events\";\nimport fs from \"node:fs\";\nimport type { FSWatcher, Logger } from \"vite\";\nimport { generateOntologyAssets } from \"./generateOntologyAssets.js\";\n\nexport interface WatchOntologyAsCodeEvents {\n generated: [];\n}\n\nexport function watchOntologyAsCode(\n { watcher, logger, ontologyDir }: {\n watcher: FSWatcher;\n logger: Logger;\n ontologyDir: string;\n },\n): EventEmitter<WatchOntologyAsCodeEvents> {\n const emitter = new EventEmitter<WatchOntologyAsCodeEvents>();\n logger.info(`Starting OAC file watcher for ${ontologyDir}`, {\n timestamp: true,\n });\n\n if (!fs.existsSync(ontologyDir)) {\n fs.mkdirSync(ontologyDir, { recursive: true });\n\n logger.info(\"Created .ontology directory\", { timestamp: true });\n }\n\n watcher.add(ontologyDir);\n\n // Add event listeners\n watcher\n .on(\"add\", handleOacFileChanged)\n .on(\"change\", handleOacFileChanged)\n .on(\"unlink\", handleOacFileChanged);\n\n // invoke the handler at startup\n handleOacFileChanged(undefined);\n\n return emitter;\n\n function handleOacFileChanged(filePath: string | undefined): void {\n if (filePath && !filePath.startsWith(`${ontologyDir}/`)) {\n return;\n }\n\n if (filePath) {\n logger.info(`File ${filePath} changed.`, { timestamp: true });\n }\n\n (async () => {\n await generateOntologyAssets({\n logger,\n ontologyDir,\n });\n emitter.emit(\"generated\");\n })().catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n logger.error(`Error executing command: ${error.message}`, {\n timestamp: true,\n });\n });\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,YAAY,MAAM,aAAa;AACtC,OAAOC,EAAE,MAAM,SAAS;AAExB,SAASC,sBAAsB,QAAQ,6BAA6B;AAMpE,OAAO,SAASC,mBAAmBA,CACjC;EAAEC,OAAO;EAAEC,MAAM;EAAEC;AAInB,CAAC,EACwC;EACzC,MAAMC,OAAO,GAAG,IAAIP,YAAY,CAA4B,CAAC;EAC7DK,MAAM,CAACG,IAAI,CAAC,iCAAiCF,WAAW,EAAE,EAAE;IAC1DG,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,IAAI,CAACR,EAAE,CAACS,UAAU,CAACJ,WAAW,CAAC,EAAE;IAC/BL,EAAE,CAACU,SAAS,CAACL,WAAW,EAAE;MAAEM,SAAS,EAAE;IAAK,CAAC,CAAC;IAE9CP,MAAM,CAACG,IAAI,CAAC,6BAA6B,EAAE;MAAEC,SAAS,EAAE;IAAK,CAAC,CAAC;EACjE;EAEAL,OAAO,CAACS,GAAG,CAACP,WAAW,CAAC;;EAExB;EACAF,OAAO,CACJU,EAAE,CAAC,KAAK,EAAEC,oBAAoB,CAAC,CAC/BD,EAAE,CAAC,QAAQ,EAAEC,oBAAoB,CAAC,CAClCD,EAAE,CAAC,QAAQ,EAAEC,oBAAoB,CAAC;;EAErC;EACAA,oBAAoB,CAACC,SAAS,CAAC;EAE/B,OAAOT,OAAO;EAEd,SAASQ,oBAAoBA,CAACE,QAA4B,EAAQ;IAChE,IAAIA,QAAQ,IAAI,CAACA,QAAQ,CAACC,UAAU,CAAC,GAAGZ,WAAW,GAAG,CAAC,EAAE;MACvD;IACF;IAEA,IAAIW,QAAQ,EAAE;MACZZ,MAAM,CAACG,IAAI,CAAC,QAAQS,QAAQ,WAAW,EAAE;QAAER,SAAS,EAAE;MAAK,CAAC,CAAC;IAC/D;IAEA,CAAC,YAAY;MACX,MAAMP,sBAAsB,CAAC;QAC3BG,MAAM;QACNC;MACF,CAAC,CAAC;MACFC,OAAO,CAACY,IAAI,CAAC,WAAW,CAAC;IAC3B,CAAC,EAAE,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;MACpB;MACAC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACpBhB,MAAM,CAACgB,KAAK,CAAC,4BAA4BA,KAAK,CAACE,OAAO,EAAE,EAAE;QACxDd,SAAS,EAAE;MACb,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,mBAAmB,YAAa;AAE9C,YAAY,iBAAiB,WAC3B,WAAW,YAAY,gBAAgB,uBACvC","names":[],"sources":["../../src/FauxFoundryTypes.ts"],"version":3,"file":"FauxFoundryTypes.d.ts"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { msw } from "@osdk/faux";
|
|
2
|
-
import { FauxFoundry } from "@osdk/faux";
|
|
3
|
-
import EventEmitter from "node:events";
|
|
4
|
-
import type { Connect } from "vite";
|
|
5
|
-
import type { WatchOntologyAsCodeEvents } from "./watchOntologyAsCode.js";
|
|
6
|
-
export interface Hooks {
|
|
7
|
-
preSeed?: (fauxOntology: ReturnType<FauxFoundry["getOntology"]>) => Promise<void>;
|
|
8
|
-
}
|
|
9
|
-
export declare class FoundryMiddlewareController {
|
|
10
|
-
#private;
|
|
11
|
-
readonly mswEmitter: EventEmitter<msw.LifeCycleEventsMap>;
|
|
12
|
-
constructor(serverUrl: string, defaultOntologyRid: string, oacEmitter: EventEmitter<WatchOntologyAsCodeEvents>, hooks?: Hooks);
|
|
13
|
-
middleware: Connect.NextHandleFunction;
|
|
14
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"AAgBA,cAAc,WAAW,YAAa;AACtC,SAAS,mBAAmB,YAAa;AAEzC,OAAO,kBAAkB,aAAc;AAEvC,cAAc,eAAe,MAAO;AAKpC,cAAc,iCAAiC,0BAA2B;AAE1E,iBAAiB,MAAM;CACrB,WACEA,cAAc,WAAW,YAAY,oBAClC;AACN;AAED,OAAO,cAAM,4BAA4B;;CAIvC,SAAS,YAAY,aAAa,IAAI;CAKtC,YACEC,mBACAC,4BACAC,YAAY,aAAa,4BACzBC,QAAQ;CA4EV,YAAY,QAAQ;AAUrB","names":["fauxOntology: ReturnType<FauxFoundry[\"getOntology\"]>","serverUrl: string","defaultOntologyRid: string","oacEmitter: EventEmitter<WatchOntologyAsCodeEvents>","hooks?: Hooks"],"sources":["../../src/FoundryMiddlewareController.ts"],"version":3,"file":"FoundryMiddlewareController.d.ts"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import EventEmitter from "node:events";
|
|
2
|
-
import type { FSWatcher, Logger } from "vite";
|
|
3
|
-
export interface WatchOntologyAsCodeEvents {
|
|
4
|
-
generated: [];
|
|
5
|
-
}
|
|
6
|
-
export declare function watchOntologyAsCode({ watcher, logger, ontologyDir }: {
|
|
7
|
-
watcher: FSWatcher
|
|
8
|
-
logger: Logger
|
|
9
|
-
ontologyDir: string
|
|
10
|
-
}): EventEmitter<WatchOntologyAsCodeEvents>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"AAgBA,OAAO,kBAAkB,aAAc;AAEvC,cAAc,WAAW,cAAc,MAAO;AAG9C,iBAAiB,0BAA0B;CACzC;AACD;AAED,OAAO,iBAAS,oBACd,EAAE,SAAS,QAAQ,aAIlB,EAJiC;CAChC,SAAS;CACT,QAAQ;CACR;AACD,IACA,aAAa","names":[],"sources":["../../src/watchOntologyAsCode.ts"],"version":3,"file":"watchOntologyAsCode.d.ts"}
|