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
Properties
_ajv
protected
_ajv:Ajv
JSON Schema validator instance
Source
_ajvSchemas
protected
_ajvSchemas:Object
JSON Schema registry Save if a schema was added to Ajv already
Index signature
[key
: string
]: true
Source
_configFile
protected
_configFile:string
Source
_currentExecutor
protected
_currentExecutor:any
Current executor
Source
_init
protected
_init:Promise
<void
>
Init promise to ensure, webda is initiated Used for init() method
Source
_initPromise
protected
_initPromise:Promise
<void
>
Contains the current initialization process
Source
_initTime
protected
_initTime:number
When the Core was initialized
Source
_initiated
protected
_initiated:boolean
=false
If Core is already initiated
Source
_requestCORSFilters
protected
_requestCORSFilters:RequestFilter
<WebContext
<any
,any
>>[] =[]
CORS Filter registry
Added via [[Webda.registerCORSRequestFilter]] See [[CorsFilter]]
Source
_requestFilters
protected
_requestFilters:RequestFilter
<WebContext
<any
,any
>>[] =[]
Request Filter registry
Added via [[Webda.registerRequestFilter]] See [[CorsFilter]]
Source
application
protected
application:Application
Application that generates this Core
Source
cryptoService
protected
cryptoService:CryptoService
<CryptoServiceParameters
>
Manage encryption within the application
Source
failedServices
protected
failedServices:Object
={}
Services who failed to create or initialize
Index signature
[key
: string
]: any
Source
globalContext
protected
globalContext:GlobalContext
System context
Source
interuptables
interuptables:
Object
[] =[]
Source
operations
protected
operations:Object
={}
Contains all operations defined by services
Index signature
[key
: string
]: OperationDefinitionInfo
Source
registry
protected
registry:Store
<any
,StoreParameters
,StoreEvents
>
Application registry
Source
router
protected
router:Router
Router that will route http request in
Source
captureRejectionSymbol
static
readonly
captureRejectionSymbol: typeofcaptureRejectionSymbol
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: typeoferrorMonitor
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
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
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
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 Symbol
s.
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
getAppPath()
getAppPath(
subpath
):string
Return application path with subpath
Helper that redirect to this.application.getAppPath
Parameters
• subpath: string
= ""
Returns
string
Source
getApplication()
getApplication():
Application
Return application definition
Returns
Source
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
getConfiguration()
getConfiguration():
Configuration
Returns
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
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
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
getLogger()
getLogger(
clazz
):Logger
Get a Logger for a class
Parameters
• clazz: string
| Service
<ServiceParameters
, Events
>
Returns
Source
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
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
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
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
Source
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
getWorkerOutput()
getWorkerOutput():
WorkerOutput
Get WorkerOutput
Returns
WorkerOutput
Source
init()
init():
Promise
<void
>
Init Webda
It will resolve Services init method and autolink
Returns
Promise
<void
>
Source
initService()
protected
initService(service
):Promise
<void
>
Init one service
Parameters
• service: string
Returns
Promise
<void
>
Source
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
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 eventName
and 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
registerContextProvider()
registerContextProvider(
provider
):void
Register a new context provider
Parameters
• provider: ContextProvider
Returns
void
Source
registerOperation()
registerOperation(
operationId
,definition
):void
Register a new operation within the app
Parameters
• operationId: string
• definition: OperationDefinition
Returns
void
Source
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
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 EventEmitter
s 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
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
get()
static
get():Core
<CoreEvents
>
Get the singleton of Webda Core
Returns
Source
getEventListeners()
static
getEventListeners(emitter
,name
):Function
[]
Returns a copy of the array of listeners for the event named eventName
.
For EventEmitter
s this behaves exactly the same as calling .listeners
on
the emitter.
For EventTarget
s 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 eventName
registered 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
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
unregisterInteruptableProcess()
static
unregisterInteruptableProcess(interuptable
):void
Unregister a cancelable process
Parameters
• interuptable: Object
• interuptable.cancel: () => Promise
<void
>
Returns
void