@mocanvas/store · class

RecordType

declare class RecordType<R extends UnknownRecord, RequiredProps extends keyof R = RecordDataKeys<R>>

Describes one kind of record in the store: how to make ids, defaults, validation, and where the record lives (its scope).


Methods · 8

clone(record: R): R

Shallow-clone a record (props/meta are shared).

constructor(typeName: R["typeName"], config: RecordTypeConfig<R> & {
create(properties: RecordCreateProps<R, RequiredProps>): R

Create a new record with defaults applied. A fresh id is generated when none is given.

createId(customUniquePart?: string): IdOf<R>

Make an id of this type: ${typeName}:${uniquePart}.

isId(id?: string): id is IdOf<R>
isInstance(record?: unknown): record is R
parseId(id: IdOf<R>): string

Recover the unique part of an id of this type.

validate(record: unknown, recordBefore?: R): R

Run the validator (if any). Throws on invalid input.


Properties · 6

readonly ephemeralKeys: EphemeralKeys<R> | undefined
readonly ephemeralKeySet: ReadonlySet<string>
readonly scope: RecordScope
readonly typeName: R["typeName"]
readonly validator: StoreValidator<R> | undefined
withDefaultProperties<DefaultProps extends RecordDataKeys<R>>(createDefaultProperties: () => Pick<R, DefaultProps>): RecordType<R, Exclude<RequiredProps, DefaultProps>>

Return a new RecordType whose create() fills in the given defaults, so those properties become optional for callers.

mocanvas is built by Symbio. Free for non-commercial, non-profit and development use; commercial use needs an agreement. Not affiliated with or endorsed by tldraw.