Skip to main content

Module: core

Namespaces​

Classes​

Enhancers​

context​

▸ context<NC>(contextToMerge): <C>(action: Action<C>) => Promise<Action<Awaited<C> & NC, {}>>

Merge the given context into the action's current context. The context is not deeply merged.

Type parameters​

NameType
NCextends Object

Parameters​

NameType
contextToMergeNC

Returns​

fn

▸ <C>(action): Promise<Action<Awaited<C> & NC, {}>>

Type parameters​
NameType
Cextends Object
Parameters​
NameType
actionAction<C>
Returns​

Promise<Action<Awaited<C> & NC, {}>>

Defined in​

src/core/actions/context/enhancers/context.ts:12


create​

▸ create<C, SD, D, I>(instance): (action: Action<C & ConsumeSerializer<SD>>) => Action<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<C & ConsumeSerializer<SD>> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType } & ConsumeSerializer<SD>> & { data: Awaited<SD> }> & { id: undefined | ModelIdType }> & { action: string = 'create' } & ConsumeInstance<I>, {}>

Prepare context for an instance creation.

Type parameters​

NameType
Cextends Object
SDSD
Dextends Object
Iextends ModelInstance<D>

Parameters​

NameType
instanceModelClassInstance<D> & I

Returns​

fn

▸ (action): Action<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<C & ConsumeSerializer<SD>> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType } & ConsumeSerializer<SD>> & { data: Awaited<SD> }> & { id: undefined | ModelIdType }> & { action: string = 'create' } & ConsumeInstance<I>, {}>

Parameters​
NameType
actionAction<C & ConsumeSerializer<SD>>
Returns​

Action<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<C & ConsumeSerializer<SD>> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType } & ConsumeSerializer<SD>> & { data: Awaited<SD> }> & { id: undefined | ModelIdType }> & { action: string = 'create' } & ConsumeInstance<I>, {}>

Defined in​

src/core/actions/context/enhancers/crud/create.ts:28


destroy​

▸ destroy<C, D, I>(instance): (action: Action<C>) => Action<Awaited<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType }> & { action: string = 'destroy' } & ConsumeInstance<I>, {}>

Prepare context for an instance deletion.

Type parameters​

NameType
Cextends Object
Dextends Object
Iextends ModelInstance<D>

Parameters​

NameType
instanceModelClassInstance<D> & I

Returns​

fn

▸ (action): Action<Awaited<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType }> & { action: string = 'destroy' } & ConsumeInstance<I>, {}>

Parameters​
NameType
actionAction<C>
Returns​

Action<Awaited<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType }> & { action: string = 'destroy' } & ConsumeInstance<I>, {}>

Defined in​

src/core/actions/context/enhancers/crud/destroy.ts:25


find​

▸ find<C, D, I, M>(model, id): (action: Action<C>) => Action<Awaited<Awaited<Awaited<C> & { model: M }> & { baseURL: undefined | string ; modelPath: string }> & { id: undefined | ModelIdType }, {}>

Target a given model record using its ID.

Type parameters​

NameType
Cextends Object
Dextends Object
Iextends ModelInstance<D>
Mextends Model<D, I>

Parameters​

NameType
modelM
idModelIdType

Returns​

fn

▸ (action): Action<Awaited<Awaited<Awaited<C> & { model: M }> & { baseURL: undefined | string ; modelPath: string }> & { id: undefined | ModelIdType }, {}>

Parameters​
NameType
actionAction<C>
Returns​

Action<Awaited<Awaited<Awaited<C> & { model: M }> & { baseURL: undefined | string ; modelPath: string }> & { id: undefined | ModelIdType }, {}>

Defined in​

src/core/actions/context/enhancers/crud/find.ts:15


forId​

▸ forId(id): <C>(action: Action<C>) => Promise<Action<Awaited<C> & { id: undefined | ModelIdType }, {}>>

Target the given ID.

Parameters​

NameType
idundefined | ModelIdType

Returns​

fn

▸ <C>(action): Promise<Action<Awaited<C> & { id: undefined | ModelIdType }, {}>>

Type parameters​
NameType
Cextends Object
Parameters​
NameType
actionAction<C>
Returns​

Promise<Action<Awaited<C> & { id: undefined | ModelIdType }, {}>>

Defined in​

src/core/actions/context/enhancers/forId.ts:13


forInstance​

▸ forInstance<C, D, I>(instance): (action: Action<C>) => Action<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType }, {}>

Target the given instance. Use its type and other applicable model's context.

Type parameters​

NameType
Cextends Object
Dextends Object
Iextends ModelInstance<D>

Parameters​

NameType
instanceModelClassInstance<D> & I

Returns​

fn

▸ (action): Action<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType }, {}>

Parameters​
NameType
actionAction<C>
Returns​

Action<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType }, {}>

Defined in​

src/core/actions/context/enhancers/forInstance.ts:16


forModel​

▸ forModel<C, D, I, M>(model): (action: Action<C>) => Action<Awaited<Awaited<C> & { model: M }> & { baseURL: undefined | string ; modelPath: string }, {}>

Target the given model. Use its type and other applicable model's context.

Type parameters​

NameType
Cextends Object
Dextends Object
Iextends ModelInstance<D>
Mextends Model<D, I>

Parameters​

NameType
modelM

Returns​

fn

▸ (action): Action<Awaited<Awaited<C> & { model: M }> & { baseURL: undefined | string ; modelPath: string }, {}>

Parameters​
NameType
actionAction<C>
Returns​

Action<Awaited<Awaited<C> & { model: M }> & { baseURL: undefined | string ; modelPath: string }, {}>

Defined in​

src/core/actions/context/enhancers/forModel.ts:16


forRelation​

▸ forRelation<C, D, I, K>(instance, relationKey): (action: Action<C>) => Action<Awaited<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, ModelClassInstance<D> & I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: ModelClassInstance<D> & I }> & { id: undefined | ModelIdType }> & { relation: D[K] ; relationPath: string }, {}>

Target the given instance's relation. Use its type and other applicable model/relation context.

Type parameters​

NameType
Cextends Object
Dextends Object
Iextends ModelInstance<D>
Kextends string | number | symbol

Parameters​

NameType
instanceModelClassInstance<D> & I
relationKeyModelRelationKey<D> & K

Returns​

fn

▸ (action): Action<Awaited<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, ModelClassInstance<D> & I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: ModelClassInstance<D> & I }> & { id: undefined | ModelIdType }> & { relation: D[K] ; relationPath: string }, {}>

Parameters​
NameType
actionAction<C>
Returns​

Action<Awaited<Awaited<Awaited<Awaited<Awaited<C> & { model: Model<D, ModelClassInstance<D> & I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: ModelClassInstance<D> & I }> & { id: undefined | ModelIdType }> & { relation: D[K] ; relationPath: string }, {}>

Defined in​

src/core/actions/context/enhancers/forRelation.ts:32


include​

▸ include<C, I>(...relations): (action: Action<C & ConsumeInclude>) => Promise<Action<Awaited<C & ConsumeInclude> & { include: string[] }, {}>>

Eager load the given relations for the current model definition. It accepts deep relations through dot notation. The new relations will be merged with the previous ones.

Type parameters​

NameType
Cextends Object
Iextends never

Parameters​

NameType
...relationsArrayableVariadic<ModelRelationDotKey<I>>

Returns​

fn

▸ (action): Promise<Action<Awaited<C & ConsumeInclude> & { include: string[] }, {}>>

Parameters​
NameType
actionAction<C & ConsumeInclude>
Returns​

Promise<Action<Awaited<C & ConsumeInclude> & { include: string[] }, {}>>

Defined in​

src/core/actions/context/enhancers/include.ts:21


instanceData​

▸ instanceData<C, SD>(instance): (action: Action<C & ConsumeSerializer<SD>>) => Promise<Action<Awaited<C & ConsumeSerializer<SD>> & { data: Awaited<SD> }, {}>>

Serialize the given instance as the context's data.

Type parameters​

NameType
Cextends Object
SDSD

Parameters​

NameType
instanceModelInstance

Returns​

fn

▸ (action): Promise<Action<Awaited<C & ConsumeSerializer<SD>> & { data: Awaited<SD> }, {}>>

Parameters​
NameType
actionAction<C & ConsumeSerializer<SD>>
Returns​

Promise<Action<Awaited<C & ConsumeSerializer<SD>> & { data: Awaited<SD> }, {}>>

Defined in​

src/core/actions/context/enhancers/crud/instanceData.ts:14


onError​

▸ onError<C>(callback): (action: Action<C>) => void

Register a "error" hook callback on action. Callback may be async.

Type parameters​

NameType
Cextends Object

Parameters​

NameType
callback(event: { context: C ; error: unknown }) => Awaitable<void>

Returns​

fn

▸ (action): void

Parameters​
NameType
actionAction<C>
Returns​

void

Defined in​

src/core/actions/context/enhancers/hooks/onError.ts:14


onFinally​

▸ onFinally<C>(callback): (action: Action<C>) => void

