
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
@xylabs/creatable
Advanced tools
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
@xylabs/creatable
BaseEmitter
<Partial
<TParams
>, TEventData
>TParams
extends CreatableParams
= CreatableParams
TEventData
extends EventData
= EventData
new AbstractCreatable<TParams, TEventData>(key, params): AbstractCreatable<TParams, TEventData>;
unknown
Partial
<TParams
>
AbstractCreatable
<TParams
, TEventData
>
BaseEmitter<Partial<TParams>, TEventData>.constructor
static optional defaultLogger: Logger;
BaseEmitter.defaultLogger
readonly static globalInstances: Record<BaseClassName, WeakRef<Base>[]>;
BaseEmitter.globalInstances
readonly static globalInstancesCountHistory: Record<BaseClassName, number[]>;
BaseEmitter.globalInstancesCountHistory
readonly static uniqueName: string;
BaseEmitter.uniqueName
optional defaultLogger: Logger;
eventData: TEventData;
BaseEmitter.eventData
get static historyInterval(): number;
number
set static historyInterval(value): void;
number
void
BaseEmitter.historyInterval
get static historyTime(): number;
number
set static historyTime(value): void;
number
void
BaseEmitter.historyTime
get static maxGcFrequency(): number;
number
set static maxGcFrequency(value): void;
number
void
BaseEmitter.maxGcFrequency
get static maxHistoryDepth(): number;
number
BaseEmitter.maxHistoryDepth
get logger(): undefined | Logger;
undefined
| Logger
BaseEmitter.logger
get meter(): undefined | Meter;
undefined
| Meter
BaseEmitter.meter
get tracer(): undefined | Tracer;
undefined
| Tracer
BaseEmitter.tracer
get name(): string;
string
get params(): TParams;
TParams
BaseEmitter.params
get statusReporter():
| undefined
| CreatableStatusReporter<void>;
| undefined
| CreatableStatusReporter
<void
>
static gc(force?): void;
boolean
void
BaseEmitter.gc
static gc(className): void;
string
void
BaseEmitter.gc
static instanceCount(className): number;
string
number
BaseEmitter.instanceCount
static instanceCounts(): Record<BaseClassName, number>;
Record
<BaseClassName
, number
>
BaseEmitter.instanceCounts
static startHistory(): void;
void
BaseEmitter.startHistory
static stopHistory(): void;
void
BaseEmitter.stopHistory
static create<T>(this, inParams): Promise<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]> = {}
Promise
<T
>
static createHandler<T>(this, instance): Promisable<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
T
Promisable
<T
>
static paramsHandler<T>(this, params): Promisable<T["params"]>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]> = {}
Promisable
<T
["params"
]>
createHandler(): Promisable<void>;
Promisable
<void
>
paramsValidator(params): TParams;
Partial
<TParams
>
TParams
start(): Promise<boolean>;
Promise
<boolean
>
stop(): Promise<boolean>;
Promise
<boolean
>
protected _noOverride(functionName): void;
string
= ...
void
protected startHandler(): Promisable<void>;
Promisable
<void
>
protected stopHandler(): Promisable<void>;
Promisable
<void
>
clearListeners(eventNames): this;
keyof TEventData
| keyof TEventData
[]
this
BaseEmitter.clearListeners
emit<TEventName, TEventArgs>(eventName, eventArgs): Promise<void>;
TEventName
extends string
| number
| symbol
= keyof TEventData
TEventArgs
extends EventArgs
= TEventData
[TEventName
]
TEventName
TEventArgs
Promise
<void
>
BaseEmitter.emit
emitSerial<TEventName, TEventArgs>(eventName, eventArgs): Promise<void>;
TEventName
extends string
| number
| symbol
= keyof TEventData
TEventArgs
extends EventArgs
= TEventData
[TEventName
]
TEventName
TEventArgs
Promise
<void
>
BaseEmitter.emitSerial
listenerCount(eventNames): number;
keyof TEventData
| keyof TEventData
[]
number
BaseEmitter.listenerCount
off<TEventName>(eventNames, listener): void;
TEventName
extends string
| number
| symbol
TEventName
| TEventName
[]
EventListener
<TEventData
[TEventName
]>
void
BaseEmitter.off
offAny(listener): void;
EventAnyListener
void
BaseEmitter.offAny
on<TEventName>(eventNames, listener): () => void;
TEventName
extends string
| number
| symbol
TEventName
| TEventName
[]
EventListener
<TEventData
[TEventName
]>
(): void;
void
BaseEmitter.on
onAny(listener): () => void;
EventAnyListener
(): void;
void
BaseEmitter.onAny
once<TEventName>(eventName, listener): () => void;
TEventName
extends string
| number
| symbol
TEventName
EventListener
<TEventData
[TEventName
]>
(): void;
void
BaseEmitter.once
AbstractCreatable
<TParams
, TEventData
>TParams
extends CreatableParams
= CreatableParams
TEventData
extends EventData
= EventData
new AbstractCreatableWithFactory<TParams, TEventData>(key, params): AbstractCreatableWithFactory<TParams, TEventData>;
unknown
Partial
<TParams
>
AbstractCreatableWithFactory
<TParams
, TEventData
>
static optional defaultLogger: Logger;
AbstractCreatable
.defaultLogger
readonly static globalInstances: Record<BaseClassName, WeakRef<Base>[]>;
AbstractCreatable
.globalInstances
readonly static globalInstancesCountHistory: Record<BaseClassName, number[]>;
AbstractCreatable
.globalInstancesCountHistory
readonly static uniqueName: string;
optional defaultLogger: Logger;
AbstractCreatable
.defaultLogger
eventData: TEventData;
get static historyInterval(): number;
number
set static historyInterval(value): void;
number
void
AbstractCreatable
.historyInterval
get static historyTime(): number;
number
set static historyTime(value): void;
number
void
get static maxGcFrequency(): number;
number
set static maxGcFrequency(value): void;
number
void
AbstractCreatable
.maxGcFrequency
get static maxHistoryDepth(): number;
number
AbstractCreatable
.maxHistoryDepth
get logger(): undefined | Logger;
undefined
| Logger
get meter(): undefined | Meter;
undefined
| Meter
get tracer(): undefined | Tracer;
undefined
| Tracer
get name(): string;
string
get params(): TParams;
TParams
get statusReporter():
| undefined
| CreatableStatusReporter<void>;
| undefined
| CreatableStatusReporter
<void
>
AbstractCreatable
.statusReporter
static gc(force?): void;
boolean
void
static gc(className): void;
string
void
static instanceCount(className): number;
string
number
AbstractCreatable
.instanceCount
static instanceCounts(): Record<BaseClassName, number>;
Record
<BaseClassName
, number
>
AbstractCreatable
.instanceCounts
static startHistory(): void;
void
AbstractCreatable
.startHistory
static stopHistory(): void;
void
static create<T>(this, inParams): Promise<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]> = {}
Promise
<T
>
static createHandler<T>(this, instance): Promisable<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
T
Promisable
<T
>
AbstractCreatable
.createHandler
static paramsHandler<T>(this, params): Promisable<T["params"]>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]> = {}
Promisable
<T
["params"
]>
AbstractCreatable
.paramsHandler
createHandler(): Promisable<void>;
Promisable
<void
>
AbstractCreatable
.createHandler
paramsValidator(params): TParams;
Partial
<TParams
>
TParams
AbstractCreatable
.paramsValidator
start(): Promise<boolean>;
Promise
<boolean
>
stop(): Promise<boolean>;
Promise
<boolean
>
protected _noOverride(functionName): void;
string
= ...
void
protected startHandler(): Promisable<void>;
Promisable
<void
>
AbstractCreatable
.startHandler
protected stopHandler(): Promisable<void>;
Promisable
<void
>
static factory<T>(
this,
params?,
labels?): CreatableFactory<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]>
clearListeners(eventNames): this;
keyof TEventData
| keyof TEventData
[]
this
AbstractCreatable
.clearListeners
emit<TEventName, TEventArgs>(eventName, eventArgs): Promise<void>;
TEventName
extends string
| number
| symbol
= keyof TEventData
TEventArgs
extends EventArgs
= TEventData
[TEventName
]
TEventName
TEventArgs
Promise
<void
>
emitSerial<TEventName, TEventArgs>(eventName, eventArgs): Promise<void>;
TEventName
extends string
| number
| symbol
= keyof TEventData
TEventArgs
extends EventArgs
= TEventData
[TEventName
]
TEventName
TEventArgs
Promise
<void
>
listenerCount(eventNames): number;
keyof TEventData
| keyof TEventData
[]
number
AbstractCreatable
.listenerCount
off<TEventName>(eventNames, listener): void;
TEventName
extends string
| number
| symbol
TEventName
| TEventName
[]
EventListener
<TEventData
[TEventName
]>
void
offAny(listener): void;
EventAnyListener
void
on<TEventName>(eventNames, listener): () => void;
TEventName
extends string
| number
| symbol
TEventName
| TEventName
[]
EventListener
<TEventData
[TEventName
]>
(): void;
void
onAny(listener): () => void;
EventAnyListener
(): void;
void
once<TEventName>(eventName, listener): () => void;
TEventName
extends string
| number
| symbol
TEventName
EventListener
<TEventData
[TEventName
]>
(): void;
void
T
extends CreatableInstance
= CreatableInstance
new Factory<T>(
creatable,
params?,
labels?): Factory<T>;
Creatable
<T
>
Partial
<T
["params"
]>
Labels
= {}
Factory
<T
>
creatable: Creatable<T>;
optional defaultParams: Partial<T["params"]>;
optional labels: Labels;
static withParams<T>(
creatableModule,
params?,
labels?): Factory<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]>
Labels
= {}
Factory
<T
>
create(params?): Promise<T>;
Partial
<T
["params"
]>
Promise
<T
>
function creatable<T>(): <U>(constructor) => void;
Class annotation to be used to decorate Modules which support an asynchronous creation pattern
T
extends CreatableInstance
<CreatableParams
, EventData
>
The decorated Module requiring it implement the members of the CreatableModule as statics properties/methods
<U>(constructor): void;
U
extends Creatable
<T
>
U
void
function creatableFactory(): <U>(constructor) => void;
Class annotation to be used to decorate Modules which support an asynchronous creation factory pattern
The decorated Module requiring it implement the members of the CreatableModule as statics properties/methods
<U>(constructor): void;
U
extends CreatableFactory
<CreatableInstance
<CreatableParams
, EventData
>>
U
void
function hasAllLabels(source?, required?): boolean;
Returns true if the source object has all the labels from the required set
Source object to check against
Set of labels to check for in source
boolean
True of the source object has all the labels from the required set
T
extends CreatableInstance
= CreatableInstance
new Creatable(key, params): T & AbstractCreatable<T["params"], EventData>;
unknown
Partial
<CreatableParams
>
T
& AbstractCreatable
<T
["params"
], EventData
>
optional defaultLogger: Logger;
create<T>(this, params?): Promise<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]>
Promise
<T
>
createHandler<T>(this, instance): Promisable<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
T
Promisable
<T
>
paramsHandler<T>(this, params?): Promisable<T["params"]>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]>
Promisable
<T
["params"
]>
Omit
<Creatable
<T
>,
| "create"
| "createHandler"
| "paramsHandler"
| "defaultLogger"
| "factory"
>T
extends CreatableInstance
= CreatableInstance
create(this, params?): Promise<T>;
CreatableFactory
<T
>
Partial
<T
["params"
]>
Promise
<T
>
EventEmitter
<TEventData
>TParams
extends CreatableParams
= CreatableParams
TEventData
extends EventData
= EventData
eventData: TEventData;
EventEmitter.eventData
name: string;
params: TParams;
clearListeners(eventNames): void;
keyof TEventData
| keyof TEventData
[]
void
EventEmitter.clearListeners
emit<TEventName>(eventName, eventArgs): Promise<void>;
TEventName
extends string
| number
| symbol
TEventName
TEventData
[TEventName
]
Promise
<void
>
EventEmitter.emit
emitSerial<TEventName>(eventName, eventArgs): Promise<void>;
TEventName
extends string
| number
| symbol
TEventName
TEventData
[TEventName
]
Promise
<void
>
EventEmitter.emitSerial
listenerCount(eventNames): number;
keyof TEventData
| keyof TEventData
[]
number
EventEmitter.listenerCount
off<TEventName>(eventNames, listener): void;
TEventName
extends string
| number
| symbol
TEventName
| TEventName
[]
EventListener
<TEventData
[TEventName
]>
void
EventEmitter.off
offAny(listener): void;
Promise
<void
> | EventAnyListener
void
EventEmitter.offAny
on<TEventName>(eventNames, listener): EventUnsubscribeFunction;
TEventName
extends string
| number
| symbol
TEventName
| TEventName
[]
EventListener
<TEventData
[TEventName
]>
EventUnsubscribeFunction
EventEmitter.on
onAny(listener): EventUnsubscribeFunction;
EventAnyListener
EventUnsubscribeFunction
EventEmitter.onAny
once<TEventName>(eventName, listener): EventUnsubscribeFunction;
TEventName
extends string
| number
| symbol
TEventName
EventListener
<TEventData
[TEventName
]>
EventUnsubscribeFunction
EventEmitter.once
BaseEmitterParams
optional logger: Logger;
BaseEmitterParams.logger
optional meterProvider: MeterProvider;
BaseEmitterParams.meterProvider
optional traceProvider: TracerProvider;
BaseEmitterParams.traceProvider
optional name: string;
optional statusReporter: CreatableStatusReporter<void>;
T
extends void
| string
= void
report(
name,
status,
progress?): void;
string
Exclude
<T
extends void
? CreatableStatus
: T
| CreatableStatus
, "error"
>
number
void
report(
name,
status,
error?): void;
string
Extract
<T
extends void
? CreatableStatus
: T
| CreatableStatus
, "error"
>
Error
void
Creatable
<T
>T
extends CreatableInstance
= CreatableInstance
new CreatableWithFactory(key, params): T & AbstractCreatable<T["params"], EventData>;
unknown
Partial
<CreatableParams
>
T
& AbstractCreatable
<T
["params"
], EventData
>
optional defaultLogger: Logger;
create<T>(this, params?): Promise<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]>
Promise
<T
>
createHandler<T>(this, instance): Promisable<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
T
Promisable
<T
>
paramsHandler<T>(this, params?): Promisable<T["params"]>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]>
Promisable
<T
["params"
]>
factory<T>(
this,
params?,
labels?): CreatableFactory<T>;
T
extends CreatableInstance
<CreatableParams
, EventData
>
Creatable
<T
>
Partial
<T
["params"
]>
Object used to represent labels identifying a resource.
[key: string]: undefined | string
Interface for objects that have labels.
labels: T;
Interface for objects that have labels.
optional labels: T;
type CreatableName = Exclude<string, "creatable-name-reserved-32546239486"> & BaseClassName;
type CreatableStatus =
| "creating"
| "created"
| "starting"
| "started"
| "stopping"
| "stopped"
| "error";
Part of sdk-js
See the LICENSE file for license details
FAQs
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
The npm package @xylabs/creatable receives a total of 3,839 weekly downloads. As such, @xylabs/creatable popularity was classified as popular.
We found that @xylabs/creatable demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.