Skip to main content

@webda/asyncReadme | API


Class: AsyncWebdaAction

Define a Webda Async Action

Webda Model

Extends

Constructors

new AsyncWebdaAction(serviceName, method, args)

new AsyncWebdaAction(serviceName?, method?, ...args?): AsyncWebdaAction

Parameters

serviceName?: string

service to call

method?: string

method to call

• ...args?: any[]

Returns

AsyncWebdaAction

Overrides

AsyncAction.constructor

Source

async/src/models.ts:240

Properties

__class

__class: CoreModelDefinition<AsyncWebdaAction>

Class reference to the object

Inherited from

AsyncAction.__class

Source

core/lib/models/coremodel.d.ts:396


__ctx

__ctx: OperationContext<any, any>

Object context

@TJS-ignore

Inherited from

AsyncAction.__ctx

Source

core/lib/models/coremodel.d.ts:410


__dirty

__dirty: Set<string | symbol>

Inherited from

AsyncAction.__dirty

Source

core/lib/models/coremodel.d.ts:417


__secretKey

__secretKey: string

Secret key to post feedback

Inherited from

AsyncAction.__secretKey

Source

async/src/models.ts:105


__store

__store: Store<AsyncWebdaAction, StoreParameters, StoreEvents>

If object is attached to its store

@TJS-ignore

Inherited from

AsyncAction.__store

Source

core/lib/models/coremodel.d.ts:416


__type

__type: string

Type name

Inherited from

AsyncAction.__type

Source

core/lib/models/coremodel.d.ts:400


__types

__types: string[]

Types name

Inherited from

AsyncAction.__types

Source

core/lib/models/coremodel.d.ts:404


_creationDate

_creationDate: Date

Creation date

Inherited from

AsyncAction._creationDate

Source

core/lib/models/coremodel.d.ts:421


_lastJobUpdate

_lastJobUpdate: number

Last time the job was updated

Inherited from

AsyncAction._lastJobUpdate

Source

async/src/models.ts:76


_lastUpdate

_lastUpdate: Date

Last update date

Inherited from

AsyncAction._lastUpdate

Source

core/lib/models/coremodel.d.ts:425


action?

action?: string

Expected action for the job

It should be a verb

Inherited from

AsyncAction.action

Source

async/src/models.ts:112


arguments?

arguments?: any[]

Inherited from

AsyncAction.arguments

Source

async/src/models.ts:95


errorMessage?

errorMessage?: string

If an error occured it should contain the message

Inherited from

AsyncAction.errorMessage

Source

async/src/models.ts:67


job

job: Job

Job information

Inherited from

AsyncAction.job

Source

async/src/models.ts:71


logLevel

logLevel: WorkerLogLevel = "INFO"

Source

async/src/models.ts:233


logs

logs: string[]

Current logs

Inherited from

AsyncAction.logs

Source

async/src/models.ts:100


method?

method?: string

method to call

Source

async/src/models.ts:242


results

results: any

Results from the job

Inherited from

AsyncAction.results

Source

async/src/models.ts:80


scheduled?

scheduled?: number

Timestamp when the action was scheduled

Inherited from

AsyncAction.scheduled

Source

async/src/models.ts:62


serviceName?

serviceName?: string

service to call

Source

async/src/models.ts:241


status

status: "ERROR" | "RUNNING" | "SUCCESS" | "QUEUED" | "STARTING" | "TIMEOUT" | "SCHEDULED"

Current status

Inherited from

AsyncAction.status

Source

async/src/models.ts:57


statusDetails

statusDetails: any

Job current status

Inherited from

AsyncAction.statusDetails

Source

async/src/models.ts:85


type

type: string

Inherited from

AsyncAction.type

Source

async/src/models.ts:90


uuid

uuid: string

Action uuid

Inherited from

AsyncAction.uuid

Source

async/src/models.ts:53

Methods

_onDelete()

_onDelete(): Promise<void>

Called when object is about to be deleted

Returns

Promise<void>

Inherited from

AsyncAction._onDelete

Source

core/lib/models/coremodel.d.ts:807


_onDeleted()