Register a "finally" hook callback on action. Callback may be async.

Type parameters​

NameType
Cextends Object

Parameters​

NameType
callback(event: { context: C }) => Awaitable<void>

Returns​

fn

▸ (action): void

Parameters​
NameType
actionAction<C>
Returns​

void

Defined in​

src/core/actions/context/enhancers/hooks/onFinally.ts:14


onRunning​

▸ onRunning<C>(callback): (action: Action<C>) => void

Register a "running" hook callback on action. Callback may be async.

Type parameters​

NameType
Cextends Object

Parameters​

NameType
callback(event: { context: C ; runner: Function }) => Awaitable<void>

Returns​

fn

▸ (action): void

Parameters​
NameType
actionAction<C>
Returns​

void

Defined in​

src/core/actions/context/enhancers/hooks/onRunning.ts:14


onSuccess​

▸ onSuccess<C>(callback): (action: Action<C>) => void

Register a "success" hook callback on action. Callback may be async.

Type parameters​

NameType
Cextends Object

Parameters​

NameType
callback(event: { context: C ; result: unknown }) => Awaitable<void>

Returns​

fn

▸ (action): void

Parameters​
NameType
actionAction<C>
Returns​

void

Defined in​

src/core/actions/context/enhancers/hooks/onSuccess.ts:14


save​

▸ save<C, SD, D, I>(instance): (action: Action<C & ConsumeSerializer<SD>>) => Action<C & ConsumeModel<Model<D, I>> & ConsumeInstance<I> & ConsumeId>

Prepare context for an instance creation or update depending on its existence state. Calls "update" if the instance exists, otherwise call "create".

Type parameters​

NameType
Cextends Object
SDSD
Dextends Object
Iextends ModelInstance<D>

Parameters​

NameType
instanceModelClassInstance<D> & I

Returns​

fn

▸ (action): Action<C & ConsumeModel<Model<D, I>> & ConsumeInstance<I> & ConsumeId>

Parameters​
NameType
actionAction<C & ConsumeSerializer<SD>>
Returns​

Action<C & ConsumeModel<Model<D, I>> & ConsumeInstance<I> & ConsumeId>

Defined in​

src/core/actions/context/enhancers/crud/save.ts:22


target​

▸ target<D, I, M>(model): <C>(action: Action<C>) => Promise<Action<Awaited<C> & { model: M }, {}>>

Only target the given model. In most cases, you should use forModel, find or any other model's enhancers instead of target.

Type parameters​

NameType
Dextends Object
Iextends ModelInstance<D>
Mextends Model<D, I>

Parameters​

NameType
modelM

Returns​

fn

▸ <C>(action): Promise<Action<Awaited<C> & { model: M }, {}>>

Type parameters​
NameType
Cextends Object
Parameters​
NameType
actionAction<C>
Returns​

Promise<Action<Awaited<C> & { model: M }, {}>>

Defined in​

src/core/actions/context/enhancers/target.ts:15


update​

▸ update<C, SD, D, I>(instance): (action: Action<C & ConsumeSerializer<SD>>) => Action<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<C & ConsumeSerializer<SD>> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType } & ConsumeSerializer<SD>> & { data: Awaited<SD> }> & { action: string = 'update' } & ConsumeInstance<I>, {}>

Prepare context for an instance update.

Type parameters​

NameType
Cextends Object
SDSD
Dextends Object
Iextends ModelInstance<D>

Parameters​

NameType
instanceModelClassInstance<D> & I

Returns​

fn

▸ (action): Action<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<C & ConsumeSerializer<SD>> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType } & ConsumeSerializer<SD>> & { data: Awaited<SD> }> & { action: string = 'update' } & ConsumeInstance<I>, {}>

Parameters​
NameType
actionAction<C & ConsumeSerializer<SD>>
Returns​

Action<Awaited<Awaited<Awaited<Awaited<Awaited<Awaited<C & ConsumeSerializer<SD>> & { model: Model<D, I> }> & { baseURL: undefined | string ; modelPath: string }> & { instance: I }> & { id: undefined | ModelIdType } & ConsumeSerializer<SD>> & { data: Awaited<SD> }> & { action: string = 'update' } & ConsumeInstance<I>, {}>

Defined in​

src/core/actions/context/enhancers/crud/update.ts:27

Other​

Action​

Ƭ Action<Context, Extension>: { run: <Result>(runner: ContextRunner<Context, Extension, Result>) => Promise<Awaited<Result>> ; updateContext: <NewContext>(newContext: NewContext) => Action<NewContext, Extension> ; use: <NewContext>(enhancer: ContextEnhancer<Context, Extension, NewContext>) => Action<NewContext, Extension> ; useContext: () => Promise<Context> } & ActionVariadicUse<Context, Extension> & Hookable<ActionHooksDefinition<Context>> & ExtendedAction<Extension>

Type parameters​

NameType
Contextextends Object = {}
Extensionextends Object = {}

Defined in​

src/core/actions/types.ts:27


ActionClass​

Ƭ ActionClass<Context, Extension>: { extends: <NewExtension>(newExtensions?: NewExtension & ThisType<Action<Context, Extension & NewExtension>>) => ActionClass<Context, Extension & NewExtension> } & Constructor<Action<Context, Extension>>

Type parameters​

NameType
Contextextends Object = {}
Extensionextends Object = {}

Defined in​

src/core/actions/types.ts:44


ActionFactory​

Ƭ ActionFactory<Args, Context, Extension>: (...args: Args) => Action<Context, Extension>

Type parameters​

NameType
Argsextends any[]
Contextextends Object
Extensionextends Object

Type declaration​

▸ (...args): Action<Context, Extension>

Parameters​
NameType
...argsArgs
Returns​

Action<Context, Extension>

Defined in​

src/core/actions/types.ts:50


ActionHooksDefinition​

Ƭ ActionHooksDefinition<C>: Object

Type parameters​

NameType
Cextends Object = any

Type declaration​

NameType
errorHookCallback<{ context: C ; error: unknown }>
finallyHookCallback<{ context: C }>
runningHookCallback<{ context: C ; runner: Function }>
successHookCallback<{ context: C ; result: unknown }>

Defined in​

src/core/actions/types.ts:20


ActionParsedExtension​

Ƭ ActionParsedExtension<E>: { [K in keyof E]: E[K] extends DescriptorHolder<any> ? E[K] : DescriptorHolder<E[K]> }

Type parameters​

NameType
Eextends Object = {}

Defined in​

src/core/actions/types.ts:54


AdapterI​

Ƭ AdapterI<Data>: Object

Type parameters​

Name
Data

Type declaration​

NameType
execute(context: {}) => Awaitable<Data>
isNotFound(error: unknown) => Awaitable<boolean>

Defined in​

src/core/types.ts:16


AllData​

Ƭ AllData<AD, DD, I>: Object

Type parameters​

NameType
ADAD
DDextends DeserializedData
Iextends ModelInstance

Type declaration​

NameType
dataAD
deserializedDD
instancesI[]

Defined in​

src/core/actions/context/runners/all.ts:17


CacheI​

Ƭ CacheI: Object

Type declaration​

NameType
clear() => Promise<void>
find(type: string, id: ModelIdType) => Promise<null | ModelInstance>
forget(type: string, id: ModelIdType) => Promise<void>
forgetAll(type: string) => Promise<void>
put(type: string, id: ModelIdType, instance: ModelInstance) => Promise<void>

Defined in​

src/core/types.ts:8


ConsumeAction​

Ƭ ConsumeAction: Object

Type declaration​

NameType
action"read" | "create" | "update" | "destroy" | string

Defined in​

src/core/actions/types.ts:78


ConsumeAdapter​

Ƭ ConsumeAdapter<AdapterData>: Object

Type parameters​

NameType
AdapterDataunknown

Type declaration​

NameType
adapterAdapterI<AdapterData>

Defined in​

src/core/actions/types.ts:118


ConsumeCache​

Ƭ ConsumeCache: Object

Type declaration​

NameType
cacheCacheI

Defined in​

src/core/actions/types.ts:114


ConsumeData​

Ƭ ConsumeData: Object

Type declaration​

NameType
dataunknown

Defined in​

src/core/actions/types.ts:82


ConsumeDeserializer​

Ƭ ConsumeDeserializer<AdapterData, Data>: Object

Type parameters​

NameType
AdapterDataunknown
Dataextends DeserializedData = DeserializedData

Type declaration​

NameType
deserializerDeserializerI<AdapterData, Data>

Defined in​

src/core/actions/types.ts:122


ConsumeId​

Ƭ ConsumeId: Object

Type declaration​

NameType
id?ModelIdType

Defined in​

src/core/actions/types.ts:106


ConsumeInclude​

Ƭ ConsumeInclude: Object

Type declaration​

NameType
include?string[]

Defined in​

src/core/actions/types.ts:110


ConsumeInstance​

Ƭ ConsumeInstance<I>: Object

Type parameters​

NameType
Iextends ModelInstance = ModelInstance

Type declaration​

