@adhd/apigen-engine-runtime
v0.2.2
Published
The apigen **dispatch runtime** — the single canonical call path every plugin and every generated server uses to turn an inbound request into a function call. Pure TypeScript, **platform: shared**.
Downloads
1,679
Readme
@adhd/apigen-engine-runtime
The apigen dispatch runtime — the single canonical call path every plugin and every generated server uses to turn an inbound request into a function call. Pure TypeScript, platform: shared.
Part of apigen. For end-to-end usage see ../cli.
Public API
import { dispatch, buildFnTable, describeParams, needsEnvelopeField, dataParamNames, createLogger, defineMiddleware, createApiPackage, EventBus, wireObservers, buildContext, invokeBatch } from '@adhd/apigen-engine-runtime';
import type { Logger, LogFormat, CreateLoggerOptions, ParamInfo, AnyFn, BatchOptions, BatchItemResult } from '@adhd/apigen-engine-runtime';dispatch(fns, ctx, schema, fnName, envelope, data)— the one dispatch path. No plugin inlines this; all import it here.buildFnTable(mod)— normalize an imported module into a callable table, recursively unwrappingdefault/ CommonJSmodule.exportslayers and keying functions by their.nameso default- and CJS-wrapped exports resolve (closes ledger finding F28).describeParams(schema)→ParamInfo[]— extract the parameter list for route/tool logging and CLI flag generation.needsEnvelopeField/dataParamNames— envelope + param helpers (single source).createLogger({ level, format, destination })— pino-based logger; defaults to stderr so MCP stdio stdout stays protocol-clean.format: 'json' | 'pretty'.invokeBatch(invoke, operationId, items, opts, batchOpts)— fan out N calls through the realinvokepath (viacreateInvoker's composed Layer stack) with controlled concurrency, error handling, and per-item timeouts. ReturnsPromise<BatchItemResult[]>. See@adhd/apigen-plugin-batchfor mount wiring.defineMiddleware/createApiPackage/EventBus/wireObservers/buildContext— middleware + observer wiring.
Request envelope
Inbound payloads are wrapped: { "data": { ...params }, ...envelope }. dispatch validates
the envelope fields a function requires (e.g. a session added by middleware) and passes
data to the function.
Develop
npx nx build apigen-engine-runtime
npx nx test apigen-engine-runtime