ResolverRegistry
Defined in: packages/engine/src/resolvers/ResolverRegistry.ts:72
Registry of async resolvers, keyed by namespace.
Plugins/packages register resolvers alongside their parselets and opcode handlers. The engine calls preflightAll() before VM execution to short-circuit async expressions.
Lifecycle:
- register(), when a package is loaded
- unregister(), when a package is unloaded (clears cache entries)
- clear(), on document switch (clears all resolvers)
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new ResolverRegistry(): ResolverRegistry;Returns
Section titled “Returns”ResolverRegistry
Accessors
Section titled “Accessors”Get Signature
Section titled “Get Signature”get size(): number;Defined in: packages/engine/src/resolvers/ResolverRegistry.ts:140
Number of registered resolvers.
Returns
Section titled “Returns”number
Methods
Section titled “Methods”clear()
Section titled “clear()”clear(): void;Defined in: packages/engine/src/resolvers/ResolverRegistry.ts:155
Clear all resolvers (document switch, engine reset). Calls destroy() on each resolver and clears the map.
Returns
Section titled “Returns”void
get(namespace): | IAsyncResolver | undefined;Defined in: packages/engine/src/resolvers/ResolverRegistry.ts:135
Get a resolver by namespace. Returns undefined if no resolver is registered for that namespace.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
namespace | string |
Returns
Section titled “Returns”| IAsyncResolver
| undefined
has(namespace): boolean;Defined in: packages/engine/src/resolvers/ResolverRegistry.ts:147
Check if a resolver is registered for the given namespace.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
namespace | string |
Returns
Section titled “Returns”boolean
preflightAll()
Section titled “preflightAll()”preflightAll( tokens, bytecode, packageId, signal, queryClient): | AsyncCheckResult | null;Defined in: packages/engine/src/resolvers/ResolverRegistry.ts:122
Run all registered resolvers’ preflight checks against compiled bytecode.
Returns the first AsyncCheckResult found, or null if all data is ready. Short-circuits on first pending, subsequent pending ops will be discovered on re-evaluation when the first resolves.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
tokens | Token[] |
bytecode | BytecodeProgram |
packageId | string |
signal | AbortSignal |
queryClient | QueryClient |
Returns
Section titled “Returns”| AsyncCheckResult
| null
register()
Section titled “register()”register(resolver): void;Defined in: packages/engine/src/resolvers/ResolverRegistry.ts:84
Register an async resolver.
Each resolver must have a unique namespace. If a resolver with the
same namespace is already registered, the old one is destroyed and
replaced (with a console warning). Packages that need multiple async
operations should use asyncResolvers: [...] with distinct namespaces
(e.g., "weather:current", "weather:forecast").
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
resolver | IAsyncResolver |
Returns
Section titled “Returns”void
unregister()
Section titled “unregister()”unregister(namespace, queryClient?): void;Defined in: packages/engine/src/resolvers/ResolverRegistry.ts:102
Unregister a resolver by namespace. Calls destroy() and clears all cache entries with that namespace prefix.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
namespace | string |
queryClient? | QueryClient |
Returns
Section titled “Returns”void