NameType
instanceI

Defined in​

src/core/actions/types.ts:94


ConsumeModel​

Ƭ ConsumeModel<M>: Object

Type parameters​

NameType
Mextends Model = Model

Type declaration​

NameType
modelM

Defined in​

src/core/actions/types.ts:86


ConsumeModelPath​

Ƭ ConsumeModelPath: Object

Type declaration​

NameType
modelPathstring

Defined in​

src/core/actions/types.ts:90


ConsumeRegistry​

Ƭ ConsumeRegistry: Object

Type declaration​

NameType
registryRegistryI

Defined in​

src/core/actions/types.ts:116


ConsumeRelation​

Ƭ ConsumeRelation<R>: Object

Type parameters​

NameType
Rextends ModelRelation = ModelRelation

Type declaration​

NameType
relationR

Defined in​

src/core/actions/types.ts:98


ConsumeRelationPath​

Ƭ ConsumeRelationPath: Object

Type declaration​

NameType
relationPathstring

Defined in​

src/core/actions/types.ts:102


ConsumeSerializer​

Ƭ ConsumeSerializer<Data>: Object

Type parameters​

NameType
Dataunknown

Type declaration​

NameType
serializerSerializerI<Data>

Defined in​

src/core/actions/types.ts:129


ContextEnhancer​

Ƭ ContextEnhancer<C, E, NC>: (action: Action<C, E>) => Awaitable<Action<NC, E> | Action<NC> | void>

Type parameters​

NameType
Cextends Object
Eextends Object
NCextends Object

Type declaration​

▸ (action): Awaitable<Action<NC, E> | Action<NC> | void>

Parameters​
NameType
actionAction<C, E>
Returns​

Awaitable<Action<NC, E> | Action<NC> | void>

Defined in​

src/core/actions/types.ts:62


ContextRunner​

Ƭ ContextRunner<C, E, R>: (action: Action<C, E>) => R

Type parameters​

NameType
Cextends Object
Eextends Object
RR

Type declaration​

▸ (action): R

Parameters​
NameType
actionAction<C, E>
Returns​

R

Defined in​

src/core/actions/types.ts:66


DeserializedData​

Ƭ DeserializedData<I>: Object

Type parameters​

NameType
Iextends ModelInstance = ModelInstance

Type declaration​

NameType
instancesI[]

Defined in​

src/core/types.ts:25


DeserializerI​

Ƭ DeserializerI<AdapterData, Data>: Object

Type parameters​

NameType
AdapterDataAdapterData
Dataextends DeserializedData

Type declaration​

NameType
deserialize(data: AdapterData, context: {}) => Awaitable<Data>

Defined in​

src/core/types.ts:29


ExtendedAction​

Ƭ ExtendedAction<E>: { [K in keyof E]: E[K] extends DescriptorHolder<infer T> ? T : E[K] }

Type parameters​

NameType
Eextends Object

Defined in​

src/core/actions/types.ts:58


FunctionTransform​

Ƭ FunctionTransform<T, S>: (value: S) => Awaitable<T>

Type parameters​

Name
T
S

Type declaration​

▸ (value): Awaitable<T>

Parameters​
NameType
valueS
Returns​

Awaitable<T>

Defined in​

src/core/transformers/types.ts:3


HookCallback​

Ƭ HookCallback<E>: (event: E) => Awaitable<void>

Type parameters​

Name
E

Type declaration​

▸ (event): Awaitable<void>

Parameters​
NameType
eventE
Returns​

Awaitable<void>

Defined in​

src/core/hooks/types.ts:3


Hookable​

Ƭ Hookable<D>: Object

Type parameters​

NameType
Dextends HooksDefinition

Type declaration​

NameType
$hooksHooksRegistrar<D> | null

Defined in​

src/core/hooks/types.ts:11


HooksDefinition​

Ƭ HooksDefinition: Dictionary<HookCallback<any>>

Defined in​

src/core/hooks/types.ts:5


HooksRegistrar​

Ƭ HooksRegistrar<D>: { [K in keyof D]?: D[K][] }

Type parameters​

NameType
Dextends HooksDefinition

Defined in​

src/core/hooks/types.ts:7


InferConsumedInstance​

Ƭ InferConsumedInstance<C>: C extends { relation: ModelRelationRaw<infer I[]> } ? I extends ModelInstance ? I : never : C extends { relation: ModelRelationRaw<infer I> } ? I extends ModelInstance ? I : never : C extends { model: Constructor<infer I> } ? I extends ModelInstance ? I : never : never

Type parameters​

NameType
Cextends Object

Defined in​

src/core/actions/types.ts:70


MapRegistryConfig​

Ƭ MapRegistryConfig: Object

Type declaration​

NameType
normalizeType?Optional<Normalizer<string>>
prepareModel?Optional<ModelPreparator>

Defined in​

src/core/registry/types.ts:9


Model​

Ƭ Model<D, I>: ModelClass<D> & Constructor<I>

Model class of a dedicated instance. This type is used to keep instance generic typing across actions enhancements.

Type parameters​

NameType
Dextends Object = any
Iextends ModelInstance<D> = any

Defined in​

src/core/model/types.ts:244


ModelAttribute​

Ƭ ModelAttribute<K, T, R>: ModelPropNormalized<K> & ModelAttributeRaw<T, R>

Definition for a model's attribute.

Type parameters​

NameType
Kstring
Tany
Rextends boolean = boolean

Defined in​

src/core/model/types.ts:144


ModelAttributeRaw​

Ƭ ModelAttributeRaw<T, R>: { $MODEL_TYPE: "attribute" ; transformer?: Transform<T | null> } & ModelPropRaw<T, R>

Raw definition for a model's attribute.

Type parameters​

NameType
Tunknown
Rextends boolean = boolean

Defined in​

src/core/model/types.ts:133


ModelClass​

Ƭ ModelClass<D>: Hookable<ModelHooksDefinition> & { $MODEL_TYPE: "model" ; $config: ModelConfig ; $schema: ModelSchema<D> ; $type: string ; configure: (rawConfig?: ModelConfig, override?: boolean) => void ; extends: <ND>(rawDefinition?: ND & ThisType<ModelInstance<D & ND>>) => Model<D & ND, ModelInstance<D & ND>> }

Extendable model class holding the configuration and schema.

Type parameters​

NameType
Dextends Object = any

Defined in​

src/core/model/types.ts:226


ModelClassInstance​

Ƭ ModelClassInstance<D>: Object

Model instance for a dedicated model class. This type is used to keep instance generic typing across actions enhancements.

Type parameters​

NameType
Dextends Object = any

Type declaration​

NameType
$modelModelClass<D>

Defined in​

src/core/model/types.ts:252


ModelClassOrInstance​

Ƭ ModelClassOrInstance<D>: ModelClass<D> | ModelClassInstance<D>

Model class or instance.

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:354


ModelConfig​

Ƭ ModelConfig: Object

Configuration of a model class.

Type declaration​

NameTypeDescription
baseURL?Optional<string>Dedicated base URL. Will overwrite the default base URL.
cloneValue?Optional<<T>(value: T) => T>Clone two values when sync model instances values state. Param See - restore - markSynced
compareValue?Optional<(nextValue: unknown, prevValue: unknown) => boolean>Compare two values when checking model instance changed values. Param Param See changed
guessRelationType?Optional<ModelRelationTypeGuesser>Guess the type for a given relation.
normalizeAttributeKey?Optional<Normalizer<string>>Normalize an attribute key when (de)serializing for data source. Prioritized over normalizeKey.
normalizeKey?Optional<Normalizer<string>>Normalize an attribute/relation key when (de)serializing for data source.
normalizeModelPath?Optional<Normalizer<string>>Normalize a model path when injecting it inside an action context. Prioritized over normalizePath.
normalizePath?Optional<Normalizer<string>>Normalize a model/relation path when injecting it inside an action context.
normalizeRelationKey?Optional<Normalizer<string>>Normalize a relation key when (de)serializing for data source. Prioritized over normalizeKey.
normalizeRelationPath?Optional<Normalizer<string>>Normalize a relation path when injecting it inside an action context. Prioritized over normalizePath.
path?Optional<string>Path which is used to query the model. Defaults to the model's type.

Defined in​

src/core/model/types.ts:9


ModelDefinitionDescriptorKey​

Ƭ ModelDefinitionDescriptorKey<D>: { [K in keyof D]: D[K] extends DescriptorHolder<any> ? K : never }[keyof D]

Model descriptors key (only custom properties).

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:295


ModelDefinitionDescriptors​

Ƭ ModelDefinitionDescriptors<D>: Pick<ModelDefinitionProperties<D>, ModelDefinitionDescriptorKey<D>>

Model descriptors map (only custom properties).

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:321


ModelDefinitionProperties​

Ƭ ModelDefinitionProperties<D>: ModelIdsDefaults<D> & { [K in keyof D]: D[K] extends ModelAttribute<K, infer T, any> ? T : D[K] extends ModelRelation<K, infer T, any> ? T : D[K] extends ModelId<K, infer T, any> ? T : D[K] extends DescriptorHolder<infer T> ? T : D[K] }

