Skip to main content

@webda/coreReadme | API


Class: Core<E>

This is the main class of the framework, it handles the routing, the services initialization and resolution

Extends

  • EventEmitter

Type parameters

E extends CoreEvents = CoreEvents

Constructors

new Core(application)

new Core<E>(application?): Core<E>

Parameters

application?: Application

Returns

Core<E>

Overrides

events.EventEmitter.constructor

Params

config - The configuration Object, if undefined will load the configuration file

Source

packages/core/src/core.ts:439

Properties

_ajv

protected _ajv: Ajv

JSON Schema validator instance

Source

packages/core/src/core.ts:333


_ajvSchemas

protected _ajvSchemas: Object

JSON Schema registry Save if a schema was added to Ajv already

Index signature

[key: string]: true

Source

packages/core/src/core.ts:338


_configFile

protected _configFile: string

Source

packages/core/src/core.ts:344


_currentExecutor

protected _currentExecutor: any

Current executor

Source

packages/core/src/core.ts:342


_init

protected _init: Promise<void>

Init promise to ensure, webda is initiated Used for init() method

Source

packages/core/src/core.ts:324


_initPromise

protected _initPromise: Promise<void>

Contains the current initialization process

Source

packages/core/src/core.ts:348


_initTime

protected _initTime: number

When the Core was initialized

Source

packages/core/src/core.ts:352


_initiated

protected _initiated: boolean = false

If Core is already initiated

Source

packages/core/src/core.ts:315


_requestCORSFilters

protected _requestCORSFilters: RequestFilter<WebContext<any, any>>[] = []

CORS Filter registry

Added via [[Webda.registerCORSRequestFilter]] See [[CorsFilter]]

Source

packages/core/src/core.ts:371


_requestFilters

protected _requestFilters: RequestFilter<WebContext<any, any>>[] = []

Request Filter registry

Added via [[Webda.registerRequestFilter]] See [[CorsFilter]]

Source

packages/core/src/core.ts:364


application

protected application: Application

Application that generates this Core

Source

packages/core/src/core.ts:307


cryptoService

protected cryptoService: CryptoService<CryptoServiceParameters>

Manage encryption within the application

Source

packages/core/src/core.ts:389


failedServices

protected failedServices: Object = {}

Services who failed to create or initialize

Index signature

[key: string]: any

Source

packages/core/src/core.ts:319


globalContext

protected globalContext: GlobalContext

System context

Source

packages/core/src/core.ts:430


interuptables

interuptables: Object[] = []

Source

packages/core/src/core.ts:434


operations

protected operations: Object = {}

Contains all operations defined by services

Index signature

[key: string]: OperationDefinitionInfo

Source

packages/core/src/core.ts:393


registry

protected registry: Store<any, StoreParameters, StoreEvents>

Application registry

Source

packages/core/src/core.ts:385


router

protected router: Router

Router that will route http request in

Source

packages/core/src/core.ts:311


captureRejectionSymbol

static readonly captureRejectionSymbol: typeof captureRejectionSymbol

Inherited from

events.EventEmitter.captureRejectionSymbol

Source

packages/core/node_modules/@types/node/events.d.ts:328


captureRejections

static captureRejections: boolean

Sets or gets the default captureRejection value for all emitters.

Inherited from

events.EventEmitter.captureRejections

Source

packages/core/node_modules/@types/node/events.d.ts:333


defaultMaxListeners

static defaultMaxListeners: number

Inherited from

events.EventEmitter.defaultMaxListeners

Source

packages/core/node_modules/@types/node/events.d.ts:334


errorMonitor

static readonly errorMonitor: typeof errorMonitor

This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.

Installing a listener using this symbol does not change the behavior once an 'error' event is emitted, therefore the process will still crash if no regular 'error' listener is installed.

Inherited from

events.EventEmitter.errorMonitor

Source

packages/core/node_modules/@types/node/events.d.ts:327

Methods

addListener()

addListener(eventName, listener): this

Alias for emitter.on(eventName, listener).

Parameters

eventName: string | symbol

listener: (...args) => void

Returns

this

Inherited from

events.EventEmitter.addListener

Since

v0.1.26

Source

