@noego/wood
v0.1.0
Published
Declarative Electron desktop apps using the noego ecosystem.
Readme
@noego/wood
Declarative Electron desktop apps using the noego ecosystem.
@noego/wood provides config parsing, operation/view parsing, IPC routing, runtime wiring, code generation, and CLI utilities for building Electron applications with Svelte-based renderer flows.
Note: temporary README test note added from the demo-assistant workspace.
Install
npm install @noego/woodPeer dependencies used by the package include:
electron >=28svelte ^5playwright ^1.40.0(optional)better-sqlite3 ^11sqlstack@noego/proper
Package Entry Points
The package publishes both ESM and CommonJS builds through exports.
Primary entry points:
@noego/wood@noego/wood/electron@noego/wood/main@noego/wood/client@noego/wood/ipc@noego/wood/navigation@noego/wood/stick@noego/wood/testing@noego/wood/loader
Svelte component exports:
@noego/wood/recursive-render@noego/wood/navigation-shell@noego/wood/components
Core API
The root package exports the main framework surface, including:
parseConfigparseOperationsandparseOperationsFileparseViewsandparseViewsFileWoodRouterSchemaValidatorMiddlewareResolverControllerResolverLoaderRunnerBackendBridgeWindowManagerruntime- code generators such as
generatePreload,generateRuntime,generateRendererApp, andgenerateTypes
Example:
import { parseOperationsFile, parseViewsFile, generateRuntime } from '@noego/wood';
const operations = parseOperationsFile('operations/chat.yaml');
const views = parseViewsFile('views/app.yaml');
const source = generateRuntime({
operations,
views,
});Controller lifecycle
Controllers may optionally implement dispose(): void | Promise<void>.
WoodRouter resolves a controller for each dispatch and calls dispose() in a
finally block after the action completes or throws. Use dispose() to
unsubscribe from streams, unregister listeners, or release other controller-owned
resources.
CLI
This package includes two executables:
woodstick
wood currently supports:
wood dev
wood buildBoth commands generate project artifacts and pass remaining options through to electron-vite.
Development
Repository scripts:
npm run build
npm run typecheck
npm testPublishing runs the same checks through prepublishOnly.
Design Notes
High-level architecture and config format notes live in DESIGN.md.