Model properties map (IDs/attributes/relations/custom props).

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:266


ModelDefinitionReadOnlyKey​

Ƭ ModelDefinitionReadOnlyKey<D>: { [K in keyof D]: D[K] extends DescriptorHolder<any> ? never : D[K] extends Object ? K : never }[keyof D]

Model properties key (only readonly IDs/attributes/relations).

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:286


ModelDefinitionReadOnlyValues​

Ƭ ModelDefinitionReadOnlyValues<D>: Readonly<Pick<ModelDefinitionProperties<D>, ModelDefinitionReadOnlyKey<D>>>

Model properties map (only readonly IDs/attributes/relations).

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:308


ModelDefinitionValues​

Ƭ ModelDefinitionValues<D>: ModelDefinitionWritableValues<D> & ModelDefinitionReadOnlyValues<D>

Model properties map (IDs/attributes/relations).

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:314


ModelDefinitionWritableKey​

Ƭ ModelDefinitionWritableKey<D>: { [K in keyof D]: D[K] extends DescriptorHolder<any> ? never : D[K] extends Object ? never : K }[keyof D] | keyof ModelIdsDefaults<D>

Model properties key (only writable IDs/attributes/relations).

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:277


ModelDefinitionWritableValues​

Ƭ ModelDefinitionWritableValues<D>: Pick<ModelDefinitionProperties<D>, ModelDefinitionWritableKey<D>>

Model properties map (only writable IDs/attributes/relations).

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:302


ModelHookCallback​

Ƭ ModelHookCallback: HookCallback<ModelInstance>

Model generic hook callback function.

Defined in​

src/core/model/types.ts:206


ModelHooksDefinition​

Ƭ ModelHooksDefinition: Object

Model's hooks definition.

Type declaration​

NameType
createdModelHookCallback
creatingModelHookCallback
destroyedModelHookCallback
destroyingModelHookCallback
retrievedModelHookCallback
savedModelHookCallback
savingModelHookCallback
updatedModelHookCallback
updatingModelHookCallback

Defined in​

src/core/model/types.ts:211


ModelId​

Ƭ ModelId<K, T, R>: ModelPropNormalized<K> & ModelIdRaw<T, R>

Definition for a model's ID.

Type parameters​

NameType
Kstring
Textends ModelIdType | null = any
Rextends boolean = boolean

Defined in​

src/core/model/types.ts:126


ModelIdRaw​

Ƭ ModelIdRaw<T, R>: { $MODEL_TYPE: "id" ; transformer?: Transform<T | null> } & ModelPropRaw<T, R>

Raw Definition for a model's ID.

Type parameters​

NameType
Textends ModelIdType | null = any
Rextends boolean = boolean

Defined in​

src/core/model/types.ts:118


ModelIdType​

Ƭ ModelIdType: string | number

Model instance ID default typing.

Defined in​

src/core/model/types.ts:79


ModelIdsDefaults​

Ƭ ModelIdsDefaults<D>: D extends { id: any } ? {} : { id: ModelIdType | null } & D extends { lid: any } ? {} : { lid: ModelIdType | null }

Model defaults IDs typing when not defined by definition.

Type parameters​

NameType
Dextends Object

Defined in​

src/core/model/types.ts:259


ModelInferDefinition​

Ƭ ModelInferDefinition<M>: M extends ModelClassOrInstance<infer D> ? D : M extends {} ? M : never

Infer the definition from a model class or model instance.

Type parameters​

Name
M

Defined in​

src/core/model/types.ts:359


ModelInferSchema​

Ƭ ModelInferSchema<M>: ModelSchema<ModelInferDefinition<M>>

Infer the schema from a model class or model instance.

Type parameters​

Name
M

Defined in​

src/core/model/types.ts:368


ModelInstance​

Ƭ ModelInstance<D>: { $MODEL_TYPE: "instance" ; $loaded: Dictionary<true> ; $model: ModelClass<D> ; $original: ModelSnapshot<D> ; $raw: any ; $values: Partial<ModelValues<D>> ; exists: boolean } & ModelDefinitionValues<D> & ModelDefinitionDescriptors<D>

Model instance holding state and values.

Type parameters​

NameType
Dextends Object = any

Defined in​

src/core/model/types.ts:327


ModelKey​

Ƭ ModelKey<M>: string & keyof ModelInferSchema<M> & keyof ModelValues<M>

Model class or instance IDs/attributes/relations key.

Type parameters​

Name
M

Defined in​

src/core/model/types.ts:388


ModelParsedDefinition​

Ƭ ModelParsedDefinition<D>: { [K in keyof D]: D[K] extends ModelAttributeRaw<any, any> ? D[K] & ModelPropNormalized<K> : D[K] extends ModelRelationRaw<any, any> ? D[K] & ModelPropNormalized<K> : D[K] extends ModelIdRaw<any, any> ? D[K] & ModelPropNormalized<K> : D[K] extends DescriptorHolder<any> ? D[K] : DescriptorHolder<D[K]> }

The parsed model definition with non attributes/relations properties' descriptors wrapped in holders.

Type parameters​

NameType
Dextends Object = {}

Defined in​

src/core/model/types.ts:177


ModelPreparator​

Ƭ ModelPreparator: (model: Model) => Awaitable<void>

Type declaration​

▸ (model): Awaitable<void>

Parameters​
NameType
modelModel
Returns​

Awaitable<void>

Defined in​

src/core/registry/types.ts:7


ModelPropNormalized​

Ƭ ModelPropNormalized<K>: Object

Normalized part of a property's definition (attribute or relation).

Type parameters​

NameType
Kstring

Type declaration​

NameType
keyK

Defined in​

src/core/model/types.ts:89


ModelPropRaw​

Ƭ ModelPropRaw<T, R>: Object

Raw definition for a model's property (attribute or relation).

Type parameters​

NameType
Tunknown
Rextends boolean = boolean

Type declaration​

NameTypeDescription
alias?stringAlias of the property (might be used when (de)serializing).
default?T | () => TDefault value for the property.
readOnly?RMakes the property read-only.
sync?boolean | ModelPropSyncTells if the property should be synced with the data store.

Defined in​

src/core/model/types.ts:96


ModelPropSync​

Ƭ ModelPropSync: "retrieve" | "write"

Sync precise configuration for a property (will only do defined action).

Defined in​

src/core/model/types.ts:84


ModelReadOnlyValues​

Ƭ ModelReadOnlyValues<M>: ModelDefinitionReadOnlyValues<ModelInferDefinition<M>>

Model class or instance values map (only readonly IDs/attributes/relations).

Type parameters​

Name
M

Defined in​

src/core/model/types.ts:383


ModelRelation​

Ƭ ModelRelation<K, T, R>: ModelPropNormalized<K> & ModelRelationRaw<T, R>

Definition for a model's attribute.

Type parameters​

NameType
Kstring
Tany
Rextends boolean = boolean

Defined in​

src/core/model/types.ts:169


ModelRelationDotKey​

Ƭ ModelRelationDotKey<M, Depth>: [Depth] extends [0] ? never : keyof ModelInferSchema<M> extends infer K ? K extends string & keyof ModelInferSchema<M> & keyof ModelValues<M> ? ModelInferSchema<M>[K] extends never ? never : ModelInferSchema<M>[K] extends ModelRelation<any, infer T> ? T extends any[] ? K | `${K}.${ModelRelationDotKey<T[number], Prev[Depth]>}` : K | `${K}.${ModelRelationDotKey<T, Prev[Depth]>}` : never : never : never

Model class or instance relations key (supports nested relation using dot separator).

Example

const keys: ModelRelationDotKey<Post>[] = ['comments', 'comments.author', 'tags'];

Type parameters​

NameType
MM
Depthextends number = 5

Defined in​

src/core/model/types.ts:414


ModelRelationKey​

Ƭ ModelRelationKey<M>: keyof ModelInferSchema<M> extends infer K ? K extends string & keyof ModelInferSchema<M> & keyof ModelValues<M> ? ModelInferSchema<M>[K] extends never ? never : ModelInferSchema<M>[K] extends ModelRelation ? K : never : never : never

Model class or instance relations key (only direct relations).

Example

const keys: ModelRelationKey<Post>[] = ['comments', 'tags'];

Type parameters​

Name
M

Defined in​

src/core/model/types.ts:399


ModelRelationRaw​

Ƭ ModelRelationRaw<T, R>: { $MODEL_TYPE: "relation" ; $RELATION_TYPE: ModelRelationType ; path?: string ; type?: string } & ModelPropRaw<T, R>

Raw definition for a model's relation.

Type parameters​

NameType
Tany
Rextends boolean = boolean

Defined in​

src/core/model/types.ts:156


ModelRelationType​

Ƭ ModelRelationType: "hasOne" | "hasMany"

Available model relation types.

Defined in​

src/core/model/types.ts:151


ModelRelationTypeGuesser​