packages/core/node_modules/@types/node/events.d.ts:354


addRoute()

addRoute(url, info): void

Add a route dynamicaly

Parameters

url: string

of the route can contains dynamic part like {uuid}

info: RouteInfo

the type of executor

Returns

void

Source

packages/core/src/core.ts:1006


callOperation()

callOperation(context, operationId): Promise<any>

Call an operation within the framework

Parameters

context: OperationContext<any, any>

operationId: string

Returns

Promise<any>

Source

packages/core/src/core.ts:852


checkCORSRequest()

protected checkCORSRequest(ctx): Promise<boolean>

Verify if an origin is allowed to do request on the API

Parameters

ctx: WebContext<any, any>

Returns

Promise<boolean>

Source

packages/core/src/core.ts:1511


checkOperation()

checkOperation(context, operationId): Promise<void>

Check if an operation can be executed with the current context

Parameters

context: OperationContext<any, any>

operationId: string

Returns

Promise<void>

Source

packages/core/src/core.ts:823


checkOperationPermission()

checkOperationPermission(context, operationId): boolean

Check if an operation can be executed with the current context Not checking the input use checkOperation instead to check everything

Parameters

context: OperationContext<any, any>

operationId: string

Returns

boolean

true if operation can be executed

Throws

OperationError if operation is unknown

Source

packages/core/src/core.ts:805


checkRequest()

protected checkRequest(ctx): Promise<boolean>

Verify if a request can be done

Parameters

ctx: WebContext<any, any>

Returns

Promise<boolean>

Source

packages/core/src/core.ts:1498


createService()

protected createService(services, service): void

Parameters

services: any

service: string

Returns

void

Source

packages/core/src/core.ts:1216


emit()

emit<K>(eventType, event?, ...data?): boolean

Type parameters

K extends string | number | symbol

Parameters

eventType: string | symbol | K

event?: E[K]

• ...data?: any[]

Returns

boolean

Overrides

events.EventEmitter.emit

Source

packages/core/src/core.ts:1445


emitSync()

emitSync<K>(eventType, event?, ...data?): Promise<any[]>

Emit the event with data and wait for Promise to finish if listener returned a Promise

Type parameters

K extends string | number | symbol

Parameters

eventType: symbol | K

event?: E[K]

• ...data?: any[]

Returns

Promise<any[]>

Source

packages/core/src/core.ts:1452


eventNames()

eventNames(): (string | symbol)[]

Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

const EventEmitter = require('events');
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});

const sym = Symbol('symbol');
myEE.on(sym, () => {});

console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]

Returns

(string | symbol)[]

Inherited from

events.EventEmitter.eventNames

Since

v6.0.0

Source

packages/core/node_modules/@types/node/events.d.ts:669


exportOpenAPI()

exportOpenAPI(skipHidden): Document<Object>

Export OpenAPI

Parameters

skipHidden: boolean= true

Returns

Document<Object>

Source

packages/core/src/core.ts:1520


flush()

flush(_context): void

Flush the entire response to the client

Parameters

_context: WebContext<any, any>

Returns

void

Source

packages/core/src/core.ts:1118


flushHeaders()

flushHeaders(_context): void

Flush the headers to the response, no more header modification is possible after that

This method should set the context.setFlushedHeaders() and use of context.hasFlushedHeaders()

Parameters

_context: WebContext<any, any>

Returns

void

Abstract

Source

packages/core/src/core.ts:1111


getApiUrl()

getApiUrl(subpath): string

Get absolute url with subpath

Parameters

subpath: string= ""

Returns

string

Source

packages/core/src/core.ts:648


getAppPath()

getAppPath(subpath): string

Return application path with subpath

Helper that redirect to this.application.getAppPath

Parameters

subpath: string= ""

Returns

string

Source

packages/core/src/core.ts:663


getApplication()

getApplication(): Application

Return application definition

Returns

Application

Source

packages/core/src/core.ts:677


getBeans()

getBeans(): any

Returns

any

Source

packages/core/src/core.ts:1240


getBinaryStore()

getBinaryStore<T>(modelOrConstructor, attribute): BinaryService<BinaryParameters, BinaryEvents>

Get the service that manage a model

