@prestizni-software/server-dem 0.4.95 → 0.4.96
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.
- package/dist/AutoUpdateManagerClass.d.ts +16 -17
- package/dist/AutoUpdateManagerClass.js +22 -15
- package/dist/AutoUpdateManagerClass.js.map +1 -1
- package/dist/AutoUpdateServerManagerClass.d.ts +66 -48
- package/dist/AutoUpdateServerManagerClass.js +138 -331
- package/dist/AutoUpdateServerManagerClass.js.map +1 -1
- package/dist/AutoUpdatedClientObjectClass.d.ts +24 -26
- package/dist/AutoUpdatedClientObjectClass.js +154 -97
- package/dist/AutoUpdatedClientObjectClass.js.map +1 -1
- package/dist/AutoUpdatedServerObjectClass.d.ts +11 -10
- package/dist/AutoUpdatedServerObjectClass.js +54 -43
- package/dist/AutoUpdatedServerObjectClass.js.map +1 -1
- package/dist/CommonTypes.d.ts +32 -19
- package/dist/CommonTypes.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,37 +1,36 @@
|
|
|
1
1
|
import { AutoUpdatedClientObject } from "./AutoUpdatedClientObjectClass.js";
|
|
2
|
-
import { Constructor, EventEmitter3, LoggersType, Cache, IsData } from "./CommonTypes.js";
|
|
2
|
+
import { Constructor, EventEmitter3, LoggersType, Cache, IsData, MongoId, IDEMSocket } from "./CommonTypes.js";
|
|
3
3
|
import "reflect-metadata";
|
|
4
|
-
export declare abstract class AutoUpdateManager<T extends AutoUpdatedClientObject<T
|
|
5
|
-
protected abstract objects_:
|
|
6
|
-
[_id: string]: T;
|
|
7
|
-
};
|
|
4
|
+
export declare abstract class AutoUpdateManager<T extends AutoUpdatedClientObject<T, any>, M = any> {
|
|
5
|
+
protected abstract objects_: Record<string, T>;
|
|
8
6
|
protected isLoaded_: boolean;
|
|
9
|
-
readonly socket:
|
|
7
|
+
readonly socket: IDEMSocket;
|
|
10
8
|
protected classParam: Constructor<T>;
|
|
11
9
|
protected properties: string[];
|
|
12
10
|
readonly className: string;
|
|
13
11
|
readonly cache: Cache<T>;
|
|
14
|
-
readonly managers:
|
|
12
|
+
readonly managers: M;
|
|
15
13
|
protected preloaded: boolean;
|
|
16
|
-
protected waitingToResolveReferences:
|
|
17
|
-
[_id: string]: string;
|
|
18
|
-
};
|
|
14
|
+
protected waitingToResolveReferences: Record<string, string>;
|
|
19
15
|
protected loggers: LoggersType;
|
|
20
16
|
protected emitter: EventEmitter3;
|
|
21
|
-
constructor(classParam: Constructor<T>, className: string, socket:
|
|
17
|
+
constructor(classParam: Constructor<T>, className: string, socket: IDEMSocket, loggers: LoggersType, managers: M, emitter: EventEmitter3);
|
|
22
18
|
get isLoaded(): boolean;
|
|
23
19
|
close(): void;
|
|
24
20
|
loadReferences(): Promise<void>;
|
|
25
|
-
deleteObject(_id:
|
|
21
|
+
deleteObject(_id: MongoId): Promise<{
|
|
26
22
|
success: boolean;
|
|
27
23
|
message: string;
|
|
28
24
|
}>;
|
|
29
25
|
get objectIDs(): string[];
|
|
30
26
|
abstract handleGetMissingObject(_id: string): Promise<T>;
|
|
31
|
-
abstract createObject(data: IsData<T>): Promise<T>;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
abstract createObject(data: Omit<IsData<T>, "_id">): Promise<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Returns the object with the given ID.
|
|
30
|
+
* If _id is undefined, returns null.
|
|
31
|
+
* If _id is provided but object is not found, returns undefined.
|
|
32
|
+
*/
|
|
33
|
+
abstract getObject(_id?: string): T | null | undefined;
|
|
34
|
+
abstract get objects(): Record<string, T>;
|
|
36
35
|
abstract get objectsAsArray(): T[];
|
|
37
36
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { globalCache } from "./CommonTypes.js";
|
|
1
|
+
import { globalCache, } from "./CommonTypes.js";
|
|
2
2
|
import "reflect-metadata";
|
|
3
3
|
export class AutoUpdateManager {
|
|
4
4
|
isLoaded_ = false;
|
|
@@ -7,7 +7,7 @@ export class AutoUpdateManager {
|
|
|
7
7
|
properties = [];
|
|
8
8
|
className;
|
|
9
9
|
cache = {
|
|
10
|
-
references: {}
|
|
10
|
+
references: {},
|
|
11
11
|
};
|
|
12
12
|
managers;
|
|
13
13
|
preloaded = false;
|
|
@@ -25,11 +25,13 @@ export class AutoUpdateManager {
|
|
|
25
25
|
this.emitter = emitter;
|
|
26
26
|
this.socket = socket;
|
|
27
27
|
this.classParam = classParam;
|
|
28
|
-
this.properties = Reflect.getMetadata("props", classParam.prototype);
|
|
29
|
-
|
|
30
|
-
this.loggers.
|
|
31
|
-
this.loggers.
|
|
32
|
-
this.loggers.
|
|
28
|
+
this.properties = Reflect.getMetadata("props", classParam.prototype) || [];
|
|
29
|
+
// Assign loggers with prefix
|
|
30
|
+
this.loggers.debug = (s) => loggers?.debug?.("[DEM - " + className + " MANAGER] " + s);
|
|
31
|
+
this.loggers.info = (s) => loggers?.info?.("[DEM - " + className + " MANAGER] " + s);
|
|
32
|
+
this.loggers.error = (s) => loggers?.error?.("[DEM - " + className + " MANAGER] " + s);
|
|
33
|
+
this.loggers.warn = (s) => loggers?.warn?.("[DEM - " + className + " MANAGER] " + s);
|
|
34
|
+
this.loggers.info("Created manager");
|
|
33
35
|
}
|
|
34
36
|
get isLoaded() {
|
|
35
37
|
return this.isLoaded_;
|
|
@@ -39,22 +41,27 @@ export class AutoUpdateManager {
|
|
|
39
41
|
delete this.objects_[id];
|
|
40
42
|
delete globalCache.objects[id];
|
|
41
43
|
}
|
|
42
|
-
this.socket.disconnect?.() ?? this.socket.disconnectSockets(true);
|
|
44
|
+
this.socket.disconnect?.() ?? this.socket.disconnectSockets?.(true);
|
|
43
45
|
this.loggers.info("Goodbye, see you next time!");
|
|
44
46
|
}
|
|
45
47
|
async loadReferences() {
|
|
46
|
-
await Promise.all(this.objectsAsArray.map(obj => obj.loadMissingReferences()));
|
|
48
|
+
await Promise.all(this.objectsAsArray.map((obj) => obj.loadMissingReferences()));
|
|
47
49
|
this.isLoaded_ = true;
|
|
48
50
|
}
|
|
49
51
|
async deleteObject(_id) {
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
+
const idStr = _id.toString();
|
|
53
|
+
const o = this.objects_[idStr];
|
|
54
|
+
if (!o)
|
|
55
|
+
return { success: true, message: "Already gone" };
|
|
56
|
+
const res = await o.destroy(true);
|
|
52
57
|
if (res?.success) {
|
|
53
|
-
delete this.objects_[
|
|
54
|
-
delete globalCache.objects[
|
|
58
|
+
delete this.objects_[idStr];
|
|
59
|
+
delete globalCache.objects[idStr];
|
|
60
|
+
const callbacks = o.callbacks;
|
|
61
|
+
if (callbacks && typeof callbacks.delete === 'function') {
|
|
62
|
+
await callbacks.delete(o);
|
|
63
|
+
}
|
|
55
64
|
}
|
|
56
|
-
if (o)
|
|
57
|
-
await o.callbacks.delete(o);
|
|
58
65
|
return res ?? { success: true, message: "Already gone" };
|
|
59
66
|
}
|
|
60
67
|
get objectIDs() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +1,53 @@
|
|
|
1
1
|
import { Server, Socket } from "socket.io";
|
|
2
2
|
import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
|
|
3
3
|
import { AutoUpdatedServerObject } from "./AutoUpdatedServerObjectClass.js";
|
|
4
|
-
import { Constructor, EventEmitter3, IsData, LoggersType, InstanceOf, PathValueOf } from "./CommonTypes.js";
|
|
4
|
+
import { Constructor, EventEmitter3, IsData, LoggersType, ServerUpdateRequest, InstanceOf, PathValueOf, MongoId } from "./CommonTypes.js";
|
|
5
5
|
import { BeAnObject, ReturnModelType } from "@typegoose/typegoose/lib/types.js";
|
|
6
6
|
/**
|
|
7
|
-
* A base type for
|
|
8
|
-
* This is used to
|
|
9
|
-
* It uses 'any' for the object type to avoid deep instantiation cycles
|
|
10
|
-
* while still providing access to the manager methods.
|
|
7
|
+
* A base type for any server manager.
|
|
8
|
+
* This is used for constraints to avoid circularity issues with specific model types.
|
|
11
9
|
*/
|
|
12
|
-
export
|
|
10
|
+
export interface IAutoUpdateServerManager<T extends AutoUpdatedServerObject<T, any> = any, M extends Record<string, any> = any> {
|
|
11
|
+
readonly className: string;
|
|
12
|
+
getObject(id?: string): T | null | undefined;
|
|
13
|
+
readonly objectsAsArray: T[];
|
|
14
|
+
readonly managers: M;
|
|
15
|
+
readonly model: any;
|
|
16
|
+
options?: AUSOption<T, M>;
|
|
17
|
+
createObject(data: Omit<IsData<T>, "_id">): Promise<T>;
|
|
18
|
+
deleteObject(id: MongoId): Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
message: string;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A record of any server managers.
|
|
25
|
+
*/
|
|
26
|
+
export type BaseManagers = Record<string, IAutoUpdateServerManager>;
|
|
13
27
|
/**
|
|
14
28
|
* System-wide instances record, strictly typed.
|
|
15
|
-
* This is used for the factory return type.
|
|
16
29
|
*/
|
|
17
|
-
export type
|
|
18
|
-
[K in keyof T]: AutoUpdateServerManager<T[K]
|
|
30
|
+
export type ManagersRecord<T extends Record<string, Constructor<AutoUpdatedServerObject<any, any>>>> = {
|
|
31
|
+
[K in keyof T]: AutoUpdateServerManager<InstanceOf<T[K]>, ManagersRecord<T>>;
|
|
19
32
|
};
|
|
20
|
-
export type
|
|
21
|
-
|
|
33
|
+
export type WrappedInstances<T extends Record<string, Constructor<AutoUpdatedServerObject<any, any>>>> = ManagersRecord<T>;
|
|
34
|
+
export type AUSDefinitions<T extends Record<string, Constructor<AutoUpdatedServerObject<any, any>>>> = {
|
|
35
|
+
[K in keyof T]: ServerManagerDefinition<InstanceOf<T[K]>, ManagersRecord<T>>;
|
|
22
36
|
};
|
|
23
|
-
export type EventMiddlewareFunction<M
|
|
24
|
-
export type StartupMiddlewareFunction<
|
|
25
|
-
export type AccessMiddleware<
|
|
37
|
+
export type EventMiddlewareFunction<M extends BaseManagers, C extends AutoUpdatedServerObject<any, M>> = (event: DEMEvent<C, M>, managers: M, socket: Socket) => Promise<void>;
|
|
38
|
+
export type StartupMiddlewareFunction<C extends AutoUpdatedServerObject<any, any>, M extends BaseManagers> = (objects: C[], managers: M, socket: Socket) => Promise<C[]>;
|
|
39
|
+
export type AccessMiddleware<C extends AutoUpdatedServerObject<any, any>, M extends BaseManagers> = {
|
|
26
40
|
eventMiddleware?: EventMiddlewareFunction<M, C>;
|
|
27
|
-
startupMiddleware?: StartupMiddlewareFunction<
|
|
41
|
+
startupMiddleware?: StartupMiddlewareFunction<C, M>;
|
|
28
42
|
};
|
|
29
|
-
export type AUSOption<C extends AutoUpdatedServerObject<any>, M
|
|
30
|
-
accessDefinitions?: AccessMiddleware<
|
|
43
|
+
export type AUSOption<C extends AutoUpdatedServerObject<any, any>, M extends BaseManagers> = {
|
|
44
|
+
accessDefinitions?: AccessMiddleware<C, M>;
|
|
31
45
|
onUpdate?: (obj: C, set: <K extends keyof IsData<C> & string>(key: K, val: PathValueOf<IsData<C>, K>) => Promise<{
|
|
32
46
|
success: boolean;
|
|
33
47
|
msg: string;
|
|
34
48
|
}>) => Promise<void>;
|
|
35
49
|
};
|
|
36
|
-
export type ServerManagerDefinition<C extends AutoUpdatedServerObject<any>, M
|
|
50
|
+
export type ServerManagerDefinition<C extends AutoUpdatedServerObject<any, any>, M extends BaseManagers> = {
|
|
37
51
|
class: Constructor<C>;
|
|
38
52
|
options?: AUSOption<C, M>;
|
|
39
53
|
};
|
|
@@ -44,50 +58,54 @@ export declare enum DEMEventTypes {
|
|
|
44
58
|
"get" = "get",
|
|
45
59
|
"startup" = "startup"
|
|
46
60
|
}
|
|
47
|
-
export type DEMEvent<C extends AutoUpdatedServerObject<any
|
|
48
|
-
type: DEMEventTypes.delete
|
|
49
|
-
manager: AutoUpdateServerManager<C>;
|
|
61
|
+
export type DEMEvent<C extends AutoUpdatedServerObject<any, any>, M extends BaseManagers> = {
|
|
62
|
+
type: DEMEventTypes.delete;
|
|
63
|
+
manager: AutoUpdateServerManager<C, M>;
|
|
64
|
+
object: C;
|
|
65
|
+
data: undefined;
|
|
66
|
+
} | {
|
|
67
|
+
type: DEMEventTypes.get;
|
|
68
|
+
manager: AutoUpdateServerManager<C, M>;
|
|
50
69
|
object: C;
|
|
51
|
-
data:
|
|
70
|
+
data: undefined;
|
|
52
71
|
} | {
|
|
53
72
|
type: DEMEventTypes.update;
|
|
54
|
-
manager: AutoUpdateServerManager<C>;
|
|
73
|
+
manager: AutoUpdateServerManager<C, M>;
|
|
55
74
|
object: C;
|
|
56
|
-
data:
|
|
57
|
-
_id: string;
|
|
58
|
-
key: string;
|
|
59
|
-
value: any;
|
|
60
|
-
};
|
|
75
|
+
data: ServerUpdateRequest<C>;
|
|
61
76
|
} | {
|
|
62
77
|
type: DEMEventTypes.startup;
|
|
63
|
-
manager: AutoUpdateServerManager<C>;
|
|
64
|
-
object:
|
|
65
|
-
data:
|
|
78
|
+
manager: AutoUpdateServerManager<C, M>;
|
|
79
|
+
object: undefined;
|
|
80
|
+
data: undefined;
|
|
66
81
|
} | {
|
|
67
82
|
type: DEMEventTypes.new;
|
|
68
|
-
manager: AutoUpdateServerManager<C>;
|
|
69
|
-
object:
|
|
70
|
-
data:
|
|
83
|
+
manager: AutoUpdateServerManager<C, M>;
|
|
84
|
+
object: undefined;
|
|
85
|
+
data: Omit<IsData<C>, "_id">;
|
|
71
86
|
};
|
|
72
|
-
export declare function AUSManagerFactory<
|
|
73
|
-
[K in keyof
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
export declare function AUSManagerFactory<T extends Record<string, Constructor<AutoUpdatedServerObject<any, any>>>>(defs: {
|
|
88
|
+
[K in keyof T]: {
|
|
89
|
+
class: T[K];
|
|
90
|
+
options?: AUSOption<InstanceOf<T[K]>, ManagersRecord<T>>;
|
|
91
|
+
};
|
|
92
|
+
}, loggers: LoggersType, socket: Server, disableDEMDebugMessages?: boolean, emitter?: EventEmitter3, models?: any): Promise<ManagersRecord<T>>;
|
|
93
|
+
export declare class AutoUpdateServerManager<T extends AutoUpdatedServerObject<T, any>, M extends BaseManagers = any> extends AutoUpdateManager<T, M> {
|
|
76
94
|
readonly model: ReturnModelType<Constructor<T>, BeAnObject>;
|
|
77
95
|
private readonly clientSockets;
|
|
78
|
-
readonly options?: AUSOption<T,
|
|
79
|
-
protected objects_:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
readonly managers: BaseManagers;
|
|
83
|
-
constructor(classParam: Constructor<T>, className: string, loggers: LoggersType, socket: Server, model: ReturnModelType<Constructor<T>, BeAnObject>, managers: BaseManagers, emitter: EventEmitter3, options?: AUSOption<T, any>);
|
|
96
|
+
readonly options?: AUSOption<T, M>;
|
|
97
|
+
protected objects_: Record<string, T>;
|
|
98
|
+
readonly managers: M;
|
|
99
|
+
constructor(classParam: Constructor<T>, className: string, loggers: LoggersType, socket: Server, model: ReturnModelType<Constructor<T>, BeAnObject>, managers: M, emitter: EventEmitter3, options?: AUSOption<T, M>);
|
|
84
100
|
preLoad(): Promise<void>;
|
|
85
101
|
registerSocket(socket: Socket): void;
|
|
86
|
-
getObject(_id?: string): T | null;
|
|
87
|
-
get objects():
|
|
88
|
-
[_id: string]: T;
|
|
89
|
-
};
|
|
102
|
+
getObject(_id?: string): T | null | undefined;
|
|
103
|
+
get objects(): Record<string, T>;
|
|
90
104
|
get objectsAsArray(): T[];
|
|
91
105
|
handleGetMissingObject(_id: string): Promise<T>;
|
|
92
106
|
createObject(data: Omit<IsData<T>, "_id">): Promise<T>;
|
|
107
|
+
deleteObject(_id: MongoId): Promise<{
|
|
108
|
+
success: boolean;
|
|
109
|
+
message: string;
|
|
110
|
+
}>;
|
|
93
111
|
}
|