schema

Type Aliases

DerivedPluginNodes

DerivedPluginNodes<Augments> = AugmentPluginNodes<Augments>

Defined in: schema.ts:60

Type Parameters

Augments

Augments


PluginAnyNode

PluginAnyNode<Augments> = DerivedPluginNodes<Augments>

Defined in: schema.ts:61

Type Parameters

Augments

Augments extends AnySchemaAugments


StatelySchemaConfig

StatelySchemaConfig<S> = S extends StatelySchemas<infer Config, any> ? Config : never

Defined in: schema.ts:34

Type Parameters

S

S


StatelySchemas

StatelySchemas<Config, Augments> = object

Defined in: schema.ts:23

Base schema builder – derives shared surface area without core additions.

This type helper is the core type helper, without any assumptions baked in, not even "core". Prefer the exported Schemas in the entrypoint of the package.

Variance annotation enforces that Config can only be used covariantly, preventing invariant-causing patterns like keyof Config['nodes'] from being introduced.

Type Parameters

Config

Config extends StatelyConfig

Augments

Augments extends AnySchemaAugments

Properties

augments

augments: Augments

Defined in: schema.ts:26

config

config: Config

Defined in: schema.ts:25

Store raw configuration and plugin augmentations

data

data: AugmentPluginData<Augments>

Defined in: schema.ts:30

generated

generated: NodeInformation<GeneratedNodeMap<Config>>

Defined in: schema.ts:27

plugin

plugin: NodeInformation<AugmentPluginNodes<Augments>>

Defined in: schema.ts:28

types

types: AugmentPluginTypes<Augments>

Defined in: schema.ts:29

utils

utils: AugmentPluginUtils<Augments>

Defined in: schema.ts:31

Functions

isNodeOfType()

isNodeOfType<N>(schema, nodeType): schema is N

Defined in: schema.ts:53

Type guard for narrowing plugin node unions by nodeType.

Use this helper when you need to narrow a PluginNodeUnion<S> to a specific node type based on its nodeType discriminator. This is particularly useful in validation functions and other plugin code that needs to handle different node types.

Type Parameters

N

N extends BaseNode

Parameters

schema

BaseNode

nodeType

N["nodeType"]

Returns

schema is N

Example

function processNode(schema: PluginNodeUnion<MySchemas>) {
  if (isNodeOfType<ObjectNode>(schema, 'object')) {
    // schema is now narrowed to ObjectNode
    console.log(schema.properties);
  }
}