Type parameters

T extends CoreModel

Parameters

modelOrConstructor: T | Constructor<T>

attribute: string

Returns

BinaryService<BinaryParameters, BinaryEvents>

Source

packages/core/src/core.ts:608


getConfiguration()

getConfiguration(): Configuration

Returns

Configuration

Source

packages/core/src/core.ts:1059


getCrypto()

getCrypto(): CryptoService<CryptoServiceParameters>

Return the crypto service

Returns

CryptoService<CryptoServiceParameters>

Source

packages/core/src/core.ts:1297


getGlobalContext()

getGlobalContext(): GlobalContext

Get the system context

Returns

GlobalContext

Source

packages/core/src/core.ts:1140


getGlobalParams()

getGlobalParams(): any

Return the global parameters of a domain

Returns

any

Source

packages/core/src/core.ts:1132


getInstanceId()

getInstanceId(): string

Return Core instance id

It is a random generated string

Returns

string

Source

packages/core/src/core.ts:639


getLocales()

getLocales(): string[]

To define the locales just add a locales: ['en-GB', 'fr-FR'] in your host global configuration

Returns

string[]

The configured locales or "en-GB" if none are defined

Source

packages/core/src/core.ts:975


getLogger()

getLogger(clazz): Logger

Get a Logger for a class

Parameters

clazz: string | Service<ServiceParameters, Events>

Returns

Logger

Source

packages/core/src/core.ts:986


getMaxListeners()

getMaxListeners(): number

Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to defaultMaxListeners.

Returns

number

Inherited from

events.EventEmitter.getMaxListeners

Since

v1.0.0

Source

packages/core/node_modules/@types/node/events.d.ts:526


getMetric()

getMetric<T>(type, configuration): T

Get a metric object

Use the Service.getMetric method if possible

This is map from prometheus 3 types of metrics Our hope is that we can adapt them to export to other metrics system if needed

Type parameters

T = Counter<string> | Histogram<string> | Gauge<string>

Parameters

type: Constructor<T, [MetricConfiguration<T, string>]>

configuration: MetricConfiguration<T, string>

Returns

T

Source

packages/core/src/core.ts:1629


getModel()

getModel<T>(name): CoreModelDefinition<T>

Check for a model name and return the wanted class or throw exception if none found

Type parameters

T extends CoreModel = CoreModel

Parameters

name: any

The model name to retrieve

Returns

CoreModelDefinition<T>

Source

packages/core/src/core.ts:1084


getModelObject()

getModelObject<T>(fullUuid, partials?): Promise<T>

Get an object from the application based on its full uuid

Type parameters

T extends CoreModel = CoreModel

Parameters

fullUuid: string

partials?: any

Returns

Promise<T>

Source

packages/core/src/core.ts:710


getModelStore()

getModelStore<T>(modelOrConstructor): Store<T, StoreParameters, StoreEvents>

Get the store assigned to this model

Type parameters

T extends CoreModel

Parameters

modelOrConstructor: T | Constructor<T>

Returns

Store<T, StoreParameters, StoreEvents>

Source

packages/core/src/core.ts:574


getModels()

getModels(): Object

Return a map of defined models

Returns

Object

Source

packages/core/src/core.ts:1075


getModules()

getModules(): CachedModule

Retrieve all detected modules definition

Returns

CachedModule

Source

packages/core/src/core.ts:670


getRegistry()

getRegistry(): Store<any, StoreParameters, StoreEvents>

A registry is a predefined store

Returns

Store<any, StoreParameters, StoreEvents>

Source

packages/core/src/core.ts:1289


getRouter()

getRouter(): Router

Return current Router object

Returns

Router

Source

packages/core/src/core.ts:1022


getService()

getService<T>(name): T

Check for a service name and return the wanted singleton or undefined if none found

Type parameters

T extends Service<ServiceParameters, Events>

Parameters

name: string= ""

The service name to retrieve

Returns

T

Source

packages/core/src/core.ts:1031


getServiceParams()

getServiceParams(service, configuration): any

Get a full resolved service parameter

Parameters

service: string

configuration: Object= undefined

configuration.parameters?: any

configuration.services: any

Returns

any

Source