_onDeleted(): Promise<void>

Called when object has been deleted

Returns

Promise<void>

Inherited from

AsyncAction._onDeleted

Source

core/lib/models/coremodel.d.ts:811


_onGet()

_onGet(): Promise<void>

Called when object is retrieved

Returns

Promise<void>

Inherited from

AsyncAction._onGet

Source

core/lib/models/coremodel.d.ts:815


_onSave()

_onSave(): Promise<void>

Called when object is about to be saved

Returns

Promise<void>

Inherited from

AsyncAction._onSave

Source

core/lib/models/coremodel.d.ts:819


_onSaved()

_onSaved(): Promise<void>

Called when object is saved

Returns

Promise<void>

Inherited from

AsyncAction._onSaved

Source

core/lib/models/coremodel.d.ts:823


_onUpdate()

_onUpdate(_updates): Promise<void>

Called when object is about to be updates

Parameters

_updates: any

Returns

Promise<void>

Inherited from

AsyncAction._onUpdate

Source

core/lib/models/coremodel.d.ts:829


_onUpdated()

_onUpdated(): Promise<void>

Called when object is updated

Returns

Promise<void>

Inherited from

AsyncAction._onUpdated

Source

core/lib/models/coremodel.d.ts:833


_toJSON()

_toJSON(secure): any

Remove the specific attributes if not secure

Parameters

secure: any

serialize server fields also

Returns

any

filtered object to be serialized

Inherited from

AsyncAction._toJSON

Source

core/lib/models/coremodel.d.ts:797


attributePermission()

attributePermission(key, value, mode, context?): any

Allow to define custom permission per attribute

This method allows you to do permission based attribute But also a mask destructive attribute

Parameters

key: string

value: any

mode: "READ" | "WRITE"

context?: OperationContext<any, any>

Returns

any

updated value

Inherited from

AsyncAction.attributePermission

Source

core/lib/models/coremodel.d.ts:704


canAct()

canAct(_context, _action): Promise<string | boolean>

By default nothing is permitted on a CoreModel

Parameters

_context: OperationContext<any, any>

_action: string

Returns

Promise<string | boolean>

Inherited from

AsyncAction.canAct

Source

core/lib/models/coremodel.d.ts:661


checkAct()

checkAct(context, action): Promise<void>

Ensure action hook is ok

Parameters

context: OperationContext<any, any>

action: string

Returns

Promise<void>

Inherited from

AsyncAction.checkAct

Source

async/src/models.ts:197


delete()

delete(): Promise<void>

Delete this object

Returns

Promise<void>

Inherited from

AsyncAction.delete

Throws

Error if the object is not coming from a store

Source

core/lib/models/coremodel.d.ts:747


generateUid()

generateUid(_object?): string

Generate uuid for the object

Parameters

_object?: any

Returns

string

Inherited from

AsyncAction.generateUid

Source

core/lib/models/coremodel.d.ts:774


get()

get(): Promise<AsyncWebdaAction>

Get the object

Returns

Promise<AsyncWebdaAction>

Inherited from

AsyncAction.get

Source

core/lib/models/coremodel.d.ts:735


getContext()

getContext<T>(): T

Get object context

Global object does not belong to a request

Type parameters

T extends OperationContext<any, any>

Returns

T

Inherited from

AsyncAction.getContext

Source

core/lib/models/coremodel.d.ts:726


getFullUuid()

getFullUuid(): string

Return a unique reference within the application to the object

It contains the Store containing it

Returns

string

Inherited from

AsyncAction.getFullUuid

Source

core/lib/models/coremodel.d.ts:683


getHmac()

getHmac(jobTime): string

Get the hmac for the job

Parameters

jobTime: string

Returns

string

Inherited from

AsyncAction.getHmac

Source

async/src/models.ts:187


getHookUrl()

getHookUrl(): string

Return the hook url if empty fallback to the service url

Returns

string

Inherited from

AsyncAction.getHookUrl

Source

async/src/models.ts:132


getLogsLimit()

getLogsLimit(): number

Returns

number

Inherited from

AsyncAction.getLogsLimit

