@tscircuit/eval 0.0.108 → 0.0.110
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/README.md +3 -3
- package/bun.lock +5 -5
- package/dist/eval/CircuitRunner.d.ts +2 -2
- package/dist/lib/index.d.ts +2 -1
- package/dist/lib/index.js +2 -2
- package/lib/index.ts +3 -2
- package/lib/shared/types.ts +3 -9
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ scope. All imports from `@tsci/*` are automatically handled.
|
|
|
12
12
|
### 1. Using CircuitWebWorker (Web Worker)
|
|
13
13
|
|
|
14
14
|
```tsx
|
|
15
|
-
import { createCircuitWebWorker } from "@tscircuit/eval
|
|
15
|
+
import { createCircuitWebWorker } from "@tscircuit/eval"
|
|
16
16
|
|
|
17
17
|
const circuitWebWorker = createCircuitWebWorker()
|
|
18
18
|
|
|
@@ -36,7 +36,7 @@ const circuitJson = await circuitWebWorker.getCircuitJson()
|
|
|
36
36
|
For simple cases where you don't need web worker isolation, you can use CircuitRunner directly in the main thread:
|
|
37
37
|
|
|
38
38
|
```tsx
|
|
39
|
-
import { CircuitRunner } from "@tscircuit/eval
|
|
39
|
+
import { CircuitRunner } from "@tscircuit/eval"
|
|
40
40
|
|
|
41
41
|
const circuitRunner = new CircuitRunner()
|
|
42
42
|
|
|
@@ -61,7 +61,7 @@ const led = circuitJson.find((el) => el.name === "LED1")
|
|
|
61
61
|
You can also execute code using a virtual filesystem, which is useful when you have multiple files or components:
|
|
62
62
|
|
|
63
63
|
```tsx
|
|
64
|
-
import { createCircuitWebWorker } from "@tscircuit/eval
|
|
64
|
+
import { createCircuitWebWorker } from "@tscircuit/eval"
|
|
65
65
|
|
|
66
66
|
const circuitWebWorker = createCircuitWebWorker()
|
|
67
67
|
|
package/bun.lock
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"devDependencies": {
|
|
6
6
|
"@babel/standalone": "^7.26.2",
|
|
7
7
|
"@biomejs/biome": "^1.9.4",
|
|
8
|
-
"@tscircuit/core": "^0.0.
|
|
8
|
+
"@tscircuit/core": "^0.0.340",
|
|
9
9
|
"@tscircuit/math-utils": "^0.0.10",
|
|
10
10
|
"@types/babel__standalone": "^7.1.9",
|
|
11
11
|
"@types/bun": "latest",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"tsup": "^8.3.5",
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@tscircuit/core": "^0.0.
|
|
21
|
-
"circuit-json": "
|
|
20
|
+
"@tscircuit/core": "^0.0.340",
|
|
21
|
+
"circuit-json": "*",
|
|
22
22
|
"jscad-fiber": "*",
|
|
23
23
|
"typescript": "^5.0.0",
|
|
24
24
|
},
|
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
|
|
172
172
|
"@tscircuit/capacity-autorouter": ["@tscircuit/capacity-autorouter@0.0.13", "", { "peerDependencies": { "typescript": "^5.7.3" } }, "sha512-lTdRP4GNb6HXk5HmSBs6qtsVPAwnsPeSlvsq/HdrtGbc3+/c3INWyfDcU8P0j7kw4lUVQJ9XfWUcDflizK88jQ=="],
|
|
173
173
|
|
|
174
|
-
"@tscircuit/core": ["@tscircuit/core@0.0.
|
|
174
|
+
"@tscircuit/core": ["@tscircuit/core@0.0.340", "", { "dependencies": { "@lume/kiwi": "^0.4.3", "@tscircuit/capacity-autorouter": "^0.0.13", "@tscircuit/infgrid-ijump-astar": "^0.0.33", "@tscircuit/math-utils": "^0.0.9", "@tscircuit/props": "^0.0.159", "@tscircuit/schematic-autolayout": "^0.0.6", "@tscircuit/soup-util": "^0.0.41", "circuit-json": "^0.0.151", "circuit-json-to-connectivity-map": "^0.0.17", "format-si-unit": "^0.0.3", "nanoid": "^5.0.7", "performance-now": "^2.1.0", "react-reconciler": "^0.31.0", "react-reconciler-18": "npm:react-reconciler@0.29.2", "schematic-symbols": "^0.0.121", "transformation-matrix": "^2.16.1", "zod": "^3.23.8" }, "peerDependencies": { "@tscircuit/footprinter": "*", "typescript": "^5.0.0" } }, "sha512-9FLK4Lj3VoOXCSaEuYOJpYHSsvD5/0hNEnW8to/2n9BiR/3Zxgrkv+2LJ1Ijg7JeaiMWq8gn4vKS7YdU8S78Wg=="],
|
|
175
175
|
|
|
176
176
|
"@tscircuit/footprinter": ["@tscircuit/footprinter@0.0.135", "", { "dependencies": { "@tscircuit/mm": "^0.0.8", "zod": "^3.23.8" }, "peerDependencies": { "circuit-json": "*" } }, "sha512-+8MasMGTNQL/NINnlWk2v6zw/NDerfdIBG3uqhrTr0r7VOHh4lK1ymTkQR7IeoypkxTIHYGB9wHbOt39XAF3mg=="],
|
|
177
177
|
|
|
@@ -253,7 +253,7 @@
|
|
|
253
253
|
|
|
254
254
|
"chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
|
|
255
255
|
|
|
256
|
-
"circuit-json": ["circuit-json@0.0.
|
|
256
|
+
"circuit-json": ["circuit-json@0.0.151", "", { "dependencies": { "nanoid": "^5.0.7", "zod": "^3.23.6" } }, "sha512-N6+saL1EwK8OfiPhrjS+oSjdyiZrM/avBZh8wyd4GK6tFNa07CtZduiFrX7oS3vQgKTl1uCk7bKbh/TR9+kHUA=="],
|
|
257
257
|
|
|
258
258
|
"circuit-json-to-connectivity-map": ["circuit-json-to-connectivity-map@0.0.17", "", { "dependencies": { "@tscircuit/math-utils": "^0.0.4" }, "peerDependencies": { "typescript": "^5.0.0" } }, "sha512-0IlFTwGWFXzlrYSvXQocXi6pYriF/JKnfihfvnVZ4p60kMC+1QvtJdivW9C4I0VNXEe922xak70v3YZNJrjI1g=="],
|
|
259
259
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnyCircuitElement } from 'circuit-json';
|
|
2
|
-
import { RootCircuit } from '@tscircuit/core';
|
|
2
|
+
import { RootCircuitEventName, RootCircuit } from '@tscircuit/core';
|
|
3
3
|
|
|
4
4
|
interface CircuitRunnerConfiguration {
|
|
5
5
|
snippetsApiBaseUrl: string;
|
|
@@ -28,7 +28,7 @@ interface CircuitRunnerApi {
|
|
|
28
28
|
renderUntilSettled: () => Promise<void>;
|
|
29
29
|
getCircuitJson: () => Promise<AnyCircuitElement[]>;
|
|
30
30
|
setSnippetsApiBaseUrl: (baseUrl: string) => Promise<void>;
|
|
31
|
-
on: (event:
|
|
31
|
+
on: (event: RootCircuitEventName, callback: (...args: any[]) => void) => void;
|
|
32
32
|
clearEventListeners: () => void;
|
|
33
33
|
kill: () => Promise<void>;
|
|
34
34
|
}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AnyCircuitElement } from 'circuit-json';
|
|
2
|
+
import { RootCircuitEventName } from '@tscircuit/core';
|
|
2
3
|
|
|
3
4
|
declare const getImportsFromCode: (code: string) => string[];
|
|
4
5
|
|
|
@@ -22,7 +23,7 @@ type CircuitWebWorker = {
|
|
|
22
23
|
}) => Promise<void>;
|
|
23
24
|
renderUntilSettled: () => Promise<void>;
|
|
24
25
|
getCircuitJson: () => Promise<AnyCircuitElement[]>;
|
|
25
|
-
on: (event:
|
|
26
|
+
on: (event: RootCircuitEventName, callback: (...args: any[]) => void) => void;
|
|
26
27
|
clearEventListeners: () => void;
|
|
27
28
|
kill: () => Promise<void>;
|
|
28
29
|
};
|
package/dist/lib/index.js
CHANGED
|
@@ -22,7 +22,7 @@ var createCircuitWebWorker = async (configuration) => {
|
|
|
22
22
|
}
|
|
23
23
|
let workerBlobUrl = configuration.webWorkerBlobUrl ?? configuration.webWorkerUrl;
|
|
24
24
|
if (!workerBlobUrl) {
|
|
25
|
-
const cdnUrl = "https://cdn.jsdelivr.net/npm/@tscircuit/eval
|
|
25
|
+
const cdnUrl = "https://cdn.jsdelivr.net/npm/@tscircuit/eval/dist/webworker/index.js";
|
|
26
26
|
const workerBlob = await fetch(cdnUrl).then((res) => res.blob());
|
|
27
27
|
workerBlobUrl = URL.createObjectURL(workerBlob);
|
|
28
28
|
}
|
|
@@ -66,4 +66,4 @@ export {
|
|
|
66
66
|
createCircuitWebWorker,
|
|
67
67
|
getImportsFromCode
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vbGliL2luZGV4LnRzIiwgIi4uLy4uL2xpYi91dGlscy9nZXQtaW1wb3J0cy1mcm9tLWNvZGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB0eXBlIHsgQW55Q2lyY3VpdEVsZW1lbnQgfSBmcm9tIFwiY2lyY3VpdC1qc29uXCJcbmltcG9ydCAqIGFzIENvbWxpbmsgZnJvbSBcImNvbWxpbmtcIlxuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHMvaW5kZXhcIlxuaW1wb3J0IHR5cGUge1xuICBJbnRlcm5hbFdlYldvcmtlckFwaSxcbiAgV2ViV29ya2VyQ29uZmlndXJhdGlvbixcbiAgQ2lyY3VpdFdlYldvcmtlcixcbn0gZnJvbSBcIi4vc2hhcmVkL3R5cGVzXCJcbmltcG9ydCB0eXBlIHsgUm9vdENpcmN1aXRFdmVudE5hbWUgfSBmcm9tIFwiQHRzY2lyY3VpdC9jb3JlXCJcblxuZXhwb3J0IHR5cGUgeyBDaXJjdWl0V2ViV29ya2VyLCBXZWJXb3JrZXJDb25maWd1cmF0aW9uIH1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNpcmN1aXRXZWJXb3JrZXIgPSBhc3luYyAoXG4gIGNvbmZpZ3VyYXRpb246IFBhcnRpYWw8V2ViV29ya2VyQ29uZmlndXJhdGlvbj4sXG4pOiBQcm9taXNlPENpcmN1aXRXZWJXb3JrZXI+ID0+IHtcbiAgaWYgKGNvbmZpZ3VyYXRpb24udmVyYm9zZSkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgXCJbV29ya2VyXSBDcmVhdGluZyBjaXJjdWl0IHdlYiB3b3JrZXIgd2l0aCBjb25maWc6XCIsXG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgIClcbiAgfVxuXG4gIGxldCB3b3JrZXJCbG9iVXJsID1cbiAgICBjb25maWd1cmF0aW9uLndlYldvcmtlckJsb2JVcmwgPz8gY29uZmlndXJhdGlvbi53ZWJXb3JrZXJVcmxcblxuICBpZiAoIXdvcmtlckJsb2JVcmwpIHtcbiAgICBjb25zdCBjZG5VcmwgPVxuICAgICAgXCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL0B0c2NpcmN1aXQvZXZhbC9kaXN0L3dlYndvcmtlci9pbmRleC5qc1wiXG5cbiAgICBjb25zdCB3b3JrZXJCbG9iID0gYXdhaXQgZmV0Y2goY2RuVXJsKS50aGVuKChyZXMpID0+IHJlcy5ibG9iKCkpXG4gICAgd29ya2VyQmxvYlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwod29ya2VyQmxvYilcbiAgfVxuXG4gIGNvbnN0IHJhd1dvcmtlciA9IG5ldyBXb3JrZXIod29ya2VyQmxvYlVybCwgeyB0eXBlOiBcIm1vZHVsZVwiIH0pXG4gIGNvbnN0IGNvbWxpbmtXb3JrZXIgPSBDb21saW5rLndyYXA8SW50ZXJuYWxXZWJXb3JrZXJBcGk+KHJhd1dvcmtlcilcblxuICBpZiAoY29uZmlndXJhdGlvbi5zbmlwcGV0c0FwaUJhc2VVcmwpIHtcbiAgICBhd2FpdCBjb21saW5rV29ya2VyLnNldFNuaXBwZXRzQXBpQmFzZVVybChjb25maWd1cmF0aW9uLnNuaXBwZXRzQXBpQmFzZVVybClcbiAgfVxuXG4gIGxldCBpc1Rlcm1pbmF0ZWQgPSBmYWxzZVxuXG4gIC8vIENyZWF0ZSBhIHdyYXBwZXIgdGhhdCBoYW5kbGVzIGV2ZW50cyBkaXJlY3RseSB0aHJvdWdoIGNpcmN1aXQgaW5zdGFuY2VcbiAgY29uc3Qgd3JhcHBlcjogQ2lyY3VpdFdlYldvcmtlciA9IHtcbiAgICBjbGVhckV2ZW50TGlzdGVuZXJzOiBjb21saW5rV29ya2VyLmNsZWFyRXZlbnRMaXN0ZW5lcnMuYmluZChjb21saW5rV29ya2VyKSxcbiAgICBleGVjdXRlOiBhc3luYyAoLi4uYXJncykgPT4ge1xuICAgICAgaWYgKGlzVGVybWluYXRlZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDaXJjdWl0V2ViV29ya2VyIHdhcyB0ZXJtaW5hdGVkLCBjYW4ndCBleGVjdXRlXCIpXG4gICAgICB9XG4gICAgICByZXR1cm4gY29tbGlua1dvcmtlci5leGVjdXRlLmJpbmQoY29tbGlua1dvcmtlcikoLi4uYXJncylcbiAgICB9LFxuICAgIGV4ZWN1dGVXaXRoRnNNYXA6IGFzeW5jICguLi5hcmdzKSA9PiB7XG4gICAgICBpZiAoaXNUZXJtaW5hdGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIkNpcmN1aXRXZWJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQsIGNhbid0IGV4ZWN1dGVXaXRoRnNNYXBcIixcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbWxpbmtXb3JrZXIuZXhlY3V0ZVdpdGhGc01hcC5iaW5kKGNvbWxpbmtXb3JrZXIpKC4uLmFyZ3MpXG4gICAgfSxcbiAgICByZW5kZXJVbnRpbFNldHRsZWQ6IGNvbWxpbmtXb3JrZXIucmVuZGVyVW50aWxTZXR0bGVkLmJpbmQoY29tbGlua1dvcmtlciksXG4gICAgZ2V0Q2lyY3VpdEpzb246IGNvbWxpbmtXb3JrZXIuZ2V0Q2lyY3VpdEpzb24uYmluZChjb21saW5rV29ya2VyKSxcbiAgICBvbjogKGV2ZW50OiBzdHJpbmcsIGNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpID0+IHtcbiAgICAgIGNvbnN0IHByb3hpZWRDYWxsYmFjayA9IENvbWxpbmsucHJveHkoY2FsbGJhY2spXG4gICAgICBjb21saW5rV29ya2VyLm9uKGV2ZW50IGFzIFJvb3RDaXJjdWl0RXZlbnROYW1lLCBwcm94aWVkQ2FsbGJhY2spXG4gICAgfSxcbiAgICBraWxsOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb21saW5rV29ya2VyW0NvbWxpbmsucmVsZWFzZVByb3h5XSgpXG4gICAgICByYXdXb3JrZXIudGVybWluYXRlKClcbiAgICAgIGlzVGVybWluYXRlZCA9IHRydWVcbiAgICB9LFxuICB9XG5cbiAgcmV0dXJuIHdyYXBwZXJcbn1cbiIsICJleHBvcnQgY29uc3QgZ2V0SW1wb3J0c0Zyb21Db2RlID0gKGNvZGU6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbiAgLy8gTWF0Y2ggYmFzaWMgaW1wb3J0IHBhdHRlcm5zIGluY2x1ZGluZyBjb21iaW5lZCBkZWZhdWx0IGFuZCBuYW1lc3BhY2UgaW1wb3J0c1xuICBjb25zdCBpbXBvcnRSZWdleCA9XG4gICAgL15cXHMqaW1wb3J0XFxzKyg/Oig/OltcXHdcXHNdKyxcXHMqKT8oPzpcXCpcXHMrYXNcXHMrW1xcd1xcc10rfFxce1tcXHNcXHcsXStcXH18XFx3KylcXHMrZnJvbVxccyspP1snXCJdKC4rPylbJ1wiXS9nbVxuICBjb25zdCBpbXBvcnRzOiBzdHJpbmdbXSA9IFtdXG4gIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbFxuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9Bc3NpZ25JbkV4cHJlc3Npb25zOiA8ZXhwbGFuYXRpb24+XG4gIHdoaWxlICgobWF0Y2ggPSBpbXBvcnRSZWdleC5leGVjKGNvZGUpKSAhPT0gbnVsbCkge1xuICAgIGltcG9ydHMucHVzaChtYXRjaFsxXSlcbiAgfVxuXG4gIHJldHVybiBpbXBvcnRzXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsWUFBWSxhQUFhOzs7QUNEbEIsSUFBTSxxQkFBcUIsQ0FBQyxTQUEyQjtBQUU1RCxRQUFNLGNBQ0o7QUFDRixRQUFNLFVBQW9CLENBQUM7QUFDM0IsTUFBSTtBQUdKLFVBQVEsUUFBUSxZQUFZLEtBQUssSUFBSSxPQUFPLE1BQU07QUFDaEQsWUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQUEsRUFDdkI7QUFFQSxTQUFPO0FBQ1Q7OztBRERPLElBQU0seUJBQXlCLE9BQ3BDLGtCQUM4QjtBQUM5QixNQUFJLGNBQWMsU0FBUztBQUN6QixZQUFRO0FBQUEsTUFDTjtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUVBLE1BQUksZ0JBQ0YsY0FBYyxvQkFBb0IsY0FBYztBQUVsRCxNQUFJLENBQUMsZUFBZTtBQUNsQixVQUFNLFNBQ0o7QUFFRixVQUFNLGFBQWEsTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztBQUMvRCxvQkFBZ0IsSUFBSSxnQkFBZ0IsVUFBVTtBQUFBLEVBQ2hEO0FBRUEsUUFBTSxZQUFZLElBQUksT0FBTyxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUQsUUFBTSxnQkFBd0IsYUFBMkIsU0FBUztBQUVsRSxNQUFJLGNBQWMsb0JBQW9CO0FBQ3BDLFVBQU0sY0FBYyxzQkFBc0IsY0FBYyxrQkFBa0I7QUFBQSxFQUM1RTtBQUVBLE1BQUksZUFBZTtBQUduQixRQUFNLFVBQTRCO0FBQUEsSUFDaEMscUJBQXFCLGNBQWMsb0JBQW9CLEtBQUssYUFBYTtBQUFBLElBQ3pFLFNBQVMsVUFBVSxTQUFTO0FBQzFCLFVBQUksY0FBYztBQUNoQixjQUFNLElBQUksTUFBTSxnREFBZ0Q7QUFBQSxNQUNsRTtBQUNBLGFBQU8sY0FBYyxRQUFRLEtBQUssYUFBYSxFQUFFLEdBQUcsSUFBSTtBQUFBLElBQzFEO0FBQUEsSUFDQSxrQkFBa0IsVUFBVSxTQUFTO0FBQ25DLFVBQUksY0FBYztBQUNoQixjQUFNLElBQUk7QUFBQSxVQUNSO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFDQSxhQUFPLGNBQWMsaUJBQWlCLEtBQUssYUFBYSxFQUFFLEdBQUcsSUFBSTtBQUFBLElBQ25FO0FBQUEsSUFDQSxvQkFBb0IsY0FBYyxtQkFBbUIsS0FBSyxhQUFhO0FBQUEsSUFDdkUsZ0JBQWdCLGNBQWMsZUFBZSxLQUFLLGFBQWE7QUFBQSxJQUMvRCxJQUFJLENBQUMsT0FBZSxhQUF1QztBQUN6RCxZQUFNLGtCQUEwQixjQUFNLFFBQVE7QUFDOUMsb0JBQWMsR0FBRyxPQUErQixlQUFlO0FBQUEsSUFDakU7QUFBQSxJQUNBLE1BQU0sWUFBWTtBQUNoQixvQkFBc0Isb0JBQVksRUFBRTtBQUNwQyxnQkFBVSxVQUFVO0FBQ3BCLHFCQUFlO0FBQUEsSUFDakI7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/lib/index.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
WebWorkerConfiguration,
|
|
7
7
|
CircuitWebWorker,
|
|
8
8
|
} from "./shared/types"
|
|
9
|
+
import type { RootCircuitEventName } from "@tscircuit/core"
|
|
9
10
|
|
|
10
11
|
export type { CircuitWebWorker, WebWorkerConfiguration }
|
|
11
12
|
|
|
@@ -24,7 +25,7 @@ export const createCircuitWebWorker = async (
|
|
|
24
25
|
|
|
25
26
|
if (!workerBlobUrl) {
|
|
26
27
|
const cdnUrl =
|
|
27
|
-
"https://cdn.jsdelivr.net/npm/@tscircuit/eval
|
|
28
|
+
"https://cdn.jsdelivr.net/npm/@tscircuit/eval/dist/webworker/index.js"
|
|
28
29
|
|
|
29
30
|
const workerBlob = await fetch(cdnUrl).then((res) => res.blob())
|
|
30
31
|
workerBlobUrl = URL.createObjectURL(workerBlob)
|
|
@@ -60,7 +61,7 @@ export const createCircuitWebWorker = async (
|
|
|
60
61
|
getCircuitJson: comlinkWorker.getCircuitJson.bind(comlinkWorker),
|
|
61
62
|
on: (event: string, callback: (...args: any[]) => void) => {
|
|
62
63
|
const proxiedCallback = Comlink.proxy(callback)
|
|
63
|
-
comlinkWorker.on(event, proxiedCallback)
|
|
64
|
+
comlinkWorker.on(event as RootCircuitEventName, proxiedCallback)
|
|
64
65
|
},
|
|
65
66
|
kill: async () => {
|
|
66
67
|
comlinkWorker[Comlink.releaseProxy]()
|
package/lib/shared/types.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AnyCircuitElement } from "circuit-json"
|
|
2
|
+
import type { RootCircuitEventName } from "@tscircuit/core"
|
|
2
3
|
|
|
3
4
|
export interface CircuitRunnerConfiguration {
|
|
4
5
|
snippetsApiBaseUrl: string
|
|
@@ -32,7 +33,7 @@ export interface CircuitRunnerApi {
|
|
|
32
33
|
renderUntilSettled: () => Promise<void>
|
|
33
34
|
getCircuitJson: () => Promise<AnyCircuitElement[]>
|
|
34
35
|
setSnippetsApiBaseUrl: (baseUrl: string) => Promise<void>
|
|
35
|
-
on: (event:
|
|
36
|
+
on: (event: RootCircuitEventName, callback: (...args: any[]) => void) => void
|
|
36
37
|
clearEventListeners: () => void
|
|
37
38
|
kill: () => Promise<void>
|
|
38
39
|
}
|
|
@@ -50,14 +51,7 @@ export type CircuitWebWorker = {
|
|
|
50
51
|
}) => Promise<void>
|
|
51
52
|
renderUntilSettled: () => Promise<void>
|
|
52
53
|
getCircuitJson: () => Promise<AnyCircuitElement[]>
|
|
53
|
-
on: (
|
|
54
|
-
event:
|
|
55
|
-
| "renderable:renderLifecycle:anyEvent"
|
|
56
|
-
| `asyncEffect:start`
|
|
57
|
-
| `asyncEffect:end`
|
|
58
|
-
| `renderable:renderLifecycle:${string}`,
|
|
59
|
-
callback: (...args: any[]) => void,
|
|
60
|
-
) => void
|
|
54
|
+
on: (event: RootCircuitEventName, callback: (...args: any[]) => void) => void
|
|
61
55
|
clearEventListeners: () => void
|
|
62
56
|
kill: () => Promise<void>
|
|
63
57
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/eval",
|
|
3
3
|
"main": "dist/lib/index.js",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.110",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "bun run build:lib && bun run build:webworker && bun run build:blob-url && bun run build:eval",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@babel/standalone": "^7.26.2",
|
|
36
36
|
"@biomejs/biome": "^1.9.4",
|
|
37
|
-
"@tscircuit/core": "^0.0.
|
|
37
|
+
"@tscircuit/core": "^0.0.340",
|
|
38
38
|
"@tscircuit/math-utils": "^0.0.10",
|
|
39
39
|
"@types/babel__standalone": "^7.1.9",
|
|
40
40
|
"@types/bun": "latest",
|