@xylabs/creatable 4.13.4 → 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,123 +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 type { EventEmitter } from '@xylabs/events';
7
- import { Logger } from '@xylabs/logger';
8
- import type { Promisable } from '@xylabs/promise';
9
-
10
- export declare class AbstractCreatable<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends BaseEmitter<Partial<TParams>, TEventData> {
11
- defaultLogger?: Logger;
12
- private _validatedParams?;
13
- constructor(key: unknown, params: Partial<TParams>);
14
- get name(): CreatableName;
15
- get params(): TParams;
16
- get statusReporter(): CreatableStatusReporter_2<void> | undefined;
17
- static create<T extends CreatableInstance>(this: Creatable<T>, inParams?: Partial<T['params']>): Promise<T>;
18
- static createHandler<T extends CreatableInstance>(this: Creatable<T>, instance: T): Promisable<T>;
19
- static paramsHandler<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params']>;
20
- createHandler(): Promisable<void>;
21
- paramsValidator(params: Partial<TParams>): TParams;
22
- start(): Promise<boolean>;
23
- stop(): Promise<boolean>;
24
- protected _noOverride(functionName?: string): void;
25
- protected startHandler(): Promisable<void>;
26
- protected stopHandler(): Promisable<void>;
27
- }
28
-
29
- export declare class AbstractCreatableWithFactory<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends AbstractCreatable<TParams, TEventData> {
30
- static factory<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactory<T>;
31
- }
32
-
33
- export declare interface Creatable<T extends CreatableInstance = CreatableInstance> {
34
- defaultLogger?: Logger;
35
- new (key: unknown, params: Partial<CreatableParams>): T & AbstractCreatable<T['params']>;
36
- create<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promise<T>;
37
- createHandler<T extends CreatableInstance>(this: Creatable<T>, instance: T): Promisable<T>;
38
- paramsHandler<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>): Promisable<T['params']>;
39
- }
40
-
41
- /**
42
- * Class annotation to be used to decorate Modules which support
43
- * an asynchronous creation pattern
44
- * @returns The decorated Module requiring it implement the members
45
- * of the CreatableModule as statics properties/methods
46
- */
47
- export declare function creatable<T extends CreatableInstance>(): <U extends Creatable<T>>(constructor: U) => void;
48
-
49
- export declare interface CreatableFactory<T extends CreatableInstance = CreatableInstance> extends Omit<Creatable<T>, 'create' | 'createHandler' | 'paramsHandler' | 'defaultLogger' | 'factory'> {
50
- create(this: CreatableFactory<T>, params?: Partial<T['params']>): Promise<T>;
51
- }
52
-
53
- /**
54
- * Class annotation to be used to decorate Modules which support
55
- * an asynchronous creation factory pattern
56
- * @returns The decorated Module requiring it implement the members
57
- * of the CreatableModule as statics properties/methods
58
- */
59
- export declare function creatableFactory(): <U extends CreatableFactory>(constructor: U) => void;
60
-
61
- export declare interface CreatableInstance<TParams extends CreatableParams = CreatableParams, TEventData extends EventData = EventData> extends EventEmitter<TEventData> {
62
- eventData: TEventData;
63
- name: CreatableName;
64
- params: TParams;
65
- }
66
-
67
- export declare type CreatableName = Exclude<string, 'creatable-name-reserved-32546239486'> & BaseClassName;
68
-
69
- export declare interface CreatableParams extends BaseEmitterParams {
70
- name?: CreatableName;
71
- statusReporter?: CreatableStatusReporter;
72
- }
73
-
74
- export declare type CreatableStatus = 'creating' | 'created' | 'starting' | 'started' | 'stopping' | 'stopped' | 'error';
75
-
76
- export declare interface CreatableStatusReporter<T extends void | string = void> {
77
- report(name: BaseClassName, status: Exclude<T extends void ? CreatableStatus : CreatableStatus | T, 'error'>, progress?: number): void;
78
- report(name: BaseClassName, status: Extract<T extends void ? CreatableStatus : CreatableStatus | T, 'error'>, error?: Error): void;
79
- }
80
-
81
- export declare interface CreatableWithFactory<T extends CreatableInstance = CreatableInstance> extends Creatable<T> {
82
- factory<T extends CreatableInstance>(this: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): CreatableFactory<T>;
83
- }
84
-
85
- export declare class Factory<T extends CreatableInstance = CreatableInstance> implements CreatableFactory<T> {
86
- creatable: Creatable<T>;
87
- defaultParams?: Partial<T['params']>;
88
- labels?: Labels;
89
- constructor(creatable: Creatable<T>, params?: Partial<T['params']>, labels?: Labels);
90
- static withParams<T extends CreatableInstance>(creatableModule: Creatable<T>, params?: Partial<T['params']>, labels?: Labels): Factory<T>;
91
- create(params?: Partial<T['params']>): Promise<T>;
92
- }
93
-
94
- /**
95
- * Returns true if the source object has all the labels from the required set
96
- * @param source Source object to check against
97
- * @param required Set of labels to check for in source
98
- * @returns True of the source object has all the labels from the required set
99
- */
100
- export declare const hasAllLabels: (source?: Labels, required?: Labels) => boolean;
101
-
102
- /**
103
- * Object used to represent labels identifying a resource.
104
- */
105
- export declare interface Labels {
106
- [key: string]: string | undefined;
107
- }
108
-
109
- /**
110
- * Interface for objects that have labels.
111
- */
112
- export declare interface WithLabels<T extends Labels = Labels> {
113
- labels: T;
114
- }
115
-
116
- /**
117
- * Interface for objects that have labels.
118
- */
119
- export declare interface WithOptionalLabels<T extends Labels = Labels> {
120
- labels?: T;
121
- }
122
-
123
- 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.4",
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.4",
33
- "@xylabs/base": "^4.13.4",
34
- "@xylabs/events": "^4.13.4",
35
- "@xylabs/logger": "^4.13.4",
36
- "@xylabs/promise": "^4.13.4",
37
- "@xylabs/typeof": "^4.13.4"
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"