@cascode/cascode-js
v0.7.3
Published
Synchronous Node binding for libcascode
Readme
@cascode/cascode-js
Synchronous Node binding for the Cascode native C ABI (libcascode).
This package exposes a thin N-API wrapper around the cascode_* exports from
Cascode.Native and intentionally does not add threading or async behavior.
Install
npm install @cascode/cascode-jsRuntime Requirements
@cascode/cascode-js needs two native layers:
- Node addon (
cascode_native_addon.node) - Cascode shared library (
libcascode.*)
At runtime the loader resolves in this order:
- Platform package (installed as an optional dependency):
@cascode/cascode-js-darwin-arm64@cascode/cascode-js-darwin-x64@cascode/cascode-js-linux-x64@cascode/cascode-js-win32-x64
- Local build (
editors/node/build/Release) - Local native runtime discovery:
editors/node/native/<rid>/<repo>/build/native/<rid>/
CASCODE_NATIVE_LIB always overrides discovered shared-library paths.
RID examples: win-x64, linux-x64, darwin-x64, darwin-arm64.
API
The package exports low-level session management and convenience wrappers for each native method.
const cascode = require("@cascode/cascode-js");
const session = cascode.createSession();
const doc = cascode.open(cascode.native, session, { path: "my_circuit.cas" });
const schematic = cascode.render(cascode.native, session, { documentId: doc.documentId });
cascode.destroySession(session);Session lifecycle: createSession, destroySession, call, lastErrorJson, apiVersion, schemaVersion.
Document operations: open, updateText, close.
Schematic: render, applyOps.
Analysis: erc, emit, verify.
Jobs (long-running): jobStart, jobPoll, jobCancel.
stdlibPath provides the absolute path to the bundled standard library.
Build
cd editors/node
npm ci --omit=optional
npm run buildTest
Publish a native library first, then run tests:
dotnet publish tools/native/Cascode.Native/Cascode.Native.csproj \
--configuration Release \
-r linux-x64 \
-p:PublishAot=true \
-o build/native/linux-x64
export CASCODE_NATIVE_LIB="$PWD/build/native/linux-x64/Cascode.Native.so"
cd editors/node
npm testWindows equivalent:
dotnet publish tools/native/Cascode.Native/Cascode.Native.csproj `
--configuration Release `
-r win-x64 `
-p:PublishAot=true `
-o build/native/win-x64
$env:CASCODE_NATIVE_LIB="$PWD\build\native\win-x64\Cascode.Native.dll"
cd editors\node
npm test