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