packages/core/src/core.ts:1199


getServices()

getServices(): Object

Return a map of defined services

Returns

Object

Source

packages/core/src/core.ts:1039


getServicesOfType()

getServicesOfType<T>(type): Object

Return a map of services that extends type

Type parameters

T extends Service<ServiceParameters, Events>

Parameters

type: Constructor<T, [Core<CoreEvents>, string, any]>= undefined

The type of implementation

Returns

Object

Source

packages/core/src/core.ts:1048


getStores()

getStores(): Object

Return a map of defined stores

Returns

Object

Source

packages/core/src/core.ts:1067


getUuid()

getUuid(format): string

Return a UUID

Parameters

format: "ascii" | "base64" | "binary" | "hex" | "uuid"= "uuid"

to return different type of format Plan to implement base64 and maybe base85

Returns

string

Source

packages/core/src/core.ts:1428


getVersion()

getVersion(): string

Return webda current version

Returns

string

package version

Since

0.4.0

Source

packages/core/src/core.ts:966


getWorkerOutput()

getWorkerOutput(): WorkerOutput

Get WorkerOutput

Returns

WorkerOutput

Source

packages/core/src/core.ts:684


init()

init(): Promise<void>

Init Webda

It will resolve Services init method and autolink

Returns

Promise<void>

Source

packages/core/src/core.ts:719


initService()

protected initService(service): Promise<void>

Init one service

Parameters

service: string

Returns

Promise<void>

Source

packages/core/src/core.ts:692


initStatics()

initStatics(): void

Init services and Beans along with Routes

Returns

void

Source

packages/core/src/core.ts:1335


isDebug()

isDebug(): boolean

Return if Webda is in debug mode

Returns

boolean

Source

packages/core/src/core.ts:1125


jsonFilter()

protected jsonFilter(key, value): any

Parameters

key: string

value: any

Returns

any

Source

packages/core/src/core.ts:1317


listOperations()

listOperations(): Object

Get available operations

Returns

Object

Source

packages/core/src/core.ts:862


listenerCount()

listenerCount(eventName): number

Returns the number of listeners listening to the event named eventName.

Parameters

eventName: string | symbol

The name of the event being listened for

Returns

number

Inherited from

events.EventEmitter.listenerCount

Since

v3.2.0

Source

packages/core/node_modules/@types/node/events.d.ts:616


listeners()

listeners(eventName): Function[]

Returns a copy of the array of listeners for the event named eventName.

server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]

Parameters

eventName: string | symbol

Returns

Function[]

Inherited from

events.EventEmitter.listeners

Since

v0.1.26

Source

packages/core/node_modules/@types/node/events.d.ts:539


log()

log(level, ...args): void

Logs

Parameters

level: WorkerLogLevel

• ...args: any[]

Returns

void

Source

packages/core/src/core.ts:1482


newContext()

newContext<T>(info, noInit): Promise<OperationContext<any, any>>

Get a context based on the info

Type parameters

T extends OperationContext<any, any>

Parameters

info: ContextProviderInfo

noInit: boolean= false

Returns

Promise<OperationContext<any, any>>

Source

packages/core/src/core.ts:1382


newWebContext()

newWebContext<T>(httpContext, stream, noInit): Promise<T>

Create a new context for a request

Type parameters

T extends WebContext<any, any>

Parameters

httpContext: HttpContext

THe HTTP request context

stream: Writable= undefined

The request output stream if any

noInit: boolean= false

Returns

Promise<T>

A new context object to pass along

Source

packages/core/src/core.ts:1403


off()

off(eventName, listener): this

Alias for emitter.removeListener().

Parameters

eventName: string | symbol

listener: (...args) => void

Returns

this

Inherited from

events.EventEmitter.off

Since

v10.0.0

Source

packages/core/node_modules/@types/node/events.d.ts:499


on()

on<Key>(event, listener): this

Type the listener part

Type parameters

Key extends string | number | symbol

Parameters

event: symbol | Key

listener: (evt) => void

Returns

this

Overrides

events.EventEmitter.on

Source

packages/core/src/core.ts:1472


once()

once(eventName, listener): this