Ƭ ModelRelationTypeGuesser: (model: ModelClass, def: ModelRelation) => Optional<string>

Type declaration​

▸ (model, def): Optional<string>

Guess a model's relation related type.

Parameters​
NameType
modelModelClass
defModelRelation
Returns​

Optional<string>

Defined in​

src/core/model/types.ts:74


ModelResolver​

Ƭ ModelResolver: () => Promise<Model>

Type declaration​

▸ (): Promise<Model>

Returns​

Promise<Model>

Defined in​

src/core/registry/types.ts:5


ModelSchema​

Ƭ ModelSchema<D>: { [K in keyof D]: D[K] extends ModelAttribute<K, any, any> ? D[K] : D[K] extends ModelRelation<K, any, any> ? D[K] : D[K] extends ModelId<K, any, any> ? D[K] : never }

Extract model's IDs, attributes and relations from the whole definition.

Type parameters​

NameType
Dextends Object = {}

Defined in​

src/core/model/types.ts:188


ModelSchemaRelations​

Ƭ ModelSchemaRelations<D>: { [K in keyof D]: D[K] extends ModelRelation<K> ? D[K] : never }

Extract model's relations from the whole definition.

Type parameters​

NameType
Dextends Object = {}

Defined in​

src/core/model/types.ts:198


ModelSnapshot​

Ƭ ModelSnapshot<M>: Object

Model class or instance snapshot.

Type parameters​

Name
M

Type declaration​

NameType
$loadedDictionary<true>
$modelModelClass
$rawany
$valuesPartial<ModelValues<M>>
existsboolean

Defined in​

src/core/model/types.ts:343


ModelValues​

Ƭ ModelValues<M>: ModelDefinitionValues<ModelInferDefinition<M>>

Model class or instance values map (only IDs/attributes/relations).

Type parameters​

Name
M

Defined in​

src/core/model/types.ts:373


ModelWritableValues​

Ƭ ModelWritableValues<M>: ModelDefinitionWritableValues<ModelInferDefinition<M>>

Model class or instance values map (only writable IDs/attributes/relations).

Type parameters​

Name
M

Defined in​

src/core/model/types.ts:378


Normalizer​

Ƭ Normalizer<T, U>: (value: T) => U

Type parameters​

NameType
TT
UT

Type declaration​

▸ (value): U

Parameters​
NameType
valueT
Returns​

U

Defined in​

src/core/normalization/types.ts:1


ObjectTransform​

Ƭ ObjectTransform<T, S>: Object

Type parameters​

Name
T
S

Type declaration​

NameType
deserialize(value: S) => Awaitable<T>
serialize(value: T) => Awaitable<S>

Defined in​

src/core/transformers/types.ts:5


OneData​

Ƭ OneData<AD, DD, I>: AllData<AD, DD, I> & { instance: I }

Type parameters​

NameType
ADAD
DDextends DeserializedData
Iextends ModelInstance

Defined in​

src/core/actions/context/runners/oneOr.ts:17


RefsCacheConfig​

Ƭ RefsCacheConfig<R>: Object

Type parameters​

NameType
Runknown

Type declaration​

NameType
mode?RefsCacheMode<R>

Defined in​

src/core/cache/types.ts:9


RefsCacheMode​

Ƭ RefsCacheMode<R>: Object

Type parameters​

Name
R

Type declaration​

NameType
ref(instance: ModelInstance) => Awaitable<R>
value(ref: R) => Awaitable<undefined | ModelInstance>

Defined in​

src/core/cache/types.ts:4


RegistryI​

Ƭ RegistryI: Object

Type declaration​

NameType
modelFor(rawType: string) => Promise<null | Model>

Defined in​

src/core/types.ts:4


SerializerI​

Ƭ SerializerI<Data>: Object

Type parameters​

Name
Data

Type declaration​

NameType
serialize(instance: ModelInstance, context: {}) => Awaitable<Data>

Defined in​

src/core/types.ts:21


Transform​

Ƭ Transform<T, S>: FunctionTransform<T, S> | ObjectTransform<T, S>

Type parameters​

NameType
TT
Sunknown

Defined in​

src/core/transformers/types.ts:10


logger​

• logger: Logger

Defined in​

src/core/logger/logger.ts:49


weakRefCacheMode​

• Const weakRefCacheMode: RefsCacheMode<WeakRef<ModelInstance>>

Defined in​

src/core/cache/weakRefCacheMode.ts:4


attr​

▸ attr<T>(...config): ModelAttributeRaw<T, false>

Type parameters​

Name
T

Parameters​

NameType
...configAttrOptionsVariadic<T>

Returns​

ModelAttributeRaw<T, false>

Defined in​

src/core/model/props/factories/attr.ts:14


changed​

▸ changed<I>(instance, ...only): boolean

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
instanceI
...onlyArrayableVariadic<ModelKey<I>>

Returns​

boolean

Defined in​

src/core/model/snapshots/changed.ts:6


compareSnapshots​

▸ compareSnapshots<M>(nextSnapshot, prevSnapshot, ...only): boolean

Type parameters​

NameType
Mextends ModelClass

Parameters​

NameType
nextSnapshotModelSnapshot<M>
prevSnapshotModelSnapshot<M>
...onlyArrayableVariadic<ModelKey<M>>

Returns​

boolean

Defined in​

src/core/model/snapshots/compareSnapshots.ts:6


consumeAction​

