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