Adds a one-timelistener function for the event named eventName. The next time eventName is triggered, this listener is removed and then invoked.

server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});

Returns a reference to the EventEmitter, so that calls can be chained.

By default, event listeners are invoked in the order they are added. Theemitter.prependOnceListener() method can be used as an alternative to add the event listener to the beginning of the listeners array.

const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a

Parameters

eventName: string | symbol

The name of the event.

listener: (...args) => void

The callback function

Returns

this

Inherited from

events.EventEmitter.once

Since

v0.3.0

Source

packages/core/node_modules/@types/node/events.d.ts:414


parameter()

parameter(name): any

Retrieve a global parameter

Parameters

name: string

Returns

any

Source

packages/core/src/core.ts:1489


prependListener()

prependListener(eventName, listener): this

Adds the listener function to the beginning of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventNameand listener will result in the listener being added, and called, multiple times.

server.prependListener('connection', (stream) => {
console.log('someone connected!');
});

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters

eventName: string | symbol

The name of the event.

listener: (...args) => void

The callback function

Returns

this

Inherited from

events.EventEmitter.prependListener

Since

v6.0.0

Source

packages/core/node_modules/@types/node/events.d.ts:634


prependOnceListener()

prependOnceListener(eventName, listener): this

Adds a one-timelistener function for the event named eventName to the beginning of the listeners array. The next time eventName is triggered, this listener is removed, and then invoked.

server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters

eventName: string | symbol

The name of the event.

listener: (...args) => void

The callback function

Returns

this

Inherited from

events.EventEmitter.prependOnceListener

Since

v6.0.0

Source

packages/core/node_modules/@types/node/events.d.ts:650


rawListeners()

rawListeners(eventName): Function[]

Returns a copy of the array of listeners for the event named eventName, including any wrappers (such as those created by .once()).

const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));

// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];

// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();

// Logs "log once" to the console and removes the listener
logFnWrapper();

emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');

// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');

Parameters

eventName: string | symbol

Returns

Function[]

Inherited from

events.EventEmitter.rawListeners

Since

v9.4.0

Source

packages/core/node_modules/@types/node/events.d.ts:569


registerCORSFilter()

registerCORSFilter(filter): void

Register a CORS request filtering

Does not apply in devMode

Parameters

filter: RequestFilter<WebContext<any, any>>

Returns

void

Source

packages/core/src/core.ts:909


registerContextProvider()

registerContextProvider(provider): void

Register a new context provider

Parameters

provider: ContextProvider

Returns

void

Source

packages/core/src/core.ts:917


registerOperation()

registerOperation(operationId, definition): void

Register a new operation within the app

Parameters

operationId: string

definition: OperationDefinition

Returns

void

Source

packages/core/src/core.ts:879


registerRequestFilter()

registerRequestFilter(filter): void

Register a request filtering

Will apply to all requests regardless of the devMode

Parameters

filter: RequestFilter<WebContext<any, any>>

Returns

void

Source

packages/core/src/core.ts:899


reinit()

reinit(updates): Promise<void>

Reinit all services with updated parameters

Parameters

updates: any

Returns

Promise<void>

Source

packages/core/src/core.ts:1172


reinitService()

protected reinitService(service): Promise<void>

Reinit one service

Parameters

service: string

Returns

Promise<void>

Source

packages/core/src/core.ts:1156


removeAllListeners()

removeAllListeners(event?): this

Removes all listeners, or those of the specified eventName.

It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters

event?: string | symbol

Returns

this

Inherited from

events.EventEmitter.removeAllListeners

Since

v0.1.26

Source

packages/core/node_modules/@types/node/events.d.ts:510


removeListener()

removeListener(eventName, listener): this

Removes the specified listener from the listener array for the event namedeventName.

const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the listener array for the specified eventName, then removeListener() must be called multiple times to remove each instance.

Once an event is emitted, all listeners attached to it at the time of emitting are called in order. This implies that anyremoveListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them fromemit() in progress. Subsequent events behave as expected.

const myEmitter = new MyEmitter();

const callbackA = () => {
console.log('A');
myEmitter.removeListener('event', callbackB);
};

const callbackB = () => {
console.log('B');
};

myEmitter.on('event', callbackA);