Source

async/src/models.ts:114


getProxy()

getProxy(): this

Return a proxy to the object to detect if dirty

Returns

this

Inherited from

AsyncAction.getProxy

Source

core/lib/models/coremodel.d.ts:623


getRef()

getRef<T>(): ModelRef<T>

Return a model ref

Type parameters

T extends AsyncWebdaAction

Returns

ModelRef<T>

Inherited from

AsyncAction.getRef

Source

core/lib/models/coremodel.d.ts:855


getService()

getService<T>(service): T

Get a pre typed service

Type parameters

T extends Service<ServiceParameters, Events>

Parameters

service: any

to retrieve WARNING: Only object attached to a store can retrieve service

Returns

T

Inherited from

AsyncAction.getService

Source

core/lib/models/coremodel.d.ts:788


getStore()

getStore(): Store<AsyncWebdaAction, StoreParameters, StoreEvents>

Return the object registered store

Returns

Store<AsyncWebdaAction, StoreParameters, StoreEvents>

Inherited from

AsyncAction.getStore

Source

core/lib/models/coremodel.d.ts:730


getUuid()

getUuid(): string

Returns

string

the uuid of the object

Inherited from

AsyncAction.getUuid

Source

core/lib/models/coremodel.d.ts:633


handleRelations()

protected handleRelations(): void

Patch every attribute that is based on a relation to add all the helpers

Returns

void

Inherited from

AsyncAction.handleRelations

Source

core/lib/models/coremodel.d.ts:716


incrementAttribute()

incrementAttribute(property, value): Promise<void>

Increment an attribute both in store and object

Parameters

property: FilterAttributes<AsyncWebdaAction, number>

value: number

Returns

Promise<void>

Inherited from

AsyncAction.incrementAttribute

Source

core/lib/models/coremodel.d.ts:850


incrementAttributes()

incrementAttributes(info): Promise<void>

Increment a attributes both in store and object

Parameters

info: Object[]

Returns

Promise<void>

Inherited from

AsyncAction.incrementAttributes

Source

core/lib/models/coremodel.d.ts:860


isDirty()

isDirty(): boolean

Return true if needs a save

Returns

boolean

Inherited from

AsyncAction.isDirty

Source

core/lib/models/coremodel.d.ts:628


isInternal()

isInternal(): boolean

Execute a serviceName.method(...args) so this is internal

Returns

boolean

Overrides

AsyncAction.isInternal

Source

async/src/models.ts:253


load()

load(raw, secure?, relations?): this

Load an object from RAW

Parameters

raw: RawModel<AsyncWebdaAction>

data

secure?: boolean

if false will ignore any _ variable

relations?: boolean

Returns

this

Inherited from

AsyncAction.load

Source

core/lib/models/coremodel.d.ts:711


patch()

patch(obj, conditionField?, conditionValue?): Promise<void>

Patch current object with this update

Parameters

obj: Partial<AsyncWebdaAction>

conditionField?: keyof AsyncWebdaAction

if null no condition used otherwise fallback to lastUpdate

conditionValue?: any

Returns

Promise<void>

Inherited from

AsyncAction.patch

Source

core/lib/models/coremodel.d.ts:754


refresh()

refresh(): Promise<AsyncWebdaAction>

Get the object again

Returns

Promise<AsyncWebdaAction>

Inherited from

AsyncAction.refresh

Throws

Error if the object is not coming from a store

Source

core/lib/models/coremodel.d.ts:741


removeAttribute()

removeAttribute(property): Promise<void>

Remove attribute from both the object and db

Parameters

property: keyof AsyncWebdaAction

Returns

Promise<void>

Inherited from

AsyncAction.removeAttribute

Source

core/lib/models/coremodel.d.ts:844


save()

save(full?, ...args?): Promise<AsyncWebdaAction>

Save this object

Parameters

full?: boolean | keyof AsyncWebdaAction

• ...args?: keyof AsyncWebdaAction[]

Returns

Promise<AsyncWebdaAction>

Inherited from

AsyncAction.save

Throws

Error if the object is not coming from a store

Source

