core
Namespaces
| Namespace | Description |
|---|---|
| StandardSchemaV1 | - |
Classes
ControlledPromise
Defined in: packages/core/src/controlledPromise.ts:5
Lets lifecycle code outside the executor settle a promise exactly once.
Type Parameters
| Type Parameter |
|---|
T |
Constructors
Constructor
new ControlledPromise<T>(): ControlledPromise<T>;
Defined in: packages/core/src/controlledPromise.ts:11
Returns
Properties
| Property | Modifier | Type | Default value | Defined in |
|---|---|---|---|---|
promise |
readonly |
Promise<T> |
undefined |
packages/core/src/controlledPromise.ts:6 |
settled |
public |
boolean |
false |
packages/core/src/controlledPromise.ts:7 |
resolve |
public |
Resolve<T> |
undefined |
packages/core/src/controlledPromise.ts:8 |
reject |
public |
Reject |
undefined |
packages/core/src/controlledPromise.ts:9 |
PayloadValidationError
Defined in: packages/core/src/errors.ts:8
Normalizes payload failures across supported validator styles.
Extends
Error
Constructors
Constructor
new PayloadValidationError(issues, options?): PayloadValidationError;
Defined in: packages/core/src/errors.ts:10
Parameters
| Parameter | Type |
|---|---|
issues |
readonly ValidationIssue[] |
options? |
{ cause?: unknown; } |
options.cause? |
unknown |
Returns
Overrides
Error.constructor
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
|---|---|---|---|---|---|
issues |
readonly |
readonly ValidationIssue[] |
- | - | packages/core/src/errors.ts:9 |
stackTraceLimit |
static |
number |
The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)). The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. |
Error.stackTraceLimit |
node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:67 |
cause? |
public |
unknown |
The cause of the error. | Error.cause |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts:24 |
name |
public |
string |
- | Error.name |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1074 |
message |
public |
string |
- | Error.message |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1075 |
stack? |
public |
string |
- | Error.stack |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1076 |
Methods
captureStackTrace()
Call Signature
static captureStackTrace(targetObject, constructorOpt?): void;
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:51
Creates a .stack property on targetObject, which when accessed returns
a string representing the location in the code at which
Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
The first line of the trace will be prefixed with
${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
above constructorOpt, including constructorOpt, will be omitted from the
generated stack trace.
The constructorOpt argument is useful for hiding implementation
details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Parameters
| Parameter | Type |
|---|---|
targetObject |
object |
constructorOpt? |
Function |
Returns
void
Inherited from
Error.captureStackTrace
Call Signature
static captureStackTrace(targetObject, constructorOpt?): void;
Defined in: node_modules/.bun/bun-types@1.4.0/node_modules/bun-types/globals.d.ts:1062
Create .stack property on a target object
Parameters
| Parameter | Type |
|---|---|
targetObject |
object |
constructorOpt? |
Function |
Returns
void
Inherited from
Error.captureStackTrace
prepareStackTrace()
static prepareStackTrace(err, stackTraces): any;
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:55
Parameters
| Parameter | Type |
|---|---|
err |
Error |
stackTraces |
CallSite[] |
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Error.prepareStackTrace
isError()
Call Signature
static isError(error): error is Error;
Defined in: node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.error.d.ts:21
Indicates whether the argument provided is a built-in Error instance or not.
Parameters
| Parameter | Type |
|---|---|
error |
unknown |
Returns
error is Error
Inherited from
Error.isError
Call Signature
static isError(value): value is Error;
Defined in: node_modules/.bun/bun-types@1.4.0/node_modules/bun-types/globals.d.ts:1057
Check if a value is an instance of Error
Parameters
| Parameter | Type | Description |
|---|---|---|
value |
unknown |
The value to check |
Returns
value is Error
True if the value is an instance of Error, false otherwise
Inherited from
Error.isError
LayerKeyError
Defined in: packages/core/src/errors.ts:41
Thrown when a layer key is not JSON-safe (from assertLayerKey / hashKey).
Extends
Error
Constructors
Constructor
new LayerKeyError(message, path?): LayerKeyError;
Defined in: packages/core/src/errors.ts:43
Parameters
| Parameter | Type | Default value |
|---|---|---|
message |
string |
undefined |
path |
readonly PropertyKey[] |
[] |
Returns
Overrides
Error.constructor
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
|---|---|---|---|---|---|
path |
readonly |
readonly PropertyKey[] |
- | - | packages/core/src/errors.ts:42 |
stackTraceLimit |
static |
number |
The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)). The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. |
Error.stackTraceLimit |
node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:67 |
cause? |
public |
unknown |
The cause of the error. | Error.cause |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts:24 |
name |
public |
string |
- | Error.name |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1074 |
message |
public |
string |
- | Error.message |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1075 |
stack? |
public |
string |
- | Error.stack |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1076 |
Methods
captureStackTrace()
Call Signature
static captureStackTrace(targetObject, constructorOpt?): void;
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:51
Creates a .stack property on targetObject, which when accessed returns
a string representing the location in the code at which
Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
The first line of the trace will be prefixed with
${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
above constructorOpt, including constructorOpt, will be omitted from the
generated stack trace.
The constructorOpt argument is useful for hiding implementation
details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Parameters
| Parameter | Type |
|---|---|
targetObject |
object |
constructorOpt? |
Function |
Returns
void
Inherited from
Error.captureStackTrace
Call Signature
static captureStackTrace(targetObject, constructorOpt?): void;
Defined in: node_modules/.bun/bun-types@1.4.0/node_modules/bun-types/globals.d.ts:1062
Create .stack property on a target object
Parameters
| Parameter | Type |
|---|---|
targetObject |
object |
constructorOpt? |
Function |
Returns
void
Inherited from
Error.captureStackTrace
prepareStackTrace()
static prepareStackTrace(err, stackTraces): any;
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:55
Parameters
| Parameter | Type |
|---|---|
err |
Error |
stackTraces |
CallSite[] |
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Error.prepareStackTrace
isError()
Call Signature
static isError(error): error is Error;
Defined in: node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.error.d.ts:21
Indicates whether the argument provided is a built-in Error instance or not.
Parameters
| Parameter | Type |
|---|---|
error |
unknown |
Returns
error is Error
Inherited from
Error.isError
Call Signature
static isError(value): value is Error;
Defined in: node_modules/.bun/bun-types@1.4.0/node_modules/bun-types/globals.d.ts:1057
Check if a value is an instance of Error
Parameters
| Parameter | Type | Description |
|---|---|---|
value |
unknown |
The value to check |
Returns
value is Error
True if the value is an instance of Error, false otherwise
Inherited from
Error.isError
LayerCancelledError
Defined in: packages/core/src/errors.ts:88
Rejects open() when a stack is torn down without a completion response
(cancelAll, parent dismiss child clear, group dispose, stackDisconnect).
Extends
Error
Constructors
Constructor
new LayerCancelledError(reason?): LayerCancelledError;
Defined in: packages/core/src/errors.ts:91
Parameters
| Parameter | Type | Default value |
|---|---|---|
reason |
LayerCancelReason |
"cancelAll" |
Returns
Overrides
Error.constructor
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
|---|---|---|---|---|---|
reason |
readonly |
LayerCancelReason |
LayerCancelReason that triggered this rejection. | - | packages/core/src/errors.ts:90 |
stackTraceLimit |
static |
number |
The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)). The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. |
Error.stackTraceLimit |
node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:67 |
cause? |
public |
unknown |
The cause of the error. | Error.cause |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts:24 |
name |
public |
string |
- | Error.name |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1074 |
message |
public |
string |
- | Error.message |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1075 |
stack? |
public |
string |
- | Error.stack |
node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts:1076 |
Methods
captureStackTrace()
Call Signature
static captureStackTrace(targetObject, constructorOpt?): void;
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:51
Creates a .stack property on targetObject, which when accessed returns
a string representing the location in the code at which
Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
The first line of the trace will be prefixed with
${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
above constructorOpt, including constructorOpt, will be omitted from the
generated stack trace.
The constructorOpt argument is useful for hiding implementation
details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Parameters
| Parameter | Type |
|---|---|
targetObject |
object |
constructorOpt? |
Function |
Returns
void
Inherited from
Error.captureStackTrace
Call Signature
static captureStackTrace(targetObject, constructorOpt?): void;
Defined in: node_modules/.bun/bun-types@1.4.0/node_modules/bun-types/globals.d.ts:1062
Create .stack property on a target object
Parameters
| Parameter | Type |
|---|---|
targetObject |
object |
constructorOpt? |
Function |
Returns
void
Inherited from
Error.captureStackTrace
prepareStackTrace()
static prepareStackTrace(err, stackTraces): any;
Defined in: node_modules/.bun/@types+node@26.1.2/node_modules/@types/node/globals.d.ts:55
Parameters
| Parameter | Type |
|---|---|
err |
Error |
stackTraces |
CallSite[] |
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Error.prepareStackTrace
isError()
Call Signature
static isError(error): error is Error;
Defined in: node_modules/.bun/typescript@6.0.3/node_modules/typescript/lib/lib.esnext.error.d.ts:21
Indicates whether the argument provided is a built-in Error instance or not.
Parameters
| Parameter | Type |
|---|---|
error |
unknown |
Returns
error is Error
Inherited from
Error.isError
Call Signature
static isError(value): value is Error;
Defined in: node_modules/.bun/bun-types@1.4.0/node_modules/bun-types/globals.d.ts:1057
Check if a value is an instance of Error
Parameters
| Parameter | Type | Description |
|---|---|---|
value |
unknown |
The value to check |
Returns
value is Error
True if the value is an instance of Error, false otherwise
Inherited from
Error.isError
Layer
Defined in: packages/core/src/layer.ts:14
Runtime state and cancellation resources for one stack entry.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
unknown |
R |
void |
E |
DefaultLayerError |
D |
unknown |
Constructors
Constructor
new Layer<P, R, E, D>(opts): Layer<P, R, E, D>;
Defined in: packages/core/src/layer.ts:31
Parameters
| Parameter | Type |
|---|---|
opts |
{ key: LayerKey; payload: P; index: number; stackSize: number; component?: unknown; enteringDelay?: number; exitingDelay?: number; data?: D; } |
opts.key |
LayerKey |
opts.payload |
P |
opts.index |
number |
opts.stackSize |
number |
opts.component? |
unknown |
opts.enteringDelay? |
number |
opts.exitingDelay? |
number |
opts.data? |
D |
Returns
Layer<P, R, E, D>
Properties
| Property | Modifier | Type | Default value | Defined in |
|---|---|---|---|---|
id |
readonly |
string |
undefined |
packages/core/src/layer.ts:15 |
key |
readonly |
LayerKey |
undefined |
packages/core/src/layer.ts:16 |
promise |
readonly |
ControlledPromise<R> |
undefined |
packages/core/src/layer.ts:17 |
abortController |
readonly |
AbortController |
undefined |
packages/core/src/layer.ts:18 |
component? |
readonly |
unknown |
undefined |
packages/core/src/layer.ts:19 |
enteringDelay |
readonly |
number |
undefined |
packages/core/src/layer.ts:20 |
exitingDelay |
readonly |
number |
undefined |
packages/core/src/layer.ts:21 |
enterTimer? |
public |
Timeout |
undefined |
packages/core/src/layer.ts:23 |
exitTimer? |
public |
Timeout |
undefined |
packages/core/src/layer.ts:24 |
aborted |
public |
boolean |
false |
packages/core/src/layer.ts:26 |
dismissPending? |
public |
Promise<boolean> |
undefined |
packages/core/src/layer.ts:27 |
Accessors
state
Get Signature
get state(): LayerState<P, R, E, D>;
Defined in: packages/core/src/layer.ts:63
Returns
LayerState<P, R, E, D>
blockers
Get Signature
get blockers(): ReadonlySet<BlockerFn>;
Defined in: packages/core/src/layer.ts:67
Returns
ReadonlySet<BlockerFn>
Methods
addBlocker()
addBlocker(fn): () => void;
Defined in: packages/core/src/layer.ts:71
Parameters
| Parameter | Type |
|---|---|
fn |
BlockerFn |
Returns
() => void
setPartial()
setPartial(patch): boolean;
Defined in: packages/core/src/layer.ts:77
Returns true if the snapshot changed.
Parameters
| Parameter | Type |
|---|---|
patch |
Partial<LayerState<P, R, E, D>> |
Returns
boolean
setRunning()
setRunning(running): void;
Defined in: packages/core/src/layer.ts:87
Parameters
| Parameter | Type |
|---|---|
running |
boolean |
Returns
void
abort()
abort(): void;
Defined in: packages/core/src/layer.ts:92
Cancel any in-flight loadFn; subsequent resolutions are ignored.
Returns
void
resolve()
resolve(response): void;
Defined in: packages/core/src/layer.ts:97
Parameters
| Parameter | Type |
|---|---|
response |
R |
Returns
void
reject()
reject(error): void;
Defined in: packages/core/src/layer.ts:101
Parameters
| Parameter | Type |
|---|---|
error |
E |
Returns
void
LayerClient
Defined in: packages/core/src/layerClient.ts:34
Coordinates named layer stacks.
Constructors
Constructor
new LayerClient(opts?): LayerClient;
Defined in: packages/core/src/layerClient.ts:41
Parameters
| Parameter | Type |
|---|---|
opts |
LayerClientOptions |
Returns
Methods
ensureStack()
ensureStack(id, options?): LayerStack;
Defined in: packages/core/src/layerClient.ts:46
Returns a stack, applying options only when creating it.
Parameters
| Parameter | Type |
|---|---|
id |
string |
options? |
StackOptions |
Returns
bindChildStack()
bindChildStack(parentLayerId, childStackId): () => void;
Defined in: packages/core/src/layerClient.ts:75
Parameters
| Parameter | Type |
|---|---|
parentLayerId |
string |
childStackId |
string |
Returns
() => void
open()
Call Signature
open<V, P, R, E, D, RootProps>(options): Promise<R>;
Defined in: packages/core/src/layerClient.ts:110
Accepts validator input while storing its parsed output as the payload.
Type Parameters
| Type Parameter | Default type |
|---|---|
V extends Validator<unknown> |
- |
P |
InferValidatorOutput<V> |
R |
void |
E |
Error |
D |
unknown |
RootProps |
unknown |
Parameters
| Parameter | Type |
|---|---|
options |
OmitKeyof<OpenLayerOptions<P, R, E, D, RootProps>, "validate" | "payload"> & object |
Returns
Promise<R>
Call Signature
open<P, R, E, D, RootProps>(options): Promise<R>;
Defined in: packages/core/src/layerClient.ts:127
Infers response and error types from a DataTag key.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
- |
R |
- |
E |
Error |
D |
unknown |
RootProps |
unknown |
Parameters
| Parameter | Type |
|---|---|
options |
OmitKeyof<OpenLayerOptions<P, R, E, D, RootProps> & object, "validate"> |
Returns
Promise<R>
Call Signature
open<P, R, E, D, RootProps>(options): Promise<R>;
Defined in: packages/core/src/layerClient.ts:136
Opens a layer and resolves with its dismissal response.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
- |
R |
void |
E |
Error |
D |
unknown |
RootProps |
unknown |
Parameters
| Parameter | Type |
|---|---|
options |
OmitKeyof<OpenLayerOptions<P, R, E, D, RootProps>, "validate"> |
Returns
Promise<R>
getStack()
getStack(id?): LayerStack;
Defined in: packages/core/src/layerClient.ts:164
Parameters
| Parameter | Type | Default value |
|---|---|---|
id |
string |
"default" |
Returns
getStackIds()
getStackIds(): string[];
Defined in: packages/core/src/layerClient.ts:168
Returns
string[]
subscribeStacks()
subscribeStacks(listener): () => void;
Defined in: packages/core/src/layerClient.ts:173
Subscribes to first-time stack materialization.
Parameters
| Parameter | Type |
|---|---|
listener |
(stackId) => void |
Returns
() => void
subscribeNotify()
subscribeNotify(listener): () => void;
Defined in: packages/core/src/layerClient.ts:179
Subscribes to labeled stack snapshot transitions (devtools).
Parameters
| Parameter | Type |
|---|---|
listener |
(event) => void |
Returns
() => void
seedNotify()
seedNotify(stackId?): void;
Defined in: packages/core/src/layerClient.ts:188
Re-emits the current snapshot as a register notify for one stack, or all
materialized stacks when stackId is omitted (devtools seed).
Parameters
| Parameter | Type |
|---|---|
stackId? |
string |
Returns
void
dismissAll()
dismissAll(
stackId?,
response?,
opts?): Promise<void>;
Defined in: packages/core/src/layerClient.ts:204
Bulk-dismisses a stack, completing every open() with response
(including omitted/undefined for void layers). Honors
DismissAllMode; does not reject — prefer cancelAll for
teardown without a completion value.
Parameters
| Parameter | Type | Default value |
|---|---|---|
stackId |
string |
"default" |
response? |
unknown |
undefined |
opts? |
DismissAllOptions |
undefined |
Returns
Promise<void>
cancelAll()
cancelAll(stackId?, opts?): Promise<void>;
Defined in: packages/core/src/layerClient.ts:222
Force-clears a stack and rejects every open/queued caller with LayerCancelledError. System teardown — prefer dismissAll when completing with a response.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
stackId |
string |
"default" |
- |
opts? |
{ reason?: LayerCancelReason; } |
undefined |
- |
opts.reason? |
LayerCancelReason |
undefined |
Propagated on each rejection. |
Returns
Promise<void>
Default
opts.reason "cancelAll"
LayerStack
Defined in: packages/core/src/layerStack.ts:44
Manages the ordered layers for one surface. Snapshots retain their references across batched notifications until their contents change.
Extends
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
unknown |
R |
void |
E |
DefaultLayerError |
D |
unknown |
Constructors
Constructor
new LayerStack<P, R, E, D>(id, options?): LayerStack<P, R, E, D>;
Defined in: packages/core/src/layerStack.ts:72
Parameters
| Parameter | Type |
|---|---|
id |
string |
options |
StackOptions |
Returns
LayerStack<P, R, E, D>
Overrides
Properties
| Property | Modifier | Type | Inherited from | Defined in |
|---|---|---|---|---|
id |
readonly |
string |
- | packages/core/src/layerStack.ts:50 |
options |
readonly |
StackOptions |
- | packages/core/src/layerStack.ts:51 |
listeners |
protected |
Map<Listener, Listener> |
Subscribable.listeners |
packages/core/src/subscribable.ts:11 |
Accessors
size
Get Signature
get size(): number;
Defined in: packages/core/src/subscribable.ts:32
Returns
number
Inherited from
Methods
getSnapshot()
getSnapshot(): LayerState<P, R, E, D>[];
Defined in: packages/core/src/layerStack.ts:79
Returns a referentially stable snapshot between mutations.
Returns
LayerState<P, R, E, D>[]
getQueuedSnapshot()
getQueuedSnapshot(): LayerState<P, R, E, D>[];
Defined in: packages/core/src/layerStack.ts:82
Returns serially queued layers, which are excluded from getSnapshot.
Returns
LayerState<P, R, E, D>[]
getLayer()
getLayer(id):
| Layer<P, R, E, D>
| undefined;
Defined in: packages/core/src/layerStack.ts:89
Parameters
| Parameter | Type |
|---|---|
id |
string |
Returns
| Layer<P, R, E, D>
| undefined
find()
find(key):
| Layer<P, R, E, D>
| undefined;
Defined in: packages/core/src/layerStack.ts:93
Parameters
| Parameter | Type |
|---|---|
key |
LayerKey |
Returns
| Layer<P, R, E, D>
| undefined
addBlocker()
addBlocker(fn): () => void;
Defined in: packages/core/src/layerStack.ts:98
Parameters
| Parameter | Type |
|---|---|
fn |
StackBlockerFn |
Returns
() => void
open()
open(opts): Layer<P, R, E, D>;
Defined in: packages/core/src/layerStack.ts:117
Parameters
| Parameter | Type |
|---|---|
opts |
OpenOpts<P, D> |
Returns
Layer<P, R, E, D>
dismiss()
dismiss(layer, ...args): Promise<boolean>;
Defined in: packages/core/src/layerStack.ts:263
Resolves the caller and aborts in-flight loading.
Exiting layers remain mounted until their transition settles.
Response may be omitted when undefined extends R (EndArgs).
Parameters
Returns
Promise<boolean>
settle()
settle(layer): void;
Defined in: packages/core/src/layerStack.ts:359
Parameters
| Parameter | Type |
|---|---|
layer |
Layer<P, R, E, D> |
Returns
void
dismissAll()
dismissAll(...args): Promise<void>;
Defined in: packages/core/src/layerStack.ts:388
Bulk-dismisses active and queued layers, completing every open() with
response (including omitted/undefined when undefined extends R —
DismissAllArgs / EndArgs gate).
Honors DismissAllMode; does not reject — use cancelAll for
teardown without a completion value.
Parameters
| Parameter | Type |
|---|---|
…args |
DismissAllArgs<R> |
Returns
Promise<void>
cancelAll()
cancelAll(opts?): Promise<void>;
Defined in: packages/core/src/layerStack.ts:437
Force-clears the stack and rejects every open/queued caller with LayerCancelledError. Skips blockers. System teardown path — use dismissAll when completing with a response.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts? |
{ reason?: LayerCancelReason; } |
- |
opts.reason? |
LayerCancelReason |
Propagated on each rejection. |
Returns
Promise<void>
Default
opts.reason "cancelAll"
cancelQueued()
cancelQueued(key, ...args): boolean;
Defined in: packages/core/src/layerStack.ts:493
Resolves and removes a serially queued layer without mounting it (skips blockers).
No id → FIFO head for the key; { id } → exact queued match.
Response may be omitted when undefined extends R (CancelQueuedArgs /
EndArgs gate).
Parameters
| Parameter | Type |
|---|---|
key |
LayerKey |
…args |
CancelQueuedArgs<R> |
Returns
boolean
update()
update(layer, patch): void;
Defined in: packages/core/src/layerStack.ts:523
Parameters
| Parameter | Type |
|---|---|
layer |
Layer<P, R, E, D> |
patch |
Partial<P> |
Returns
void
setRunning()
setRunning(layer, running): void;
Defined in: packages/core/src/layerStack.ts:532
Parameters
| Parameter | Type |
|---|---|
layer |
Layer<P, R, E, D> |
running |
boolean |
Returns
void
subscribe()
subscribe(listener): () => void;
Defined in: packages/core/src/subscribable.ts:13
Parameters
| Parameter | Type |
|---|---|
listener |
Listener |
Returns
() => void
Inherited from
notify()
protected notify(): void;
Defined in: packages/core/src/subscribable.ts:23
Returns
void
Inherited from
onSubscribe()?
protected optional onSubscribe(): void;
Defined in: packages/core/src/subscribable.ts:29
Returns
void
Inherited from
onUnsubscribe()?
protected optional onUnsubscribe(): void;
Defined in: packages/core/src/subscribable.ts:30
Returns
void
Inherited from
Subscribable
Defined in: packages/core/src/subscribable.ts:10
Base for stores whose listeners participate in notifyManager batching. Wrapping occurs once at subscription, so repeated notifications in one batch coalesce for framework and bare subscribers alike.
Extended by
Constructors
Constructor
new Subscribable(): Subscribable;
Returns
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
listeners |
protected |
Map<Listener, Listener> |
packages/core/src/subscribable.ts:11 |
Accessors
size
Get Signature
get size(): number;
Defined in: packages/core/src/subscribable.ts:32
Returns
number
Methods
subscribe()
subscribe(listener): () => void;
Defined in: packages/core/src/subscribable.ts:13
Parameters
| Parameter | Type |
|---|---|
listener |
Listener |
Returns
() => void
notify()
protected notify(): void;
Defined in: packages/core/src/subscribable.ts:23
Returns
void
onSubscribe()?
protected optional onSubscribe(): void;
Defined in: packages/core/src/subscribable.ts:29
Returns
void
onUnsubscribe()?
protected optional onUnsubscribe(): void;
Defined in: packages/core/src/subscribable.ts:30
Returns
void
Interfaces
LayerHandle
Defined in: packages/core/src/createLayer.ts:40
Identity-bound layer ops + escapes (stack / client / options / current).
open/upsert take payload only; stack-level ops route via .stack.
Type Parameters
| Type Parameter |
|---|
P |
R |
E |
D |
RP |
Properties
| Property | Modifier | Type | Description | Defined in |
|---|---|---|---|---|
open |
public |
(payload) => Promise<R> |
- | packages/core/src/createLayer.ts:41 |
upsert |
public |
(payload) => Promise<R> |
- | packages/core/src/createLayer.ts:42 |
dismiss |
public |
(…args) => Promise<boolean> |
Dismiss the bound instance (or { id }). Response optional iff undefined extends R (HandleDismissArgs / EndArgs gate). |
packages/core/src/createLayer.ts:48 |
update |
public |
(patch, opts?) => void |
- | packages/core/src/createLayer.ts:49 |
cancelQueued |
public |
(…args) => boolean |
Resolves and removes a serially queued layer without mounting (skips blockers). No id → FIFO head for this key; { id } → exact queued match. Response may be omitted when undefined extends R (CancelQueuedArgs / EndArgs gate). |
packages/core/src/createLayer.ts:56 |
client |
readonly |
LayerClient |
- | packages/core/src/createLayer.ts:57 |
stack |
readonly |
LayerStack<P, R, E, D> |
- | packages/core/src/createLayer.ts:58 |
options |
readonly |
LayerOptions<P, R, E, D, RP> & object |
- | packages/core/src/createLayer.ts:59 |
current |
readonly |
| Layer<P, R, E, D> | null |
Live-checked bound instance (null when not in the stack). |
packages/core/src/createLayer.ts:63 |
ValidatedLayerHandle
Defined in: packages/core/src/createLayer.ts:70
Validated handle: open/upsert take schema input (OpenValidatePayload);
current/update use parsed output.
Extends
Omit<LayerHandle<InferValidatorOutput<V>,R,E,D,RP>,"open"|"upsert">
Type Parameters
| Type Parameter |
|---|
V extends Validator<unknown> |
R |
E |
D |
RP |
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
|---|---|---|---|---|---|
dismiss |
public |
(…args) => Promise<boolean> |
Dismiss the bound instance (or { id }). Response optional iff undefined extends R (HandleDismissArgs / EndArgs gate). |
Omit.dismiss |
packages/core/src/createLayer.ts:48 |
update |
public |
(patch, opts?) => void |
- | Omit.update |
packages/core/src/createLayer.ts:49 |
cancelQueued |
public |
(…args) => boolean |
Resolves and removes a serially queued layer without mounting (skips blockers). No id → FIFO head for this key; { id } → exact queued match. Response may be omitted when undefined extends R (CancelQueuedArgs / EndArgs gate). |
Omit.cancelQueued |
packages/core/src/createLayer.ts:56 |
client |
readonly |
LayerClient |
- | Omit.client |
packages/core/src/createLayer.ts:57 |
stack |
readonly |
LayerStack<InferValidatorOutput<V>, R, E, D> |
- | Omit.stack |
packages/core/src/createLayer.ts:58 |
options |
readonly |
LayerOptions<InferValidatorOutput<V>, R, E, D, RP> & object |
- | Omit.options |
packages/core/src/createLayer.ts:59 |
current |
readonly |
| Layer<InferValidatorOutput<V>, R, E, D> | null |
Live-checked bound instance (null when not in the stack). |
Omit.current |
packages/core/src/createLayer.ts:63 |
open |
public |
(payload) => Promise<R> |
- | - | packages/core/src/createLayer.ts:80 |
upsert |
public |
(payload) => Promise<R> |
- | - | packages/core/src/createLayer.ts:81 |
ValidationIssue
Defined in: packages/core/src/errors.ts:2
Provides validator-independent details for one payload failure.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
message |
readonly |
string |
packages/core/src/errors.ts:3 |
path? |
readonly |
readonly PropertyKey[] |
packages/core/src/errors.ts:4 |
LayerGroupOptions
Defined in: packages/core/src/layerGroup.ts:10
Customizes child-stack identity and lifecycle.
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
name? |
string |
Distinguishes sibling groups owned by the same parent. Default "group" |
packages/core/src/layerGroup.ts:15 |
scope? |
object |
- | packages/core/src/layerGroup.ts:16 |
scope.strategy |
"serial" | "parallel" |
- | packages/core/src/types.ts:200 |
scope.onLoadError? |
SerialOnLoadError |
Serial only. block — keep phase: "error" until dismiss. advance — remove the failed layer and drain the next queued open. Default "block" |
packages/core/src/types.ts:206 |
gcTime? |
number |
- | packages/core/src/layerGroup.ts:17 |
LayerGroupHandle
Defined in: packages/core/src/layerGroup.ts:21
Controls a child stack bound to its parent layer’s lifetime.
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
stackId |
readonly |
string |
packages/core/src/layerGroup.ts:22 |
Methods
open()
open<P, R, E, D, RootProps>(options): Promise<R>;
Defined in: packages/core/src/layerGroup.ts:24
Opens a layer with the child stack pre-bound.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
- |
R |
void |
E |
Error |
D |
unknown |
RootProps |
unknown |
Parameters
| Parameter | Type |
|---|---|
options |
Omit<OpenLayerOptions<P, R, E, D, RootProps>, "stack"> |
Returns
Promise<R>
dismissAll()
dismissAll(response?): void;
Defined in: packages/core/src/layerGroup.ts:27
Parameters
| Parameter | Type |
|---|---|
response? |
unknown |
Returns
void
dispose()
dispose(): void;
Defined in: packages/core/src/layerGroup.ts:29
Removes the parent-lifetime binding when its owner unmounts.
Returns
void
StandardSchemaV1
Defined in: packages/core/src/standardSchema.ts:7
Minimal vendored Standard Schema v1 types. Vendoring keeps schema integration type-only and avoids a runtime dependency.
See
Type Parameters
| Type Parameter | Default type |
|---|---|
Input |
unknown |
Output |
Input |
Properties
| Property | Modifier | Type | Defined in |
|---|---|---|---|
~standard |
readonly |
Props<Input, Output> |
packages/core/src/standardSchema.ts:8 |
DismissOptions
Defined in: packages/core/src/types.ts:43
Properties
| Property | Type | Defined in |
|---|---|---|
force? |
boolean |
packages/core/src/types.ts:44 |
DismissAllOptions
Defined in: packages/core/src/types.ts:47
Properties
| Property | Type | Defined in |
|---|---|---|
mode? |
DismissAllMode |
packages/core/src/types.ts:48 |
LayerState
Defined in: packages/core/src/types.ts:52
Immutable layer snapshot consumed by selectors.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
unknown |
R |
void |
E |
DefaultLayerError |
D |
unknown |
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
id |
string |
- | packages/core/src/types.ts:58 |
key |
LayerKey |
- | packages/core/src/types.ts:59 |
payload |
P |
- | packages/core/src/types.ts:60 |
data? |
D |
- | packages/core/src/types.ts:61 |
response? |
R |
- | packages/core/src/types.ts:62 |
error? |
E |
- | packages/core/src/types.ts:63 |
phase |
LayerPhase |
- | packages/core/src/types.ts:64 |
transition |
LayerTransition |
- | packages/core/src/types.ts:65 |
dismissing |
boolean |
true while a user-intent dismiss is consulting blockers. |
packages/core/src/types.ts:67 |
actionStatus |
LayerActionStatus |
- | packages/core/src/types.ts:68 |
ended |
boolean |
- | packages/core/src/types.ts:69 |
index |
number |
- | packages/core/src/types.ts:70 |
stackSize |
number |
- | packages/core/src/types.ts:71 |
LayerCallContext
Defined in: packages/core/src/types.ts:75
Imperative controls available to a rendered layer.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
- |
R |
- |
RootProps |
unknown |
Properties
| Property | Modifier | Type | Description | Defined in |
|---|---|---|---|---|
end |
public |
(…args) => Promise<boolean> |
Resolve and dismiss — response optional iff undefined extends R (EndArgs). |
packages/core/src/types.ts:77 |
dismiss |
public |
(…args) => Promise<boolean> |
Alias of LayerCallContext.end. | packages/core/src/types.ts:79 |
addBlocker |
public |
(fn) => () => void |
- | packages/core/src/types.ts:80 |
update |
public |
(patch) => void |
- | packages/core/src/types.ts:81 |
setRunning |
public |
(running) => void |
- | packages/core/src/types.ts:82 |
settle |
public |
() => void |
Finishes the current transition immediately. | packages/core/src/types.ts:84 |
ended |
public |
boolean |
- | packages/core/src/types.ts:85 |
index |
public |
number |
- | packages/core/src/types.ts:86 |
stackSize |
public |
number |
- | packages/core/src/types.ts:87 |
root |
public |
RootProps |
- | packages/core/src/types.ts:88 |
stackId |
readonly |
string |
- | packages/core/src/types.ts:89 |
layerId |
readonly |
string |
- | packages/core/src/types.ts:90 |
LayerComponentProps
Defined in: packages/core/src/types.ts:93
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
unknown |
R |
void |
E |
DefaultLayerError |
D |
unknown |
RootProps |
unknown |
Properties
| Property | Type | Defined in |
|---|---|---|
call |
LayerCallContext<P, R, RootProps> |
packages/core/src/types.ts:100 |
payload |
P |
packages/core/src/types.ts:101 |
data? |
D |
packages/core/src/types.ts:102 |
error? |
E |
packages/core/src/types.ts:103 |
phase |
LayerPhase |
packages/core/src/types.ts:104 |
transition |
LayerTransition |
packages/core/src/types.ts:105 |
dismissing |
boolean |
packages/core/src/types.ts:106 |
actionStatus |
LayerActionStatus |
packages/core/src/types.ts:107 |
LayerOptions
Defined in: packages/core/src/types.ts:113
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
unknown |
R |
void |
E |
DefaultLayerError |
D |
unknown |
RootProps |
unknown |
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
stack? |
string |
Default "default" |
packages/core/src/types.ts:121 |
key |
LayerKey |
Stable identity; same key + upsert → update existing instance. |
packages/core/src/types.ts:123 |
component? |
unknown |
- | packages/core/src/types.ts:124 |
enteringDelay? |
number |
Enter duration in milliseconds; call.settle() finishes it early. Default 0 |
packages/core/src/types.ts:126 |
exitingDelay? |
number |
Exit duration in milliseconds; call.settle() finishes it early. Default 0 |
packages/core/src/types.ts:128 |
upsert? |
boolean |
When true, reusing an active key updates its payload instead of stacking. | packages/core/src/types.ts:130 |
loadFn? |
(ctx) => D | Promise<D> |
Loads data before activation; dismissal aborts the signal. | packages/core/src/types.ts:132 |
validate? |
Validator<P> |
Validates payload before opening; the parsed output becomes the payload. | packages/core/src/types.ts:134 |
rootProps? |
RootProps |
Props passed to every layer in the stack via call.root. |
packages/core/src/types.ts:136 |
StackOptions
Defined in: packages/core/src/types.ts:193
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
scope? |
object |
Serial scope queues unmounted opens until the occupying layer leaves (pending / active / error for onLoadError: "block"). Default { strategy: "parallel" } |
packages/core/src/types.ts:199 |
scope.strategy |
"serial" | "parallel" |
- | packages/core/src/types.ts:200 |
scope.onLoadError? |
SerialOnLoadError |
Serial only. block — keep phase: "error" until dismiss. advance — remove the failed layer and drain the next queued open. Default "block" |
packages/core/src/types.ts:206 |
gcTime? |
number |
Retains loaded data for same-key restoration. Default 0 |
packages/core/src/types.ts:209 |
dismissAllMode? |
DismissAllMode |
Default "skipBlocked" |
packages/core/src/types.ts:211 |
LayerClientOptions
Defined in: packages/core/src/types.ts:216
Properties
| Property | Type | Defined in |
|---|---|---|
defaultStackOptions? |
StackDefaults |
packages/core/src/types.ts:217 |
LayerNotifyView
Defined in: packages/core/src/types.ts:240
JSON-safe layer projection on StackNotifyEvent.
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
id |
string |
- | packages/core/src/types.ts:241 |
key |
string |
Display string from keySignature. | packages/core/src/types.ts:243 |
phase |
LayerPhase |
- | packages/core/src/types.ts:244 |
transition |
LayerTransition |
- | packages/core/src/types.ts:245 |
actionStatus |
LayerActionStatus |
- | packages/core/src/types.ts:246 |
dismissing |
boolean |
- | packages/core/src/types.ts:247 |
ended |
boolean |
- | packages/core/src/types.ts:248 |
index |
number |
- | packages/core/src/types.ts:249 |
stackSize |
number |
- | packages/core/src/types.ts:250 |
payload? |
unknown |
- | packages/core/src/types.ts:251 |
payloadTruncated? |
boolean |
true when payload could not be JSON-cloned and was omitted. |
packages/core/src/types.ts:253 |
StackNotifyEvent
Defined in: packages/core/src/types.ts:257
Emitted when a stack snapshot changes after a labeled mutation.
Properties
| Property | Type | Defined in |
|---|---|---|
stackId |
string |
packages/core/src/types.ts:258 |
seq |
number |
packages/core/src/types.ts:259 |
ts |
number |
packages/core/src/types.ts:260 |
action |
StackNotifyAction |
packages/core/src/types.ts:261 |
active |
LayerNotifyView[] |
packages/core/src/types.ts:262 |
queued |
LayerNotifyView[] |
packages/core/src/types.ts:263 |
Register
Defined in: packages/core/src/types.ts:275
Module-augmentation point for app-wide type defaults.
Augment defaultError to set the library-wide error type once.
Example
declare module "@stainless-code/layers" {
interface Register { defaultError: AppError }
}
Type Aliases
Resolve
type Resolve<T> = (value) => void;
Defined in: packages/core/src/controlledPromise.ts:1
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
value |
T | PromiseLike<T> |
Returns
void
Reject
type Reject = (reason?) => void;
Defined in: packages/core/src/controlledPromise.ts:2
Parameters
| Parameter | Type |
|---|---|
reason? |
unknown |
Returns
void
DataTag
type DataTag<Key, R, E> = Key extends object ? Key : Key & object;
Defined in: packages/core/src/dataTag.ts:12
Phantom-brands a LayerKey so response and error types survive inference
without runtime metadata.
Tagging is idempotent: the first tag wins, avoiding conflicting brands
intersecting into never.
Type Parameters
| Type Parameter | Default type |
|---|---|
Key extends LayerKey |
- |
R |
- |
E |
DefaultLayerError |
InferDataTagResponse
type InferDataTagResponse<Key> = Key extends object ? R : never;
Defined in: packages/core/src/dataTag.ts:27
Lets generic APIs recover the response associated with a tagged key.
Type Parameters
| Type Parameter |
|---|
Key |
InferDataTagError
type InferDataTagError<Key> = Key extends object ? E : never;
Defined in: packages/core/src/dataTag.ts:34
Lets generic APIs recover the error associated with a tagged key.
Type Parameters
| Type Parameter |
|---|
Key |
ResponseOf
type ResponseOf<Key, Fallback> = Key extends object ? R : Fallback;
Defined in: packages/core/src/dataTag.ts:43
Preserves a response default when a generic key is untagged.
Type Parameters
| Type Parameter | Default type |
|---|---|
Key |
- |
Fallback |
void |
ErrorOf
type ErrorOf<Key, Fallback> = Key extends object ? E : Fallback;
Defined in: packages/core/src/dataTag.ts:50
Preserves an error default when a generic key is untagged.
Type Parameters
| Type Parameter | Default type |
|---|---|
Key |
- |
Fallback |
DefaultLayerError |
LayerCancelReason
type LayerCancelReason = "parentDismiss" | "groupDispose" | "cancelAll" | "stackDisconnect";
Defined in: packages/core/src/errors.ts:78
Why LayerCancelledError rejected an open() promise.
parentDismiss— child stackcancelAll’d when its parent layer dismissedgroupDispose— adapter / host cleaned up auseLayerGroupownercancelAll— explicit LayerStack#cancelAll / LayerClient#cancelAllstackDisconnect— host disconnect (e.g. LithostDisconnected)
LayerKey
type LayerKey = ReadonlyArray<unknown>;
Defined in: packages/core/src/types.ts:12
Logical identity for a layer (find / upsert / gcTime).
Must be JSON-safe: string | boolean | null | finite number, or
plain objects / arrays of those. Compared via sorted JSON.stringify —
two keys with the same values in a different object-property order are equal.
Invalid keys throw LayerKeyError from any path that hashes the key
(hashKey, open, find, cancelQueued, createLayer).
LayerPhase
type LayerPhase = "pending" | "queued" | "active" | "dismissed" | "error";
Defined in: packages/core/src/types.ts:14
LayerTransition
type LayerTransition = "entering" | "settled" | "exiting";
Defined in: packages/core/src/types.ts:22
Animation state, independent of resolution phase.
LayerActionStatus
type LayerActionStatus = "idle" | "running";
Defined in: packages/core/src/types.ts:24
BlockerFn
type BlockerFn = () => boolean | Promise<boolean>;
Defined in: packages/core/src/types.ts:27
Instance-scoped predicate — true allows dismissal.
Returns
boolean | Promise<boolean>
StackBlockerFn
type StackBlockerFn = (layer) => boolean | Promise<boolean>;
Defined in: packages/core/src/types.ts:30
Stack-scoped predicate — true allows dismissal.
Parameters
| Parameter | Type |
|---|---|
layer |
LayerState |
Returns
boolean | Promise<boolean>
DismissAllMode
type DismissAllMode = "skipBlocked" | "stopAtBlocked" | "force";
Defined in: packages/core/src/types.ts:41
How LayerStack#dismissAll treats blockers. All modes still
resolve open() with the dismiss response — unlike LayerStack#cancelAll,
which rejects with LayerCancelledError.
skipBlocked— soft-dismiss each layer; leave blocked onesstopAtBlocked— soft-dismiss until the first veto, then stopforce— bypass blockers; still completes with the response
LayerComponent
type LayerComponent = unknown;
Defined in: packages/core/src/types.ts:111
Framework adapters narrow this to their component type.
PayloadArg
type PayloadArg<P> = undefined extends P ? object : object;
Defined in: packages/core/src/types.ts:150
Makes payload optional only when P admits undefined.
Optional object properties alone do not make the payload omittable.
Type Parameters
| Type Parameter |
|---|
P |
ResponseArgTuple
type ResponseArgTuple<R, Opts> = undefined extends R ? [R, Opts] : [R, Opts];
Defined in: packages/core/src/types.ts:155
Rest-tuple factory used by EndArgs and stack/handle variants.
Type Parameters
| Type Parameter |
|---|
R |
Opts |
EndArgs
type EndArgs<R> = ResponseArgTuple<R, DismissOptions>;
Defined in: packages/core/src/types.ts:165
Rest-args for call.end / call.dismiss / LayerStack.dismiss.
Response is optional only when R admits undefined — twin of PayloadArg.
When response is optional, pass opts as the second arg (end(undefined, { force: true }));
a lone object is treated as the response (not as opts).
Type Parameters
| Type Parameter |
|---|
R |
DismissAllArgs
type DismissAllArgs<R> = ResponseArgTuple<R, DismissAllOptions>;
Defined in: packages/core/src/types.ts:168
LayerStack.dismissAll rest-args (same gate as EndArgs).
Type Parameters
| Type Parameter |
|---|
R |
CancelQueuedArgs
type CancelQueuedArgs<R> = ResponseArgTuple<R, {
id?: string;
}>;
Defined in: packages/core/src/types.ts:171
cancelQueued rest-args (same gate as EndArgs).
Type Parameters
| Type Parameter |
|---|
R |
HandleDismissArgs
type HandleDismissArgs<R> = ResponseArgTuple<R, DismissOptions & object>;
Defined in: packages/core/src/types.ts:174
LayerHandle.dismiss rest-args (same gate as EndArgs; opts may include id).
Type Parameters
| Type Parameter |
|---|
R |
OpenLayerOptions
type OpenLayerOptions<P, R, E, D, RootProps> = LayerOptions<P, R, E, D, RootProps> & PayloadArg<P>;
Defined in: packages/core/src/types.ts:179
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
unknown |
R |
void |
E |
DefaultLayerError |
D |
unknown |
RootProps |
unknown |
OmitKeyof
type OmitKeyof<T, K> = Omit<T, K>;
Defined in: packages/core/src/types.ts:188
Rejects keys that do not exist on T.
Type Parameters
| Type Parameter |
|---|
T |
K extends keyof T |
SerialOnLoadError
type SerialOnLoadError = "block" | "advance";
Defined in: packages/core/src/types.ts:191
Serial policy when a mounted layer’s loadFn rejects.
StackDefaults
type StackDefaults = Record<string, StackOptions>;
Defined in: packages/core/src/types.ts:214
StackNotifyAction
type StackNotifyAction =
| "register"
| "open"
| "queue"
| "update"
| "setRunning"
| "settle"
| "dismiss"
| "dismissVetoed"
| "dismissAll"
| "cancelAll"
| "cancelQueued"
| "phase"
| "remove";
Defined in: packages/core/src/types.ts:224
Coarse mutation label for devtools / LayerClient#subscribeNotify.
dismissAll = bulk completion; cancelAll = teardown that rejects open().
DefaultLayerError
type DefaultLayerError = Register extends object ? E : Error;
Defined in: packages/core/src/types.ts:278
App-wide error type configured through Register.
Validator
type Validator<Output> =
| StandardSchemaV1<unknown, Output>
| ((input) => Output);
Defined in: packages/core/src/validators.ts:5
Unifies schema libraries and parser functions behind one validation contract.
Type Parameters
| Type Parameter |
|---|
Output |
InferValidatorInput
type InferValidatorInput<V> = V extends StandardSchemaV1<infer I, unknown> ? I : V extends (input) => unknown ? I : never;
Defined in: packages/core/src/validators.ts:10
Preserves a validator’s pre-transform payload type in generic APIs.
Type Parameters
| Type Parameter |
|---|
V |
InferValidatorOutput
type InferValidatorOutput<V> = V extends StandardSchemaV1<unknown, infer O> ? O : V extends (input) => infer O ? O : never;
Defined in: packages/core/src/validators.ts:18
Preserves a validator’s post-transform payload type in generic APIs.
Type Parameters
| Type Parameter |
|---|
V |
OpenValidatePayload
type OpenValidatePayload<V> = V extends StandardSchemaV1 ? InferInput<V> : InferValidatorInput<V>;
Defined in: packages/core/src/validators.ts:26
Schema/parser input for validated open / ValidatedLayerHandle.
Type Parameters
| Type Parameter |
|---|
V extends Validator<unknown> |
Variables
notifyManager
const notifyManager: object;
Defined in: packages/core/src/notifyManager.ts:9
Coalesces listener calls by identity within a synchronous batch. Nested batches flush only when the outer batch completes; wrapped listeners called repeatedly during that interval run once.
Type Declaration
| Name | Type | Defined in |
|---|---|---|
batch() |
(fn) => T |
packages/core/src/notifyManager.ts:10 |
batchCalls() |
(listener) => () => void |
packages/core/src/notifyManager.ts:26 |
Functions
createCallContext()
function createCallContext<P, R, RootProps>(
stack,
layer,
state,
rootProps?): LayerCallContext<P, R, RootProps>;
Defined in: packages/core/src/callContext.ts:14
Creates the framework-neutral imperative context passed to a layer component. Adapters provide rendering; stack and layer instances retain lifecycle control.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
- |
R |
- |
RootProps |
unknown |
Parameters
| Parameter | Type |
|---|---|
stack |
LayerStack<P, R, Error, unknown> |
layer |
Layer<P, R, Error, unknown> |
state |
LayerState<P, R, Error, unknown> |
rootProps? |
RootProps |
Returns
LayerCallContext<P, R, RootProps>
createLayer()
Call Signature
function createLayer<V, R, E, D, RP>(options, client): ValidatedLayerHandle<V, R, E, D, RP>;
Defined in: packages/core/src/createLayer.ts:93
Wire layerOptions + a LayerClient into a headless LayerHandle.
Type Parameters
| Type Parameter | Default type |
|---|---|
V extends Validator<unknown> |
- |
R |
- |
E |
Error |
D |
unknown |
RP |
unknown |
Parameters
| Parameter | Type |
|---|---|
options |
LayerOptions<InferValidatorOutput<V>, R, E, D, RP> & object |
client |
LayerClient |
Returns
ValidatedLayerHandle<V, R, E, D, RP>
Example
const c = createLayer(confirm, client);
const ok = await c.open({ title: "Remove?" });
Call Signature
function createLayer<P, R, E, D, RP>(options, client): LayerHandle<P, R, E, D, RP>;
Defined in: packages/core/src/createLayer.ts:107
Wire layerOptions + a LayerClient into a headless LayerHandle.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
- |
R |
- |
E |
Error |
D |
unknown |
RP |
unknown |
Parameters
| Parameter | Type |
|---|---|
options |
LayerOptions<P, R, E, D, RP> & object |
client |
LayerClient |
Returns
LayerHandle<P, R, E, D, RP>
Example
const c = createLayer(confirm, client);
const ok = await c.open({ title: "Remove?" });
layerKey()
function layerKey<R, E>(): <Key>(key) => DataTag<Key, R, E>;
Defined in: packages/core/src/dataTag.ts:69
Adds response and error inference to a key without changing it at runtime.
Type Parameters
| Type Parameter | Default type |
|---|---|
R |
- |
E |
Error |
Returns
<Key>(key) => DataTag<Key, R, E>
Example
import { LayerClient, layerKey } from "@stainless-code/layers";
const client = new LayerClient();
const removeKey = layerKey<boolean>()(["confirm", "remove"]);
const ok = await client.open({ key: removeKey, payload: { title: "Remove?" } });
// ^? boolean
isPayloadValidationError()
function isPayloadValidationError(value): value is PayloadValidationError;
Defined in: packages/core/src/errors.ts:34
Narrows an unknown rejection to PayloadValidationError.
Parameters
| Parameter | Type |
|---|---|
value |
unknown |
Returns
value is PayloadValidationError
Example
import { isPayloadValidationError } from "@stainless-code/layers";
function validationMessages(error: unknown) {
return isPayloadValidationError(error)
? error.issues.map((issue) => issue.message)
: [];
}
isLayerKeyError()
function isLayerKeyError(value): value is LayerKeyError;
Defined in: packages/core/src/errors.ts:66
Narrows an unknown synchronous throw to LayerKeyError.
Parameters
| Parameter | Type |
|---|---|
value |
unknown |
Returns
value is LayerKeyError
Example
import { isLayerKeyError } from "@stainless-code/layers";
try {
client.open({ key: [maybeId], payload });
} catch (error) {
if (isLayerKeyError(error)) {
console.error(error.path, error.message);
}
}
isLayerCancelledError()
function isLayerCancelledError(value): value is LayerCancelledError;
Defined in: packages/core/src/errors.ts:115
Narrows an unknown rejection to LayerCancelledError. Treat any cancel reason as normal teardown unless you branch on LayerCancelledError#reason.
Parameters
| Parameter | Type |
|---|---|
value |
unknown |
Returns
value is LayerCancelledError
Example
import { isLayerCancelledError } from "@stainless-code/layers";
try {
await confirm.open(payload);
} catch (error) {
if (isLayerCancelledError(error)) return;
throw error;
}
childStackId()
function childStackId(parent, name?): string;
Defined in: packages/core/src/layerGroup.ts:33
Derives a collision-free path id: ${parentStackId}~${parentLayerId}~${name}.
Parameters
| Parameter | Type | Default value |
|---|---|---|
parent |
Pick<LayerCallContext<unknown, unknown>, "stackId" | "layerId"> |
undefined |
name |
string |
"group" |
Returns
string
createLayerGroup()
function createLayerGroup(
client,
parent,
options?): LayerGroupHandle;
Defined in: packages/core/src/layerGroup.ts:61
Creates a child stack that is cancelAll’d (LayerCancelledError, reason
parentDismiss) when its parent dismisses. Pass the LayerClient that
owns parent; another client cannot observe the parent’s lifetime.
Parameters
| Parameter | Type |
|---|---|
client |
LayerClient |
parent |
Pick<LayerCallContext<unknown, unknown>, "stackId" | "layerId"> |
options |
LayerGroupOptions |
Returns
Example
import {
createLayerGroup,
type LayerCallContext,
type LayerClient,
} from "@stainless-code/layers";
declare const client: LayerClient;
declare const parent: LayerCallContext<unknown, unknown>;
const group = createLayerGroup(client, parent, { name: "nested" });
group.dismissAll();
group.dispose();
layerOptions()
function layerOptions<P, R, E, D, RootProps, Key>(options): LayerOptions<P, R, E, D, RootProps> & object;
Defined in: packages/core/src/layerOptions.ts:21
Preserves payload, response, error, and data inference for reusable layer options.
Returns the same object at runtime; its DataTag-branded key lets
LayerClient.open infer the response without an explicit generic.
Type Parameters
| Type Parameter | Default type |
|---|---|
P |
- |
R |
void |
E |
Error |
D |
unknown |
RootProps |
unknown |
Key extends LayerKey |
LayerKey |
Parameters
| Parameter | Type |
|---|---|
options |
LayerOptions<P, R, E, D, RootProps> & object |
Returns
LayerOptions<P, R, E, D, RootProps> & object
Example
import { LayerClient, layerOptions } from "@stainless-code/layers";
const client = new LayerClient();
const confirm = layerOptions<{ title: string }, boolean>({
key: ["confirm", "remove"],
});
const ok = await client.open({ ...confirm, payload: { title: "Remove?" } });
// ^? boolean
assertLayerKey()
function assertLayerKey(key): asserts key is LayerKey;
Defined in: packages/core/src/utils.ts:121
Ensures a layer key is JSON-safe for hashKey.
Allowed: string | boolean | null | finite number | plain objects | arrays of those.
Throws LayerKeyError when a segment is outside that domain.
Parameters
| Parameter | Type |
|---|---|
key |
unknown |
Returns
asserts key is LayerKey
Example
import { assertLayerKey } from "@stainless-code/layers";
assertLayerKey(["confirm", filterId ?? "none"]);
hashKey()
function hashKey(key): string;
Defined in: packages/core/src/utils.ts:132
Serializes a key deterministically by sorting object properties recursively. Throws LayerKeyError when the key is not JSON-safe.
Parameters
| Parameter | Type |
|---|---|
key |
LayerKey |
Returns
string
keySignature()
function keySignature(key): string;
Defined in: packages/core/src/utils.ts:143
Produces the canonical identity used to compare layer keys. Throws LayerKeyError when the key is not JSON-safe (via hashKey).
Parameters
| Parameter | Type |
|---|---|
key |
LayerKey |
Returns
string
shallowArrayEqual()
function shallowArrayEqual<T>(a, b): boolean;
Defined in: packages/core/src/utils.ts:152
Element-wise Object.is for arrays.
Keeps key-filtered snapshot selections stable when filter() reallocates
but the matched element refs are unchanged.
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
a |
T |
b |
T |
Returns
boolean