myEmitter.on('event', callbackB);

// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
// A
// B

// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
// A

Because listeners are managed using an internal array, calling this will change the position indices of any listener registered after the listener being removed. This will not impact the order in which listeners are called, but it means that any copies of the listener array as returned by the emitter.listeners() method will need to be recreated.

When a single function has been added as a handler multiple times for a single event (as in the example below), removeListener() will remove the most recently added instance. In the example the once('ping')listener is removed:

const ee = new EventEmitter();

function pong() {
console.log('pong');
}

ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);

ee.emit('ping');
ee.emit('ping');

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters

eventName: string | symbol

listener: (...args) => void

Returns

this

Inherited from

events.EventEmitter.removeListener

Since

v0.1.26

Source

packages/core/node_modules/@types/node/events.d.ts:494


removeRoute()

removeRoute(url): void

Remove a route dynamicly

Parameters

url: string

to remove

Returns

void

Source

packages/core/src/core.ts:1015


setGlobalContext()

setGlobalContext(context): void

Set the system context

Parameters

context: GlobalContext

Returns

void

Source

packages/core/src/core.ts:1148


setMaxListeners()

setMaxListeners(n): this

By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set toInfinity (or 0) to indicate an unlimited number of listeners.

Returns a reference to the EventEmitter, so that calls can be chained.

Parameters

n: number

Returns

this

Inherited from

events.EventEmitter.setMaxListeners

Since

v0.3.5

Source

packages/core/node_modules/@types/node/events.d.ts:520


setModelStore()

setModelStore(model, store): void

Enforce a specific store for a model

Useful in some specific case when you want to update store dynamically

Parameters

model: Constructor<CoreModel>

store: Store<CoreModel, StoreParameters, StoreEvents>

Returns

void

Source

packages/core/src/core.ts:565


stop()

stop(): Promise<void>

Stop all services

Returns

Promise<void>

Source

packages/core/src/core.ts:1304


toPublicJSON()

toPublicJSON(object): string

Convert an object to JSON using the Webda json filter

Parameters

object: any

The object to export

Returns

string

The export of the strip object ( removed all attribute with _ )

Source

packages/core/src/core.ts:1418


updateContextWithRoute()

updateContextWithRoute(ctx): boolean

Add to context information and executor based on the http context

Parameters

ctx: WebContext<any, any>

Returns

boolean

Source

packages/core/src/core.ts:1091


validateSchema()

validateSchema(webdaObject, object, ignoreRequired?): true

Validate the object with schema

Parameters

webdaObject: string | CoreModel

object: any

to validate

ignoreRequired?: boolean

Returns

true

Source

packages/core/src/core.ts:927


get()

static get(): Core<CoreEvents>

Get the singleton of Webda Core

Returns

Core<CoreEvents>

Source

packages/core/src/core.ts:536


getEventListeners()

static getEventListeners(emitter, name): Function[]

Returns a copy of the array of listeners for the event named eventName.

For EventEmitters this behaves exactly the same as calling .listeners on the emitter.

For EventTargets this is the only way to get the event listeners for the event target. This is useful for debugging and diagnostic purposes.

const { getEventListeners, EventEmitter } = require('events');

{
const ee = new EventEmitter();
const listener = () => console.log('Events are fun');
ee.on('foo', listener);
getEventListeners(ee, 'foo'); // [listener]
}
{
const et = new EventTarget();
const listener = () => console.log('Events are fun');
et.addEventListener('foo', listener);
getEventListeners(et, 'foo'); // [listener]
}

Parameters

emitter: EventEmitter | _DOMEventTarget

name: string | symbol

Returns

Function[]

Inherited from

events.EventEmitter.getEventListeners

Since

v15.2.0, v14.17.0

Source

packages/core/node_modules/@types/node/events.d.ts:299


getMachineId()

static getMachineId(): string

Returns

string

Source

packages/core/src/core.ts:1322


listenerCount()

static listenerCount(emitter, eventName): number

A class method that returns the number of listeners for the given eventNameregistered on the given emitter.

const { EventEmitter, listenerCount } = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2

Parameters

emitter: EventEmitter

The emitter to query

eventName: string | symbol