core/lib/models/coremodel.d.ts:760


setAttribute()

setAttribute(property, value): Promise<void>

Set attribute on the object and database

Parameters

property: keyof AsyncWebdaAction

value: any

Returns

Promise<void>

Inherited from

AsyncAction.setAttribute

Source

core/lib/models/coremodel.d.ts:839


setContext()

setContext(ctx): this

Context of the request

Parameters

ctx: OperationContext<any, any>

Returns

this

Inherited from

AsyncAction.setContext

Source

core/lib/models/coremodel.d.ts:720


setUuid()

setUuid(uuid, target?): this

Parameters

uuid: string

target?: this

Returns

this

Inherited from

AsyncAction.setUuid

Source

core/lib/models/coremodel.d.ts:639


statusAction()

statusAction(context): Promise<void>

Allow to report status for a job

Parameters

context: WebContext<any, any>

Returns

Promise<void>

Inherited from

AsyncAction.statusAction

Source

async/src/models.ts:123


toJSON()

toJSON(): any

Return the object without sensitive attributes

Returns

any

Object to serialize

Inherited from

AsyncAction.toJSON

Source

core/lib/models/coremodel.d.ts:803


toStoredJSON()

toStoredJSON(stringify?): any

Return the object to be serialized without the __store

Parameters

stringify?: boolean

Returns

any

Inherited from

AsyncAction.toStoredJSON

Source

core/lib/models/coremodel.d.ts:781


unflat()

unflat<T>(split?): T

Create subobject for a model

Useful for counters

Type parameters

T

Parameters

split?: string

Returns

T

Inherited from

AsyncAction.unflat

Source

core/lib/models/coremodel.d.ts:560


update()

update(body, time): Promise<AsyncWebdaAction>

Parameters

body: any

time: string= undefined

Returns

Promise<AsyncWebdaAction>

Inherited from

AsyncAction.update

Source

async/src/models.ts:140


validate()

validate(ctx, updates, ignoreRequired?): Promise<boolean>

Validate objet modification

Parameters

ctx: OperationContext<any, any>

updates: any

ignoreRequired?: boolean

Returns

Promise<boolean>

Inherited from

AsyncAction.validate

Source

core/lib/models/coremodel.d.ts:767


verifyJobRequest()

protected verifyJobRequest<K>(context): Promise<void>

Type parameters

K extends AsyncAction = AsyncAction

Parameters

context: WebContext<any, any>

Returns

Promise<void>

Inherited from

AsyncAction.verifyJobRequest

Source

async/src/models.ts:169


addListener()

static addListener<Key>(event, listener): any

Type parameters

Key extends keyof StoreEvents

Parameters

event: Key

listener: (...args) => void

Returns

any

Inherited from

AsyncAction.addListener

Source

core/lib/models/coremodel.d.ts:466


authorizeClientEvent()

static authorizeClientEvent(_event, _context, _model?): boolean

Does not allow any event by default

Parameters

_event: string

_context: OperationContext<any, any>

_model?: CoreModel

Returns

boolean

Inherited from

AsyncAction.authorizeClientEvent

Source

core/lib/models/coremodel.d.ts:496


completeQuery()

static protected completeQuery(query, includeSubclass?): string

Complete the query with __type/__types

Parameters

query: string

includeSubclass?: boolean

Returns

string

Inherited from

AsyncAction.completeQuery

Source

core/lib/models/coremodel.d.ts:590


completeUid()

static completeUid(uid): string

Complete the uid with prefix if any

Useful when object are stored with a prefix for full uuid

Parameters

uid: string

Returns

string

Inherited from

AsyncAction.completeUid

Source

core/lib/models/coremodel.d.ts:510


create()

static create<T>(this, data): Promise<T>

Get a reference to a model

Type parameters

T extends CoreModel

Parameters

this: Constructor<T, []>

data: RawModel<T>

Returns

Promise<T>

Inherited from

AsyncAction.create

Source

core/lib/models/coremodel.d.ts:529


emit()

static emit<T, Key>(this, event, evt): void

Emit an event for this class

Type parameters