▸ consumeAction<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeAction>["action"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeAction>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeAction>["action"], undefined>

Defined in​

src/core/actions/context/consumers/consumeAction.ts:4


consumeAdapter​

▸ consumeAdapter<C, AD, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeAdapter<AD>>["adapter"], undefined>

Type parameters​

NameType
Cextends Object
ADAD
Dnever

Parameters​

NameType
contextC & Partial<ConsumeAdapter<AD>>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeAdapter<AD>>["adapter"], undefined>

Defined in​

src/core/actions/context/consumers/consumeAdapter.ts:4


consumeCache​

▸ consumeCache<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeCache>["cache"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeCache>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeCache>["cache"], undefined>

Defined in​

src/core/actions/context/consumers/consumeCache.ts:4


consumeContext​

▸ consumeContext<Context, Key, Default>(context, key, enhancers, defaultValue?): Exclude<Context[Key] | Default, undefined>

Type parameters​

NameType
Contextextends Object
Keyextends string | number | symbol
Defaultnever

Parameters​

NameType
contextContext
keyKey
enhancersstring[]
defaultValue?Default

Returns​

Exclude<Context[Key] | Default, undefined>

Defined in​

src/core/actions/context/consumers/consumeContext.ts:4


consumeData​

▸ consumeData<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeData>["data"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeData>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeData>["data"], undefined>

Defined in​

src/core/actions/context/consumers/consumeData.ts:4


consumeDeserializer​

▸ consumeDeserializer<C, AD, DD, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeDeserializer<AD, DD>>["deserializer"], undefined>

Type parameters​

NameType
Cextends Object
ADAD
DDextends DeserializedData
Dnever

Parameters​

NameType
contextC & Partial<ConsumeDeserializer<AD, DD>>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeDeserializer<AD, DD>>["deserializer"], undefined>

Defined in​

src/core/actions/context/consumers/consumeDeserializer.ts:5


consumeId​

▸ consumeId<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeId>["id"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeId>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeId>["id"], undefined>

Defined in​

src/core/actions/context/consumers/consumeId.ts:4


consumeInclude​

▸ consumeInclude<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeInclude>["include"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeInclude>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeInclude>["include"], undefined>

Defined in​

src/core/actions/context/consumers/consumeInclude.ts:4


consumeInstance​

▸ consumeInstance<C, I, D>(context, defaultValue?): I | D

Type parameters​

NameType
Cextends Object
Iextends ModelInstance
Dnever

Parameters​

NameType
contextC & Partial<ConsumeInstance<I>>
defaultValue?D

Returns​

I | D

Defined in​

src/core/actions/context/consumers/consumeInstance.ts:5


consumeModel​

▸ consumeModel<C, M, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeModel<M>>["model"], undefined>

Type parameters​

NameType
Cextends Object
Mextends Model
Dnever

Parameters​

NameType
contextC & Partial<ConsumeModel<M>>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeModel<M>>["model"], undefined>

Defined in​

src/core/actions/context/consumers/consumeModel.ts:5


consumeModelPath​

▸ consumeModelPath<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeModelPath>["modelPath"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeModelPath>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeModelPath>["modelPath"], undefined>

Defined in​

src/core/actions/context/consumers/consumeModelPath.ts:4


consumeRegistry​

▸ consumeRegistry<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeRegistry>["registry"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeRegistry>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeRegistry>["registry"], undefined>

Defined in​

src/core/actions/context/consumers/consumeRegistry.ts:4


consumeRelation​

▸ consumeRelation<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeRelation>["relation"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeRelation>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeRelation>["relation"], undefined>

Defined in​

src/core/actions/context/consumers/consumeRelation.ts:4


consumeRelationPath​

▸ consumeRelationPath<C, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeRelationPath>["relationPath"], undefined>

Type parameters​

NameType
Cextends Object
Dnever

Parameters​

NameType
contextC & Partial<ConsumeRelationPath>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeRelationPath>["relationPath"], undefined>

Defined in​

src/core/actions/context/consumers/consumeRelationPath.ts:4


consumeSerializer​

▸ consumeSerializer<C, SD, D>(context, defaultValue?): Exclude<D, undefined> | Exclude<C & Partial<ConsumeSerializer<SD>>["serializer"], undefined>

Type parameters​

NameType
Cextends Object
SDSD
Dnever

Parameters​

NameType
contextC & Partial<ConsumeSerializer<SD>>
defaultValue?D

Returns​

Exclude<D, undefined> | Exclude<C & Partial<ConsumeSerializer<SD>>["serializer"], undefined>

Defined in​

src/core/actions/context/consumers/consumeSerializer.ts:4


fill​

▸ fill<I>(instance, values): I

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
instanceI
valuesPartial<ModelWritableValues<I>>

Returns​

I

Defined in​

src/core/model/fill.ts:4


hasMany​

▸ hasMany<T>(config?): ModelRelationRaw<T[]>

Type parameters​

Name
T

Parameters​

NameType
configstring | HasManyOptions<T[]>

Returns​

ModelRelationRaw<T[]>

Defined in​

src/core/model/props/factories/hasMany.ts:6


hasOne​

▸ hasOne<T>(config?): ModelRelationRaw<T>

Type parameters​

Name
T

Parameters​

NameType
configstring | HasOneOptions<T>

Returns​

ModelRelationRaw<T>

Defined in​

src/core/model/props/factories/hasOne.ts:6


id​

▸ id<T>(config?): ModelIdRaw<T, false>

Type parameters​

NameType
Textends null | ModelIdType = ModelIdType

Parameters​

NameType
configIdOptions<T> | Transform<null | T>

Returns​

ModelIdRaw<T, false>

Defined in​

src/core/model/props/factories/id.ts:8


isAttributeDef​

▸ isAttributeDef(value): value is ModelAttribute<any>

Parameters​

NameType
valueunknown

Returns​

value is ModelAttribute<any>

Defined in​

src/core/model/props/checks/isAttributeDef.ts:4


isIdDef​

▸ isIdDef(value): value is ModelId<any>

Parameters​

NameType
valueunknown

Returns​

value is ModelId<any>

Defined in​

src/core/model/props/checks/isIdDef.ts:4


isInstance​

▸ isInstance<I>(value): value is I

Type parameters​

NameType
Iextends ModelInstance = ModelInstance

Parameters​

NameType
valueunknown

Returns​

value is I

Defined in​

src/core/model/props/checks/isInstance.ts:4


isModel​

▸ isModel<M>(value): value is M

Type parameters​

NameType
Mextends Model | ModelClass

Parameters​

NameType
valueunknown

Returns​

value is M

Defined in​

src/core/model/props/checks/isModel.ts:4


isPluralRelationDef​

▸ isPluralRelationDef(def): boolean

Parameters​

NameType
defModelRelation

Returns​

boolean

Defined in​

src/core/model/props/checks/isPluralRelationDef.ts:3


isPropDef​

▸ isPropDef(def): def is ModelRelation<any> | ModelAttribute<any> | ModelId<any>

Parameters​

NameType
defunknown

Returns​

def is ModelRelation<any> | ModelAttribute<any> | ModelId<any>

Defined in​

src/core/model/props/checks/isPropDef.ts:6


isRelationDef​

▸ isRelationDef(value): value is ModelRelation<any>

Parameters​

NameType
valueunknown

Returns​

value is ModelRelation<any>

Defined in​

src/core/model/props/checks/isRelationDef.ts:4


isSame​

▸ isSame(value, otherValue): boolean

Parameters​

NameType
valueunknown
otherValueunknown

Returns​

boolean

Defined in​

src/core/model/isSame.ts:4


loaded​

▸ loaded<I>(instance, ...relations): boolean

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
instanceI
...relationsArrayableVariadic<ModelRelationDotKey<I>>

Returns​

boolean

Defined in​

src/core/model/relations/loaded.ts:7


makeActionClass​

▸ makeActionClass<Extension>(extensions?): ActionClass<{}, Extension>

Type parameters​

NameType
Extensionextends Object = {}

Parameters​

NameType
extensions?Extension & ThisType<Action<{}, Extension>>

Returns​

ActionClass<{}, Extension>

Defined in​

src/core/actions/makeActionClass.ts:15


makeComposable​

▸ makeComposable<D>(rawDefinition?): ModelParsedDefinition<D>

Create a composable definition which will be used by a model factory.

Type parameters​

NameType
Dextends Object = {}

Parameters​

NameType
rawDefinition?D & ThisType<ModelInstance<ModelParsedDefinition<D>>>

Returns​

ModelParsedDefinition<D>

Defined in​

src/core/model/makeComposable.ts:9


makeEnhancersExtension​

▸ makeEnhancersExtension<E>(enhancersMap): ActionParsedExtension<{}>

Takes a dictionary of enhancers and returns an extension providing those enhancers features.

Type parameters​

NameType
Eextends Dictionary<any> = {}

Parameters​

NameType
enhancersMapE

Returns​

ActionParsedExtension<{}>

Todo

This function returns value should be generically typed.

Defined in​

src/core/actions/extensions/makeEnhancersExtension.ts:13


makeForRelationLoader​

▸ makeForRelationLoader<AD, DD>(action): <I>(instances: Arrayable<I>, ...relations: ArrayableVariadic<ModelRelationKey<I>>) => Promise<void>

Type parameters​

NameType
ADAD
DDextends DeserializedData

Parameters​

NameType
actionActionFactory<[], ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, {}>

Returns​

fn

▸ <I>(instances, ...relations): Promise<void>

Type parameters​
NameType
Iextends ModelInstance
Parameters​
NameType
instancesArrayable<I>
...relationsArrayableVariadic<ModelRelationKey<I>>
Returns​

Promise<void>

Defined in​

src/core/model/relations/makeForRelationLoader.ts:9


makeModel​

▸ makeModel<D>(rawConfig, rawDefinition?): Model<ModelParsedDefinition<{} & D>, ModelInstance<ModelParsedDefinition<{} & D>>>

Type parameters​

NameType
Dextends Object = {}

Parameters​

NameType
rawConfigstring | ModelConfig & { type: string }
rawDefinition?D & ThisType<ModelInstance<ModelParsedDefinition<{} & D>>>

Returns​

Model<ModelParsedDefinition<{} & D>, ModelInstance<ModelParsedDefinition<{} & D>>>

Defined in​

src/core/model/makeModelFactory.ts:9


makeModelFactory​

▸ makeModelFactory<ND>(baseRawDefinition?, baseConfig?): <D>(rawConfig: string | ModelConfig & { type: string }, rawDefinition?: D & ThisType<ModelInstance<ModelParsedDefinition<ND & D>>>) => Model<ModelParsedDefinition<ND & D>, ModelInstance<ModelParsedDefinition<ND & D>>>

Type parameters​

NameType
NDextends Object = {}

Parameters​

NameType
baseRawDefinition?ND & ThisType<ModelInstance<ModelParsedDefinition<ND>>>
baseConfig?ModelConfig

Returns​

fn

▸ <D>(rawConfig, rawDefinition?): Model<ModelParsedDefinition<ND & D>, ModelInstance<ModelParsedDefinition<ND & D>>>

Type parameters​
NameType
Dextends Object = {}
Parameters​
NameType
rawConfigstring | ModelConfig & { type: string }
rawDefinition?D & ThisType<ModelInstance<ModelParsedDefinition<ND & D>>>
Returns​

Model<ModelParsedDefinition<ND & D>, ModelInstance<ModelParsedDefinition<ND & D>>>

Defined in​

src/core/model/makeModelFactory.ts:5


makeRefreshIncludeLoader​

▸ makeRefreshIncludeLoader<AD, DD, C>(action, options): <I>(instances: Arrayable<I>, ...relations: ArrayableVariadic<ModelRelationDotKey<I>>) => Promise<void>

Type parameters​

NameType
ADAD
DDextends DeserializedData
Cextends ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>

Parameters​

NameType
actionActionFactory<[], C, {}>
optionsIncludeLoaderOptions<AD, DD, C>

Returns​

fn

▸ <I>(instances, ...relations): Promise<void>

Type parameters​
NameType
Iextends ModelInstance
Parameters​
NameType
instancesArrayable<I>
...relationsArrayableVariadic<ModelRelationDotKey<I>>
Returns​

Promise<void>

Defined in​

src/core/model/relations/makeRefreshIncludeLoader.ts:82


makeRunnersExtension​

▸ makeRunnersExtension<R>(runnersMap): ActionParsedExtension<{}>

Takes a dictionary of runners and returns an extension providing those runners features.

Type parameters​

NameType
Rextends Dictionary<(...args: any[]) => ContextRunner<any, any, any>> = {}

Parameters​

NameTypeDescription
runnersMapR* *

Returns​

ActionParsedExtension<{}>

Todo

This function returns value should be generically typed.

Defined in​

src/core/actions/extensions/makeRunnersExtension.ts:13


mapAttributes​

▸ mapAttributes<I, R>(instance, callback): R[]

Type parameters​

NameType
Iextends ModelInstance
RR

Parameters​

NameType
instanceI
callback(def: ModelAttribute<ModelKey<I>>) => R

Returns​

R[]

Defined in​

src/core/model/props/mapAttributes.ts:5


mapIds​

▸ mapIds<I, R>(instance, callback): R[]

Type parameters​

NameType
Iextends ModelInstance
RR

Parameters​

NameType
instanceI
callback(def: ModelId<ModelKey<I>>) => R

Returns​

R[]

Defined in​

src/core/model/props/mapIds.ts:5


mapProps​

▸ mapProps<I, R>(instance, callback, predicate?): any

Type parameters​

NameType
Iextends ModelInstance
RR

Parameters​

NameType
instanceI
callback(def: ModelId<ModelKey<I>> | ModelAttribute<ModelKey<I>> | ModelRelation<ModelKey<I>>) => R
predicate?(def: ModelId<ModelKey<I>> | ModelAttribute<ModelKey<I>> | ModelRelation<ModelKey<I>>) => boolean

Returns​

any

Defined in​

src/core/model/props/mapProps.ts:9


mapRelations​

▸ mapRelations<I, R>(instance, callback): R[]

Type parameters​

NameType
Iextends ModelInstance
RR

Parameters​

NameType
instanceI
callback(def: ModelRelation<ModelKey<I>>) => R

Returns​

R[]

Defined in​

src/core/model/props/mapRelations.ts:5


markSynced​

▸ markSynced<I>(instance, ...only): I

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
instanceI
...onlyArrayableVariadic<ModelKey<I>>

Returns​

I

Defined in​

src/core/model/snapshots/markSynced.ts:7


normalizeDotRelations​

▸ normalizeDotRelations<D>(model, relations, registry?): Promise<string[]>

Type parameters​

NameType
Dextends Object

Parameters​

NameType
modelModelClass<D>
relationsModelRelationDotKey<ModelClass<D>>[]
registry?Optional<RegistryI>

Returns​

Promise<string[]>

Defined in​

src/core/normalization/normalizeDotRelations.ts:9


normalizeInclude​

▸ normalizeInclude(context, include): Promise<string[]>

Parameters​

NameType
contextObject
includestring[]

Returns​

Promise<string[]>

Defined in​

src/core/actions/context/utilities/normalizeInclude.ts:6


normalizeKey​

▸ normalizeKey<D>(model, key): string

Type parameters​

NameType
Dextends Object

Parameters​

NameType
modelModelClass<D>
keyModelKey<ModelClass<D>>

Returns​

string

Defined in​

src/core/normalization/normalizeKey.ts:5


onCreated​

▸ onCreated<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onCreated.ts:5


onCreating​

▸ onCreating<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onCreating.ts:5


onDestroyed​

▸ onDestroyed<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onDestroyed.ts:5


onDestroying​

▸ onDestroying<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onDestroying.ts:5


onRetrieved​

▸ onRetrieved<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onRetrieved.ts:5


onSaved​

▸ onSaved<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onSaved.ts:5


onSaving​

▸ onSaving<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onSaving.ts:5


onUpdated​

▸ onUpdated<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onUpdated.ts:5


onUpdating​

▸ onUpdating<I>(model, callback): () => void

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
modelModel<any, I>
callback(instance: I) => Awaitable<void>

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/model/hooks/onUpdating.ts:5


readOnly​

▸ readOnly<T, P, R>(rawDefinition, isReadOnly?): Omit<P, "readOnly"> & { readOnly: R }

Type parameters​

NameType
TT
Pextends ModelPropRaw<T, any>
Rextends boolean = true

Parameters​

NameType
rawDefinitionP
isReadOnly?R

Returns​

Omit<P, "readOnly"> & { readOnly: R }

Defined in​

src/core/model/props/factories/readOnly.ts:3


registerHook​

▸ registerHook<D, K>(hookable, key, callback): () => void

Type parameters​

NameType
Dextends HooksDefinition
Kextends string | number | symbol

Parameters​

NameType
hookableHookable<D>
keyK
callbackD[K]

Returns​

fn

▸ (): void

Returns​

void

Defined in​

src/core/hooks/registerHook.ts:5


restore​

▸ restore<I>(instance, ...only): I

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
instanceI
...onlyArrayableVariadic<ModelKey<I>>

Returns​

I

Defined in​

src/core/model/snapshots/restore.ts:5


restoreSnapshot​

▸ restoreSnapshot<I>(instance, snapshot, ...only): I

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
instanceI
snapshotModelSnapshot<I>
...onlyArrayableVariadic<ModelKey<I>>

Returns​

I

Defined in​

src/core/model/snapshots/restoreSnapshot.ts:16


runHook​

▸ runHook<D, K>(hookable, key, event): Promise<void>

Type parameters​

NameType
Dextends HooksDefinition
Kextends string | number | symbol

Parameters​

NameType
hookableHookable<D>
keyK
eventD[K] extends HookCallback<E> ? E : never

Returns​

Promise<void>

Defined in​

src/core/hooks/runHook.ts:4


shouldSync​

▸ shouldSync(def, actions): boolean

Parameters​

NameType
defModelPropRaw
actionsModelPropSync[]

Returns​

boolean

Defined in​

src/core/model/props/shouldSync.ts:3


takeSnapshot​

▸ takeSnapshot<I>(instance): ModelSnapshot<I>

Type parameters​

NameType
Iextends ModelInstance

Parameters​

NameType
instanceI

Returns​

ModelSnapshot<I>

Defined in​

src/core/model/snapshots/takeSnapshot.ts:4


toBoolean​

▸ toBoolean(trueValues?): FunctionTransform<boolean | null, unknown>

Parameters​

NameType
trueValuesunknown[]

Returns​

FunctionTransform<boolean | null, unknown>

Defined in​

src/core/transformers/toBoolean.ts:4


toDate​

▸ toDate(): ObjectTransform<Date | null, unknown>

Returns​

ObjectTransform<Date | null, unknown>

Defined in​

src/core/transformers/toDate.ts:11


toNumber​

▸ toNumber(): FunctionTransform<number | null, unknown>

Returns​

FunctionTransform<number | null, unknown>

Defined in​

src/core/transformers/toNumber.ts:4


toString​

▸ toString(): FunctionTransform<string | null, unknown>

Returns​

FunctionTransform<string | null, unknown>

Defined in​

src/core/transformers/toString.ts:4


unregisterHook​

▸ unregisterHook<D, K>(hookable, key, callback): void

Type parameters​

NameType
Dextends HooksDefinition
Kextends string | number | symbol

Parameters​

NameType
hookableHookable<D>
keyK
callbackD[K]

Returns​

void

Defined in​

src/core/hooks/unregisterHook.ts:3


when​

▸ when<C, E, V, TC>(expression, truthyCallback): ContextEnhancer<C, E, TC>

Create a new enhancer or runner from a conditional expression and given enhancer/runner factories. When the expression if a function, it will call the function and take its result as the evaluated expression. Expression may also be a promise or a promise provider function, which will also be evaluated. Evaluated expression will be passed to both truthy and falsy callbacks.

Type parameters​

NameType
Cextends Object
Eextends Object
VV
TCextends Object = C

Parameters​

NameType
expressionV
truthyCallback(action: Action<C, E>, value: OnlyTruthy<Awaited<Value<V>>>) => Awaitable<void | Action<TC, E>>

Returns​

ContextEnhancer<C, E, TC>

Defined in​

src/core/actions/when.ts:10

▸ when<C, E, V, TC, FC>(expression, truthyCallback, falsyCallback): ContextEnhancer<C, E, TC | FC>

Create a new enhancer or runner from a conditional expression and given enhancer/runner factories. When the expression if a function, it will call the function and take its result as the evaluated expression. Expression may also be a promise or a promise provider function, which will also be evaluated. Evaluated expression will be passed to both truthy and falsy callbacks.

Type parameters​

NameType
Cextends Object
Eextends Object
VV
TCextends Object = C
FCextends Object = C

Parameters​

NameType
expressionV
truthyCallback(action: Action<C, E>, value: OnlyTruthy<Awaited<Value<V>>>) => Awaitable<void | Action<TC, E>>
falsyCallback(action: Action<C, E>, value: OnlyFalsy<Awaited<Value<V>>>) => Awaitable<void | Action<FC, E>>

Returns​

ContextEnhancer<C, E, TC | FC>

Defined in​

src/core/actions/when.ts:17

▸ when<C, E, V, TR>(expression, truthyCallback): ContextRunner<C, E, TR | void>

Create a new enhancer or runner from a conditional expression and given enhancer/runner factories. When the expression if a function, it will call the function and take its result as the evaluated expression. Expression may also be a promise or a promise provider function, which will also be evaluated. Evaluated expression will be passed to both truthy and falsy callbacks.

Type parameters​

NameType
Cextends Object
Eextends Object
VV
TRTR

Parameters​

NameType
expressionV
truthyCallback(action: Action<C, E>, value: OnlyTruthy<Awaited<Value<V>>>) => TR

Returns​

ContextRunner<C, E, TR | void>

Defined in​

src/core/actions/when.ts:28

▸ when<C, E, V, TR, FR>(expression, truthyCallback, falsyCallback): ContextRunner<C, E, TR | FR>

Create a new enhancer or runner from a conditional expression and given enhancer/runner factories. When the expression if a function, it will call the function and take its result as the evaluated expression. Expression may also be a promise or a promise provider function, which will also be evaluated. Evaluated expression will be passed to both truthy and falsy callbacks.

Type parameters​

NameType
Cextends Object
Eextends Object
VV
TRTR
FRFR

Parameters​

NameType
expressionV
truthyCallback(action: Action<C, E>, value: OnlyTruthy<Awaited<Value<V>>>) => TR
falsyCallback(action: Action<C, E>, value: OnlyFalsy<Awaited<Value<V>>>) => FR

Returns​

ContextRunner<C, E, TR | FR>

Defined in​

src/core/actions/when.ts:32


withoutHooks​

▸ withoutHooks<T, R>(hookable, callback): Promise<R>

Type parameters​

NameType
Textends Hookable<any>
RR

Parameters​

NameType
hookableT
callback(hookable: T) => Awaitable<R>

Returns​

Promise<R>

Defined in​

src/core/hooks/withoutHooks.ts:5

Runners​

all​

▸ all<C, I, AD, DD, ND>(transform?): (action: Action<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>>) => Promise<ND>

Run the action and deserialize an array of model's instance.

Type parameters​

NameType
Cextends Object
Iextends never
ADAD
DDextends DeserializedData
NDI[]

Parameters​

NameType
transform?(data: AllData<AD, DeserializedDataOf<I, DD>, I>) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<ND>

Parameters​
NameType
actionAction<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>>
Returns​

Promise<ND>

Defined in​

src/core/actions/context/runners/all.ts:34


cached​

▸ cached<C, M, I, ND>(transform?): (action: Action<C & ConsumeCache & ConsumeModel<M> & ConsumeInclude & ConsumeId, any>) => Promise<null | ND>

Retrieve an instance from the cache. If the instance is not in cache or if the included relations are not loaded, returns null.

Type parameters​

NameType
Cextends Object
Mextends Model
Iextends any
NDI

Parameters​

NameType
transform?(data: CachedData<I>) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<null | ND>

Parameters​
NameType
actionAction<C & ConsumeCache & ConsumeModel<M> & ConsumeInclude & ConsumeId, any>
Returns​

Promise<null | ND>

Defined in​

src/core/actions/context/runners/cached.ts:21


cachedOr​

▸ cachedOr<C, E, M, I, RD, ND>(nilRunner, transform?): (action: Action<C & ConsumeCache & ConsumeModel<M> & ConsumeInclude & ConsumeId, E>) => Promise<RD | ND>

Retrieve an instance from the cache. If the instance is not in cache or if the included relations are not loaded, run the given runner.

Type parameters​

NameType
Cextends Object
Eextends Object
Mextends Model
Iextends any
RDRD
NDI

Parameters​

NameType
nilRunnerContextRunner<C & ConsumeCache & ConsumeModel<M>, E, Awaitable<RD>>
transform?(data: CachedData<I>) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<RD | ND>

Parameters​
NameType
actionAction<C & ConsumeCache & ConsumeModel<M> & ConsumeInclude & ConsumeId, E>
Returns​

Promise<RD | ND>

Defined in​

src/core/actions/context/runners/cachedOr.ts:32


cachedOrFail​

▸ cachedOrFail<C, M, I, ND>(transform?): (action: Action<C & ConsumeCache & ConsumeModel<M> & ConsumeInclude & ConsumeId, any>) => Promise<ND>

Retrieve an instance from the cache. If the instance is not in cache or if the included relations are not loaded, throws an "ExpectedRunFailureError".

Type parameters​

NameType
Cextends Object
Mextends Model
Iextends any
NDI

Parameters​

NameType
transform?(data: CachedData<I>) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<ND>

Parameters​
NameType
actionAction<C & ConsumeCache & ConsumeModel<M> & ConsumeInclude & ConsumeId, any>
Returns​

Promise<ND>

Defined in​

src/core/actions/context/runners/cachedOrFail.ts:22


catchIf​

▸ catchIf<C, E, RD, CD>(runner, catchCallback?): (action: Action<C, E>) => Promise<RD | CD>

Run given runner and catch errors using catchCallback. If catchCallback is omitted, will return null on error. If catchCallback returns a function, will run it as an action's runner. Else, will ignore error and return null only if callback for error is truthy.

Type parameters​

NameType
Cextends Object
Eextends Object
RDRD
CDnull

Parameters​

NameType
runnerContextRunner<C, E, Awaitable<RD>>
catchCallback?CatchCallback<C, E, CD>

Returns​

fn

▸ (action): Promise<RD | CD>

Parameters​
NameType
actionAction<C, E>
Returns​

Promise<RD | CD>

Defined in​

src/core/actions/context/runners/catchIf.ts:20


none​

▸ none<C>(): (action: Action<C & ConsumeAdapter>) => Promise<void>

Run the action and ignore the content of the result. Adapter errors are not caught and so may be thrown.

Type parameters​

NameType
Cextends Object

Returns​

fn

▸ (action): Promise<void>

Parameters​
NameType
actionAction<C & ConsumeAdapter>
Returns​

Promise<void>

Defined in​

src/core/actions/context/runners/none.ts:11


one​

▸ one<C, I, AD, DD, ND>(transform?): (action: Action<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, any>) => Promise<null | ND>

Run the action and deserialize one model's instance. Returns null when not found or empty result.

Type parameters​

NameType
Cextends Object
Iextends never
ADAD
DDextends DeserializedData
NDI

Parameters​

NameType
transform?(data: OneData<AD, DeserializedDataOf<I, DD>, I>) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<null | ND>

Parameters​
NameType
actionAction<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, any>
Returns​

Promise<null | ND>

Defined in​

src/core/actions/context/runners/one.ts:20


oneOr​

▸ oneOr<C, E, I, AD, DD, RD, ND>(nilRunner, transform?): (action: Action<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, E>) => Promise<RD | ND>

Run the action and deserialize one model's instance.

Type parameters​

NameType
Cextends Object
Eextends Object
Iextends never
ADAD
DDextends DeserializedData
RDRD
NDI

Parameters​

NameType
nilRunnerContextRunner<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, E, Awaitable<RD>>
transform?(data: OneData<AD, DeserializedDataOf<I, DD>, I>) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<RD | ND>

Parameters​
NameType
actionAction<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, E>
Returns​

Promise<RD | ND>

Defined in​

src/core/actions/context/runners/oneOr.ts:33


oneOrCurrent​

▸ oneOrCurrent<C, CI, I, AD, DD, ND>(transform?): (action: Action<C & ConsumeInstance<CI> & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, any>) => Promise<CI | ND>

Run the action and deserialize one model's instance. Returns current instance when not found or empty result.

Type parameters​

NameType
Cextends ConsumeInstance<CI>
CIextends ModelInstance
Iextends never
ADAD
DDextends DeserializedData
NDCI

Parameters​

NameType
transform?(data: OneData<AD, DeserializedDataOf<I, DD>, I>) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<CI | ND>

Parameters​
NameType
actionAction<C & ConsumeInstance<CI> & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, any>
Returns​

Promise<CI | ND>

Defined in​

src/core/actions/context/runners/oneOrCurrent.ts:23


oneOrFail​

▸ oneOrFail<C, I, AD, DD, ND>(transform?): (action: Action<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, any>) => Promise<ND>

Run the action and deserialize one model's instance. Throw an "ExpectedRunFailureError" when not found or empty result.

Type parameters​

NameType
Cextends Object
Iextends never
ADAD
DDextends DeserializedData
NDI

Parameters​

NameType
transform?(data: OneData<AD, DeserializedDataOf<I, DD>, I>) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<ND>

Parameters​
NameType
actionAction<C & ConsumeAdapter<AD> & ConsumeDeserializer<AD, DD>, any>
Returns​

Promise<ND>

Defined in​

src/core/actions/context/runners/oneOrFail.ts:21


raw​

▸ raw<C, AD, ND>(transform?): (action: Action<C & ConsumeAdapter<AD>>) => Promise<ND>

Run the action and retrieve the raw adapter's data.

Type parameters​

NameType
Cextends Object
ADAD
NDAD

Parameters​

NameType
transform?(data: AD) => Awaitable<ND>

Returns​

fn

▸ (action): Promise<ND>

Parameters​
NameType
actionAction<C & ConsumeAdapter<AD>>
Returns​

Promise<ND>

Defined in​

src/core/actions/context/runners/raw.ts:11