@tomers/openapp-sdk
v0.1.0
Published
TypeScript types and thin client surface for the OpenApp HTTP API (generated from OpenAPI).
Downloads
54
Readme
@openapp/sdk (Node / TypeScript)
Relationship to Rust core
The product invariant is that client behavior (transport, retries, auth,
error mapping) lives in openapp-sdk-core — see
core/ARCHITECTURE.md.
Today, the package ships OpenAPI-aligned TypeScript types (openapi-typescript)
plus a thin AsyncClient that calls openapp-sdk-core-c-bridge via Koffi
(no second retry/auth stack in JS). Transport, retries, auth, and error mapping stay
in openapp-sdk-core per core/ARCHITECTURE.md.
Build the bridge with cargo build -p openapp-sdk-core-c-bridge --release under
packages/sdk/core, or use just sdk docker node / the sdk-node image,
which bundles the shared library. Override the path with OPENAPP_SDK_CORE_BRIDGE_PATH
when needed.
Scope of this folder
HTTP API typings from packages/api-spec/openapi.json plus strict tsc; room
for a thin ergonomic facade once a native binding exists.
Prerequisites
- Default: Docker with Compose v2 —
just sdk node lint|build|test|openapi-check|pre-commitrun insidesdk-node(no host Node required). - Optional: Node.js 20+ and npm if you prefer running scripts on the host.
Commands
From packages/sdk/node:
| Command | Purpose |
|---------|---------|
| npm install | Install dev deps (openapi-typescript, TypeScript). |
| npm run generate | Regenerate src/generated/openapi.ts from the repo spec. |
| npm run check-openapi | Regenerate and fail if openapi.ts differs from git (drift gate). |
| npm run lint | tsc --noEmit. |
| npm run build | Emit dist/. |
| npm test | Build + node --test on compiled tests. |
From repo root: just sdk node … (see ../justfile).
Publishing
Package is private": true until npm registry naming and OIDC are wired.
Release tags will follow docs/VERSIONING.md
(sdk-node-v*).