T extends CoreModel

Key extends keyof StoreEvents

Parameters

this: Constructor<T, []>

event: Key

evt: StoreEvents[Key]

Returns

void

Inherited from

AsyncAction.emit

Source

core/lib/models/coremodel.d.ts:446


emitSync()

static emitSync<T, Key>(this, event, evt): Promise<void>

Emit an event for this class and wait for all listeners to finish

Type parameters

T extends CoreModel

Key extends keyof StoreEvents

Parameters

this: Constructor<T, []>

event: Key

evt: StoreEvents[Key]

Returns

Promise<void>

Inherited from

AsyncAction.emitSync

Source

core/lib/models/coremodel.d.ts:453


emitter()

static emitter(method, ...args): any

Parameters

method: any

• ...args: any[]

Returns

any

Inherited from

AsyncAction.emitter

Source

core/lib/models/coremodel.d.ts:467


eventNames()

static eventNames(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.eventNames

Source

core/lib/models/coremodel.d.ts:479


factory()

static factory<T>(this, object, context?): T

Create an object

Type parameters

T extends CoreModel

Parameters

this: Constructor<T, []>

object: Partial<T>

context?: OperationContext<any, any>

Returns

T

Inherited from

AsyncAction.factory

Source

core/lib/models/coremodel.d.ts:670


flat()

static flat(target, data, split?, prefix?): any

Flat an object into another

{ a: { b: 1 }, c: 1 }

become

{ "a#b": 1 "c": 1 }

Parameters

target: any

data: any

split?: string

prefix?: string

Returns

any

Inherited from

AsyncAction.flat

Source

core/lib/models/coremodel.d.ts:583


fromFullUuid()

static fromFullUuid<T>(fullUuid, core?, partials?): Promise<T>

Get an object from the full uuid

Type parameters

T extends CoreModel = CoreModel

Parameters

fullUuid: string

core?: Core<CoreEvents>

partials?: any

Returns

Promise<T>

Inherited from

AsyncAction.fromFullUuid

Source

core/lib/models/coremodel.d.ts:691


getActions()

static getActions<T>(this): ModelActions

Get actions callable on an object

This will expose them by the Store with /storeUrl/{uuid}/{action}

Type parameters

T

Parameters

this: Constructor<T, []>

Returns

ModelActions

Inherited from

AsyncAction.getActions

Source

core/lib/models/coremodel.d.ts:645


getClientEvents()

static getClientEvents(): any[]

Do not declare any public events by default

Returns

any[]

Inherited from

AsyncAction.getClientEvents

Source

core/lib/models/coremodel.d.ts:489


getHierarchy()

static getHierarchy(): Object

Get the model hierarchy

Ancestors will contain every model it inherits from Children will contain every model that inherits from this model in a tree structure

Returns

Object

ancestors

ancestors: string[]

children

children: ModelsTree

Inherited from

AsyncAction.getHierarchy

Source

core/lib/models/coremodel.d.ts:541


getIdentifier()

static getIdentifier(short?): string

Get identifier for this model

Parameters

short?: boolean

Returns

string

Inherited from

AsyncAction.getIdentifier

Source

core/lib/models/coremodel.d.ts:534


getMaxListeners()

static getMaxListeners(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.getMaxListeners

Source

core/lib/models/coremodel.d.ts:473


getPermissionQuery()

static getPermissionQuery(_ctx): Object

Return the expressable query for permission

Parameters

_ctx: OperationContext<any, any>

Returns

Object

partial

partial: boolean

query

query: string

Inherited from

AsyncAction.getPermissionQuery

Source

core/lib/models/coremodel.d.ts:652


getRelations()

static getRelations(): ModelGraph

Returns

ModelGraph

Inherited from

AsyncAction.getRelations

Source

core/lib/models/coremodel.d.ts:484


getSchema()

static getSchema(): JSONSchema7

Return the known schema

Returns

JSONSchema7

Inherited from

AsyncAction.getSchema

Source

core/lib/models/coremodel.d.ts:515


getUuidField()

static getUuidField(): string

Get the UUID property

Returns

string

Inherited from

AsyncAction.getUuidField

Source

core/lib/models/coremodel.d.ts:665


instanceOf()

static instanceOf(object): boolean

Detect what looks like a CoreModel but can be from different version

Parameters

object: any

Returns

boolean

Inherited from

AsyncAction.instanceOf

Source

core/lib/models/coremodel.d.ts:676


iterate()

static iterate<T>(this, query?, includeSubclass?, context?): AsyncGenerator<T, any, unknown>

Iterate through the model

How to use a iterator is:

for await (const model of CoreModel.iterate()) {
// Do something with my model
}

Type parameters

T extends CoreModel

Parameters

this: Constructor<T, []>

query?: string

includeSubclass?: boolean

context?: OperationContext<any, any>

Returns

AsyncGenerator<T, any, unknown>

Inherited from

AsyncAction.iterate

Source

core/lib/models/coremodel.d.ts:608


listenerCount()

static listenerCount(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.listenerCount

Source

core/lib/models/coremodel.d.ts:476


listeners()

static listeners(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.listeners

Source

core/lib/models/coremodel.d.ts:474


off()

static off(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.off

Source

core/lib/models/coremodel.d.ts:469


on()

static on<T, Key>(this, event, listener, async?): any

Listen to events on the model

Type parameters

T extends CoreModel

Key extends keyof StoreEvents

Parameters

this: Constructor<T, []>

event: Key

listener: (evt) => any

async?: boolean

Returns

any

Inherited from

AsyncAction.on

Source

core/lib/models/coremodel.d.ts:439


onAsync()

static onAsync<Key>(event, listener, queue?): any

Listen to events on the model asynchronously

Type parameters

Key extends keyof StoreEvents

Parameters

event: Key

listener: (evt) => any

queue?: string

Returns

any

Inherited from

AsyncAction.onAsync

Source

core/lib/models/coremodel.d.ts:459


once()

static once(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.once

Source

core/lib/models/coremodel.d.ts:470


prependListener()

static prependListener(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.prependListener

Source

core/lib/models/coremodel.d.ts:477


prependOnceListener()

static prependOnceListener(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.prependOnceListener

Source

core/lib/models/coremodel.d.ts:478


query()

static query<T>(this, query?, includeSubclass?, context?): Promise<Object>

Query for models

Type parameters

T extends CoreModel

Parameters

this: Constructor<T, []>

query?: string

includeSubclass?: boolean

context?: OperationContext<any, any>

Returns

Promise<Object>

continuationToken?

continuationToken?: string

results

results: T[]

Inherited from

AsyncAction.query

Source

core/lib/models/coremodel.d.ts:615


rawListeners()

static rawListeners(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.rawListeners

Source

core/lib/models/coremodel.d.ts:475


ref()

static ref<T>(this, uid): ModelRefWithCreate<T>

Get a reference to a model

Type parameters

T extends CoreModel

Parameters

this: Constructor<T, []>

uid: string

Returns

ModelRefWithCreate<T>

Inherited from

AsyncAction.ref

Source

core/lib/models/coremodel.d.ts:522


removeAllListeners()

static removeAllListeners(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.removeAllListeners

Source

core/lib/models/coremodel.d.ts:471


removeListener()

static removeListener(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.removeListener

Source

core/lib/models/coremodel.d.ts:468


setMaxListeners()

static setMaxListeners(...args): any

Parameters

• ...args: any[]

Returns

any

Inherited from

AsyncAction.setMaxListeners

Source

core/lib/models/coremodel.d.ts:472


store()

static store<T>(this): Store<T, StoreParameters, StoreEvents>

Get Store for this model

Type parameters

T extends CoreModel

Parameters

this: Constructor<T, []>

Returns

Store<T, StoreParameters, StoreEvents>

Inherited from

AsyncAction.store

Source

core/lib/models/coremodel.d.ts:502


unflat()

static unflat<T>(data, split?): T

Unflat an object

Type parameters

T = any

Parameters

data: any

split?: string

Returns

T

Inherited from

AsyncAction.unflat

Source

core/lib/models/coremodel.d.ts:551