The event name

Returns

number

Inherited from

events.EventEmitter.listenerCount

Since

v0.9.12

Deprecated

Since v3.2.0 - Use listenerCount instead.

Source

packages/core/node_modules/@types/node/events.d.ts:271


on()

static on(emitter, eventName, options?): AsyncIterableIterator<any>

const { on, EventEmitter } = require('events');

(async () => {
const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo')) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();

Returns an AsyncIterator that iterates eventName events. It will throw if the EventEmitter emits 'error'. It removes all listeners when exiting the loop. The value returned by each iteration is an array composed of the emitted event arguments.

An AbortSignal can be used to cancel waiting on events:

const { on, EventEmitter } = require('events');
const ac = new AbortController();

(async () => {
const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo', { signal: ac.signal })) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();

process.nextTick(() => ac.abort());

Parameters

emitter: EventEmitter

eventName: string

The name of the event being listened for

options?: StaticEventEmitterOptions

Returns

AsyncIterableIterator<any>

that iterates eventName events emitted by the emitter

Inherited from

events.EventEmitter.on

Since

v13.6.0, v12.16.0

Source

packages/core/node_modules/@types/node/events.d.ts:254


once()

once(emitter, eventName, options)

static once(emitter, eventName, options?): Promise<any[]>

Creates a Promise that is fulfilled when the EventEmitter emits the given event or that is rejected if the EventEmitter emits 'error' while waiting. The Promise will resolve with an array of all the arguments emitted to the given event.

This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event semantics and does not listen to the 'error' event.

const { once, EventEmitter } = require('events');

async function run() {
const ee = new EventEmitter();

process.nextTick(() => {
ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
ee.emit('error', err);
});

try {
await once(ee, 'myevent');
} catch (err) {
console.log('error happened', err);
}
}

run();

The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the 'error' event itself, then it is treated as any other kind of event without special handling:

const { EventEmitter, once } = require('events');

const ee = new EventEmitter();

once(ee, 'error')
.then(([err]) => console.log('ok', err.message))
.catch((err) => console.log('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

An AbortSignal can be used to cancel waiting for the event:

const { EventEmitter, once } = require('events');

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
try {
await once(emitter, event, { signal });
console.log('event emitted!');
} catch (error) {
if (error.name === 'AbortError') {
console.error('Waiting for the event was canceled!');
} else {
console.error('There was an error', error.message);
}
}
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
Parameters

emitter: _NodeEventTarget

eventName: string | symbol

options?: StaticEventEmitterOptions

Returns

Promise<any[]>

Inherited from

events.EventEmitter.once

Since

v11.13.0, v10.16.0

Source

packages/core/node_modules/@types/node/events.d.ts:194

once(emitter, eventName, options)

static once(emitter, eventName, options?): Promise<any[]>

Parameters

emitter: _DOMEventTarget

eventName: string

options?: StaticEventEmitterOptions

Returns

Promise<any[]>

Inherited from

events.EventEmitter.once

Source

packages/core/node_modules/@types/node/events.d.ts:195


registerInteruptableProcess()

static registerInteruptableProcess(interuptable): void

Register a cancelable process

Parameters

interuptable: Object

interuptable.cancel: () => Promise<void>

Returns

void

Source

packages/core/src/core.ts:494


setMaxListeners()

static setMaxListeners(n?, ...eventTargets?): void

const {
setMaxListeners,
EventEmitter
} = require('events');

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);

Parameters

n?: number

A non-negative number. The maximum number of listeners per EventTarget event.

• ...eventTargets?: (EventEmitter | _DOMEventTarget)[]

Returns

void

Inherited from

events.EventEmitter.setMaxListeners

Since

v15.4.0

Source

packages/core/node_modules/@types/node/events.d.ts:317


sleep()

static sleep(time): Promise<void>

Pause for time ms

Parameters

time: any

ms

Returns

Promise<void>

Source

packages/core/src/core.ts:791


unregisterInteruptableProcess()

static unregisterInteruptableProcess(interuptable): void

Unregister a cancelable process

Parameters

interuptable: Object

interuptable.cancel: () => Promise<void>

Returns

void

Source

packages/core/src/core.ts:502