@xylabs/creatable 4.13.3 → 4.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,122 +1,110 @@
1
- import type { BaseClassName } from '@xylabs/base';
2
- import { BaseEmitter } from '@xylabs/events';
3
- import type { BaseEmitterParams } from '@xylabs/events';
4
- import { CreatableStatusReporter as CreatableStatusReporter_2 } from './model/CreatableStatusReporter.ts';
5
- import type { EventData } from '@xylabs/events';
6
- import { Logger } from '@xylabs/logger';
7
- import type { Promisable } from '@xylabs/promise';
8
-
9
- export declare class AbstractCreatable<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams>, TEventData> {
10
- defaultLogger?: Logger;
11
- private _validatedParams?;
12
- constructor(key: unknown, params: Partial<TParams>);
13
- get name(): CreatableName;
14
- get params(): TParams;
15
- get statusReporter(): CreatableStatusReporter_2<void> | undefined;
16
- static create<T extends CreatableInstance>(this: Creatable<T>, inParams?: Partial<T['params']>): Promise<T>;
17
- static createHandler<T extends CreatableInstance>(this: Creatable<T>, instance: T): Promisable<T>;
18
- static paramsHandler<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params']>;
19
- createHandler(): Promisable<void>;
20
- paramsValidator(params: Partial<TParams>): TParams;
21
- start(): Promise<boolean>;
22
- stop(): Promise<boolean>;
23
- protected _noOverride(functionName?: string): void;
24
- protected startHandler(): Promisable<void>;
25
- protected stopHandler(): Promisable<void>;
26
- }
27
-
28
- export declare class AbstractCreatableWithFactory<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends AbstractCreatable<TParams, TEventData> {
29
- static factory<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactory<T>;
30
- }
31
-
32
- export declare interface Creatable<T extends CreatableInstance = CreatableInstance> {
33
- defaultLogger?: Logger;
34
- new (key: unknown, params: Partial<CreatableParams>): T & AbstractCreatable<T['params']>;
35
- create<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promise<T>;
36
- createHandler<T extends CreatableInstance>(this: Creatable<T>, instance: T): Promisable<T>;
37
- paramsHandler<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params']>;
38
- }
39
-
40
- /**
41
- * Class annotation to be used to decorate Modules which support
42
- * an asynchronous creation pattern
43
- * @returns The decorated Module requiring it implement the members
44
- * of the CreatableModule as statics properties/methods
45
- */
46
- export declare function creatable<T extends CreatableInstance>(): <U extends Creatable<T>>(constructor: U) => void;
47
-
48
- export declare interface CreatableFactory<T extends CreatableInstance = CreatableInstance> extends Omit<Creatable<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {
49
- create(this: CreatableFactory<T>, params?: Partial<T['params']>): Promise<T>;
50
- }
51
-
52
- /**
53
- * Class annotation to be used to decorate Modules which support
54
- * an asynchronous creation factory pattern
55
- * @returns The decorated Module requiring it implement the members
56
- * of the CreatableModule as statics properties/methods
57
- */
58
- export declare function creatableFactory(): <U extends CreatableFactory>(constructor: U) => void;
59
-
60
- export declare interface CreatableInstance<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> {
61
- eventData: TEventData;
62
- name: CreatableName;
63
- params: TParams;
64
- }
65
-
66
- export declare type CreatableName = Exclude<string, 'creatable-name-reserved-32546239486'> & BaseClassName;
67
-
68
- export declare interface CreatableParams extends BaseEmitterParams {
69
- name?: CreatableName;
70
- statusReporter?: CreatableStatusReporter;
71
- }
72
-
73
- export declare type CreatableStatus = 'creating' | 'created' | 'starting' | 'started' | 'stopping' | 'stopped' | 'error';
74
-
75
- export declare interface CreatableStatusReporter<T extends void | string = void> {
76
- report(name: BaseClassName, status: Exclude<T extends void ? CreatableStatus : CreatableStatus | T, 'error'>, progress?: number): void;
77
- report(name: BaseClassName, status: Extract<T extends void ? CreatableStatus : CreatableStatus | T, 'error'>, error?: Error): void;
78
- }
79
-
80
- export declare interface CreatableWithFactory<T extends CreatableInstance = CreatableInstance> extends Creatable<T> {
81
- factory<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactory<T>;
82
- }
83
-
84
- export declare class Factory<T extends CreatableInstance = CreatableInstance> implements CreatableFactory<T> {
85
- creatable: Creatable<T>;
86
- defaultParams?: Partial<T['params']>;
87
- labels?: Labels;
88
- constructor(creatable: Creatable<T>, params?: Partial<T['params']>, labels?: Labels);
89
- static withParams<T extends CreatableInstance>(creatableModule: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): Factory<T>;
90
- create(params?: Partial<T['params']>): Promise<T>;
91
- }
92
-
93
- /**
94
- * Returns true if the source object has all the labels from the required set
95
- * @param source Source object to check against
96
- * @param required Set of labels to check for in source
97
- * @returns True of the source object has all the labels from the required set
98
- */
99
- export declare const hasAllLabels: (source?: Labels, required?: Labels) => boolean;
100
-
101
- /**
102
- * Object used to represent labels identifying a resource.
103
- */
104
- export declare interface Labels {
105
- [key: string]: string | undefined;
106
- }
107
-
108
- /**
109
- * Interface for objects that have labels.
110
- */
111
- export declare interface WithLabels<T extends Labels = Labels> {
112
- labels: T;
113
- }
114
-
115
- /**
116
- * Interface for objects that have labels.
117
- */
118
- export declare interface WithOptionalLabels<T extends Labels = Labels> {
119
- labels?: T;
120
- }
121
-
122
- export { }
1
+ import { BaseClassName } from '@xylabs/base';
2
+ import { BaseEmitterParams, EventData, EventEmitter, BaseEmitter } from '@xylabs/events';
3
+ import { Logger } from '@xylabs/logger';
4
+ import { Promisable } from '@xylabs/promise';
5
+
6
+ type CreatableStatus = 'creating' | 'created' | 'starting' | 'started' | 'stopping' | 'stopped' | 'error';
7
+ interface CreatableStatusReporter<T extends void | string = void> {
8
+ report(name: BaseClassName, status: Exclude<T extends void ? CreatableStatus : CreatableStatus | T, 'error'>, progress?: number): void;
9
+ report(name: BaseClassName, status: Extract<T extends void ? CreatableStatus : CreatableStatus | T, 'error'>, error?: Error): void;
10
+ }
11
+
12
+ type CreatableName = Exclude<string, 'creatable-name-reserved-32546239486'> & BaseClassName;
13
+ interface CreatableParams extends BaseEmitterParams {
14
+ name?: CreatableName;
15
+ statusReporter?: CreatableStatusReporter;
16
+ }
17
+
18
+ interface CreatableInstance<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends EventEmitter<TEventData> {
19
+ eventData: TEventData;
20
+ name: CreatableName;
21
+ params: TParams;
22
+ }
23
+
24
+ /**
25
+ * Object used to represent labels identifying a resource.
26
+ */
27
+ interface Labels {
28
+ [key: string]: string | undefined;
29
+ }
30
+ /**
31
+ * Interface for objects that have labels.
32
+ */
33
+ interface WithLabels<T extends Labels = Labels> {
34
+ labels: T;
35
+ }
36
+ /**
37
+ * Interface for objects that have labels.
38
+ */
39
+ interface WithOptionalLabels<T extends Labels = Labels> {
40
+ labels?: T;
41
+ }
42
+ /**
43
+ * Returns true if the source object has all the labels from the required set
44
+ * @param source Source object to check against
45
+ * @param required Set of labels to check for in source
46
+ * @returns True of the source object has all the labels from the required set
47
+ */
48
+ declare const hasAllLabels: (source?: Labels, required?: Labels) => boolean;
49
+
50
+ interface CreatableFactory<T extends CreatableInstance = CreatableInstance> extends Omit<Creatable<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {
51
+ create(this: CreatableFactory<T>, params?: Partial<T['params']>): Promise<T>;
52
+ }
53
+ interface Creatable<T extends CreatableInstance = CreatableInstance> {
54
+ defaultLogger?: Logger;
55
+ new (key: unknown, params: Partial<CreatableParams>): T & AbstractCreatable<T['params']>;
56
+ create<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promise<T>;
57
+ createHandler<T extends CreatableInstance>(this: Creatable<T>, instance: T): Promisable<T>;
58
+ paramsHandler<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params']>;
59
+ }
60
+ interface CreatableWithFactory<T extends CreatableInstance = CreatableInstance> extends Creatable<T> {
61
+ factory<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactory<T>;
62
+ }
63
+ /**
64
+ * Class annotation to be used to decorate Modules which support
65
+ * an asynchronous creation pattern
66
+ * @returns The decorated Module requiring it implement the members
67
+ * of the CreatableModule as statics properties/methods
68
+ */
69
+ declare function creatable<T extends CreatableInstance>(): <U extends Creatable<T>>(constructor: U) => void;
70
+ /**
71
+ * Class annotation to be used to decorate Modules which support
72
+ * an asynchronous creation factory pattern
73
+ * @returns The decorated Module requiring it implement the members
74
+ * of the CreatableModule as statics properties/methods
75
+ */
76
+ declare function creatableFactory(): <U extends CreatableFactory>(constructor: U) => void;
77
+
78
+ declare class AbstractCreatable<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams>, TEventData> {
79
+ defaultLogger?: Logger;
80
+ private _validatedParams?;
81
+ constructor(key: unknown, params: Partial<TParams>);
82
+ get name(): CreatableName;
83
+ get params(): TParams;
84
+ get statusReporter(): CreatableStatusReporter<void> | undefined;
85
+ static create<T extends CreatableInstance>(this: Creatable<T>, inParams?: Partial<T['params']>): Promise<T>;
86
+ static createHandler<T extends CreatableInstance>(this: Creatable<T>, instance: T): Promisable<T>;
87
+ static paramsHandler<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params']>;
88
+ createHandler(): Promisable<void>;
89
+ paramsValidator(params: Partial<TParams>): TParams;
90
+ start(): Promise<boolean>;
91
+ stop(): Promise<boolean>;
92
+ protected _noOverride(functionName?: string): void;
93
+ protected startHandler(): Promisable<void>;
94
+ protected stopHandler(): Promisable<void>;
95
+ }
96
+ declare class AbstractCreatableWithFactory<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends AbstractCreatable<TParams, TEventData> {
97
+ static factory<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactory<T>;
98
+ }
99
+
100
+ declare class Factory<T extends CreatableInstance = CreatableInstance> implements CreatableFactory<T> {
101
+ creatable: Creatable<T>;
102
+ defaultParams?: Partial<T['params']>;
103
+ labels?: Labels;
104
+ constructor(creatable: Creatable<T>, params?: Partial<T['params']>, labels?: Labels);
105
+ static withParams<T extends CreatableInstance>(creatableModule: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): Factory<T>;
106
+ create(params?: Partial<T['params']>): Promise<T>;
107
+ }
108
+
109
+ export { AbstractCreatable, AbstractCreatableWithFactory, Factory, creatable, creatableFactory, hasAllLabels };
110
+ export type { Creatable, CreatableFactory, CreatableInstance, CreatableName, CreatableParams, CreatableStatus, CreatableStatusReporter, CreatableWithFactory, Labels, WithLabels, WithOptionalLabels };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/creatable",
3
- "version": "4.13.3",
3
+ "version": "4.13.5",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -29,16 +29,16 @@
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "dependencies": {
32
- "@xylabs/assert": "^4.13.3",
33
- "@xylabs/base": "^4.13.3",
34
- "@xylabs/events": "^4.13.3",
35
- "@xylabs/logger": "^4.13.3",
36
- "@xylabs/promise": "^4.13.3",
37
- "@xylabs/typeof": "^4.13.3"
32
+ "@xylabs/assert": "^4.13.5",
33
+ "@xylabs/base": "^4.13.5",
34
+ "@xylabs/events": "^4.13.5",
35
+ "@xylabs/logger": "^4.13.5",
36
+ "@xylabs/promise": "^4.13.5",
37
+ "@xylabs/typeof": "^4.13.5"
38
38
  },
39
39
  "devDependencies": {
40
- "@xylabs/ts-scripts-yarn3": "^7.0.0-rc.7",
41
- "@xylabs/tsconfig": "^7.0.0-rc.7",
40
+ "@xylabs/ts-scripts-yarn3": "^7.0.0-rc.8",
41
+ "@xylabs/tsconfig": "^7.0.0-rc.8",
42
42
  "tslib": "^2.8.1",
43
43
  "typescript": "^5.8.3",
44
44
  "vitest": "^3.2.4"
@@ -1,8 +1,9 @@
1
- import type { EventData } from '@xylabs/events'
1
+ import type { EventData, EventEmitter } from '@xylabs/events'
2
2
 
3
3
  import type { CreatableName, CreatableParams } from './CreatableParams.ts'
4
4
 
5
- export interface CreatableInstance<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> {
5
+ export interface CreatableInstance<TParams extends CreatableParams = CreatableParams,
6
+ TEventData extends EventData = EventData> extends EventEmitter<TEventData> {
6
7
  eventData: TEventData
7
8
  name: CreatableName
8
9
  params: TParams