@prestizni-software/server-dem 0.3.19 → 0.3.21
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 +2 -2
- package/dist/AutoUpdateManagerClass.js +3 -3
- package/dist/AutoUpdateServerManagerClass.d.ts +9 -9
- package/dist/AutoUpdateServerManagerClass.js +42 -42
- package/dist/AutoUpdateServerManagerClass.js.map +1 -1
- package/dist/AutoUpdatedClientObjectClass.d.ts +4 -3
- package/dist/AutoUpdatedClientObjectClass.js +49 -59
- package/dist/AutoUpdatedClientObjectClass.js.map +1 -1
- package/dist/AutoUpdatedServerObjectClass.d.ts +3 -3
- package/dist/AutoUpdatedServerObjectClass.js +12 -12
- package/dist/AutoUpdatedServerObjectClass.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -8,14 +8,14 @@ export declare abstract class AutoUpdateManager<T extends Constructor<any>> {
|
|
|
8
8
|
socket: any;
|
|
9
9
|
protected classParam: T;
|
|
10
10
|
protected properties: (keyof T)[];
|
|
11
|
-
readonly
|
|
11
|
+
readonly managers: Record<string, AutoUpdateManager<any>>;
|
|
12
12
|
protected preloaded: boolean;
|
|
13
13
|
protected waitingToResolveReferences: {
|
|
14
14
|
[_id: string]: string;
|
|
15
15
|
};
|
|
16
16
|
protected loggers: LoggersType;
|
|
17
17
|
protected emitter: EventEmitter3;
|
|
18
|
-
constructor(classParam: T, socket: any, loggers: LoggersType,
|
|
18
|
+
constructor(classParam: T, socket: any, loggers: LoggersType, managers: Record<string, AutoUpdateManager<any>>, emitter: EventEmitter3);
|
|
19
19
|
close(): void;
|
|
20
20
|
loadReferences(): Promise<void>;
|
|
21
21
|
deleteObject(_id: string): Promise<{
|
|
@@ -3,7 +3,7 @@ export class AutoUpdateManager {
|
|
|
3
3
|
socket;
|
|
4
4
|
classParam;
|
|
5
5
|
properties;
|
|
6
|
-
|
|
6
|
+
managers;
|
|
7
7
|
preloaded = false;
|
|
8
8
|
waitingToResolveReferences = {};
|
|
9
9
|
loggers = {
|
|
@@ -13,8 +13,8 @@ export class AutoUpdateManager {
|
|
|
13
13
|
warn: () => { },
|
|
14
14
|
};
|
|
15
15
|
emitter;
|
|
16
|
-
constructor(classParam, socket, loggers,
|
|
17
|
-
this.
|
|
16
|
+
constructor(classParam, socket, loggers, managers, emitter) {
|
|
17
|
+
this.managers = managers;
|
|
18
18
|
this.emitter = emitter;
|
|
19
19
|
this.socket = socket;
|
|
20
20
|
this.classParam = classParam;
|
|
@@ -18,14 +18,14 @@ export declare function createAutoStatusDefinitions<C extends Constructor<any>,
|
|
|
18
18
|
export type AUSDefinitions<T extends Record<string, Constructor<any>>> = {
|
|
19
19
|
[K in keyof T]: ServerManagerDefinition<T[K], T>;
|
|
20
20
|
};
|
|
21
|
-
export type EventMiddlewareFunction<T extends Record<string, Constructor<any
|
|
21
|
+
export type EventMiddlewareFunction<T extends Record<string, Constructor<any>>, C extends Constructor<any>> = (event: DEMEvent<C>, data: any, managers: {
|
|
22
22
|
[K in keyof T]: AutoUpdateServerManager<T[K]>;
|
|
23
23
|
}, socket: Socket) => Promise<void>;
|
|
24
24
|
export type StartupMiddlewareFunction<T extends Record<string, Constructor<any>>, C extends Constructor<any>> = (ids: AutoUpdated<C, 10>[], managers: {
|
|
25
25
|
[K in keyof T]: AutoUpdateServerManager<T[K]>;
|
|
26
26
|
}, socket: Socket) => Promise<AutoUpdated<C, 10>[]>;
|
|
27
27
|
export type AccessMiddleware<T extends Record<string, Constructor<any>>, C extends Constructor<any>> = {
|
|
28
|
-
eventMiddleware?: EventMiddlewareFunction<T>;
|
|
28
|
+
eventMiddleware?: EventMiddlewareFunction<T, C>;
|
|
29
29
|
startupMiddleware?: StartupMiddlewareFunction<T, C>;
|
|
30
30
|
};
|
|
31
31
|
export type AUSOption<C extends Constructor<any>, T extends Record<string, Constructor<any>>> = {
|
|
@@ -47,14 +47,14 @@ export declare enum DEMEventTypes {
|
|
|
47
47
|
"get" = "get",
|
|
48
48
|
"startup" = "startup"
|
|
49
49
|
}
|
|
50
|
-
export type DEMEvent = {
|
|
50
|
+
export type DEMEvent<C extends Constructor<any>> = {
|
|
51
51
|
type: DEMEventTypes.delete | DEMEventTypes.get | DEMEventTypes.update;
|
|
52
|
-
manager: AutoUpdateServerManager<
|
|
53
|
-
|
|
52
|
+
manager: AutoUpdateServerManager<C>;
|
|
53
|
+
object: AutoUpdated<C>;
|
|
54
54
|
} | {
|
|
55
55
|
type: DEMEventTypes.new | DEMEventTypes.startup;
|
|
56
|
-
manager: AutoUpdateServerManager<
|
|
57
|
-
|
|
56
|
+
manager: AutoUpdateServerManager<C>;
|
|
57
|
+
object: never;
|
|
58
58
|
};
|
|
59
59
|
export declare function AUSManagerFactory<T extends Record<string, Constructor<any>>>(defs: AUSDefinitions<T>, loggers: LoggersType, socket: Server, disableDEMDebugMessages?: boolean, emitter?: EventEmitter3): Promise<{
|
|
60
60
|
[K in keyof T]: AutoUpdateServerManager<T[K]>;
|
|
@@ -66,8 +66,8 @@ export declare class AutoUpdateServerManager<T extends Constructor<any>> extends
|
|
|
66
66
|
protected classes: {
|
|
67
67
|
[_id: string]: AutoUpdated<T>;
|
|
68
68
|
};
|
|
69
|
-
readonly
|
|
70
|
-
constructor(classParam: T, loggers: LoggersType, socket: Server, model: ReturnModelType<T, BeAnObject>,
|
|
69
|
+
readonly managers: Record<string, AutoUpdateServerManager<any>>;
|
|
70
|
+
constructor(classParam: T, loggers: LoggersType, socket: Server, model: ReturnModelType<T, BeAnObject>, managers: Record<string, AutoUpdateServerManager<any>>, emitter: EventEmitter3, options?: AUSOption<T, any>);
|
|
71
71
|
preLoad(): Promise<void>;
|
|
72
72
|
registerSocket(socket: Socket): void;
|
|
73
73
|
getObject(_id?: string): AutoUpdated<T> | null;
|
|
@@ -34,6 +34,7 @@ function setupSocketMiddleware(socket_server, loggers, managers, secured) {
|
|
|
34
34
|
return;
|
|
35
35
|
const e = event[0];
|
|
36
36
|
let demEvent = {};
|
|
37
|
+
const id = e.slice(-24);
|
|
37
38
|
switch (true) {
|
|
38
39
|
case e.startsWith("new"):
|
|
39
40
|
demEvent.type = DEMEventTypes.new;
|
|
@@ -41,28 +42,31 @@ function setupSocketMiddleware(socket_server, loggers, managers, secured) {
|
|
|
41
42
|
break;
|
|
42
43
|
case e.startsWith("update"):
|
|
43
44
|
demEvent.type = DEMEventTypes.update;
|
|
44
|
-
demEvent.id = e.slice(-24);
|
|
45
45
|
demEvent.manager =
|
|
46
|
-
managers[e.replace("update", "").replace(
|
|
46
|
+
managers[e.replace("update", "").replace(id, "")];
|
|
47
|
+
demEvent.object = demEvent.manager.getObject(id);
|
|
47
48
|
break;
|
|
48
49
|
case e.startsWith("delete"):
|
|
49
50
|
demEvent.type = DEMEventTypes.delete;
|
|
50
|
-
demEvent.id = e.slice(-24);
|
|
51
51
|
demEvent.manager =
|
|
52
|
-
managers[e.replace("delete", "").replace(
|
|
52
|
+
managers[e.replace("delete", "").replace(id, "")];
|
|
53
|
+
demEvent.object = demEvent.manager.getObject(id);
|
|
53
54
|
break;
|
|
54
55
|
case e.startsWith("get"):
|
|
55
56
|
demEvent.type = DEMEventTypes.get;
|
|
56
|
-
demEvent.
|
|
57
|
-
demEvent.
|
|
58
|
-
managers[e.replace("get", "").replace(demEvent.id, "")];
|
|
57
|
+
demEvent.manager = managers[e.replace("get", "").replace(id, "")];
|
|
58
|
+
demEvent.object = demEvent.manager.getObject(id);
|
|
59
59
|
break;
|
|
60
60
|
case e.startsWith("startup"):
|
|
61
61
|
demEvent.type = DEMEventTypes.startup;
|
|
62
62
|
demEvent.manager = managers[e.replace("startup", "")];
|
|
63
63
|
break;
|
|
64
64
|
default:
|
|
65
|
-
throw new Error("Unknown event: " +
|
|
65
|
+
throw new Error("Unknown event: " +
|
|
66
|
+
e +
|
|
67
|
+
" - known events: [" +
|
|
68
|
+
Object.values(DEMEventTypes).join(", ") +
|
|
69
|
+
"]");
|
|
66
70
|
}
|
|
67
71
|
await secured.eventMiddleware(demEvent, event[1], managers, socket);
|
|
68
72
|
}
|
|
@@ -103,15 +107,15 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
|
|
|
103
107
|
});
|
|
104
108
|
next();
|
|
105
109
|
});
|
|
106
|
-
const
|
|
110
|
+
const managers = {};
|
|
107
111
|
let i = 0;
|
|
108
112
|
for (const key in defs) {
|
|
109
113
|
loggers.debug(`Creating manager for ${key}`);
|
|
110
114
|
const def = defs[key];
|
|
111
115
|
try {
|
|
112
|
-
const c = new AutoUpdateServerManager(def.class, loggers, socket, getModelForClass(def.class),
|
|
116
|
+
const c = new AutoUpdateServerManager(def.class, loggers, socket, getModelForClass(def.class), managers, emitter, def.options);
|
|
113
117
|
i++;
|
|
114
|
-
|
|
118
|
+
managers[key] = c;
|
|
115
119
|
}
|
|
116
120
|
catch (error) {
|
|
117
121
|
loggers.error("Error creating manager: " + key);
|
|
@@ -121,7 +125,7 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
|
|
|
121
125
|
}
|
|
122
126
|
loggers.debug("Loading DB for manager: " + key);
|
|
123
127
|
try {
|
|
124
|
-
setupSocketMiddleware(socket, loggers,
|
|
128
|
+
setupSocketMiddleware(socket, loggers, managers, def.options?.accessDefinitions);
|
|
125
129
|
}
|
|
126
130
|
catch (error) {
|
|
127
131
|
loggers.error("Error setting up socket middleware");
|
|
@@ -129,7 +133,7 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
|
|
|
129
133
|
loggers.error(error.stack);
|
|
130
134
|
}
|
|
131
135
|
try {
|
|
132
|
-
await
|
|
136
|
+
await managers[key].preLoad();
|
|
133
137
|
}
|
|
134
138
|
catch (error) {
|
|
135
139
|
loggers.error("Error loading DB for manager: " + key);
|
|
@@ -137,12 +141,12 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
|
|
|
137
141
|
loggers.error(error.stack);
|
|
138
142
|
}
|
|
139
143
|
}
|
|
140
|
-
for (const manager of Object.values(
|
|
144
|
+
for (const manager of Object.values(managers)) {
|
|
141
145
|
await manager.loadReferences();
|
|
142
146
|
}
|
|
143
147
|
socket.on("connection", async (socket) => {
|
|
144
148
|
loggers.debug(`Client connected: ${socket.id}`);
|
|
145
|
-
for (const manager of Object.values(
|
|
149
|
+
for (const manager of Object.values(managers)) {
|
|
146
150
|
manager.registerSocket(socket);
|
|
147
151
|
}
|
|
148
152
|
// Client disconnect
|
|
@@ -150,17 +154,17 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
|
|
|
150
154
|
loggers.debug(`Client disconnected: ${socket.id}`);
|
|
151
155
|
});
|
|
152
156
|
});
|
|
153
|
-
return
|
|
157
|
+
return managers;
|
|
154
158
|
}
|
|
155
159
|
export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
156
160
|
model;
|
|
157
161
|
clientSockets = new Set();
|
|
158
162
|
options;
|
|
159
163
|
classes = {};
|
|
160
|
-
|
|
161
|
-
constructor(classParam, loggers, socket, model,
|
|
162
|
-
super(classParam, socket, loggers,
|
|
163
|
-
this.
|
|
164
|
+
managers;
|
|
165
|
+
constructor(classParam, loggers, socket, model, managers, emitter, options) {
|
|
166
|
+
super(classParam, socket, loggers, managers, emitter);
|
|
167
|
+
this.managers = managers;
|
|
164
168
|
this.model = model;
|
|
165
169
|
this.options = options;
|
|
166
170
|
}
|
|
@@ -185,7 +189,7 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
185
189
|
this.clientSockets.add(socket);
|
|
186
190
|
socket.on("startup" + this.className, async (_, ack) => {
|
|
187
191
|
try {
|
|
188
|
-
const ids = ((await this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.
|
|
192
|
+
const ids = ((await this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.managers, socket))?.map((obj) => obj._id) ?? this.objectIDs).filter(Boolean);
|
|
189
193
|
this.loggers.debug("Sending startup data for manager " + this.className);
|
|
190
194
|
if (ids.some((id) => this.classes[id] === "undefined"))
|
|
191
195
|
this.loggers.error(ids.find((id) => this.classes[id] === "undefined"));
|
|
@@ -302,8 +306,8 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
302
306
|
const document = await this.model.findById(_id);
|
|
303
307
|
if (!document)
|
|
304
308
|
throw new Error(`No document with id ${_id} in DB.`);
|
|
305
|
-
if (!this.
|
|
306
|
-
throw new Error(`No
|
|
309
|
+
if (!this.managers)
|
|
310
|
+
throw new Error(`No managers.`);
|
|
307
311
|
this.loggers.debug("Getting missing object " + _id + " from manager " + this.className);
|
|
308
312
|
const object = await createAutoUpdatedClass(this.classParam, this.socket, document, this.loggers, this, this.emitter);
|
|
309
313
|
await object.isPreLoadedAsync();
|
|
@@ -312,8 +316,8 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
312
316
|
return object;
|
|
313
317
|
}
|
|
314
318
|
async createObject(data) {
|
|
315
|
-
if (!this.
|
|
316
|
-
throw new Error(`No
|
|
319
|
+
if (!this.managers)
|
|
320
|
+
throw new Error(`No managers.`);
|
|
317
321
|
this.loggers.debug("Creating new object from manager " + this.className);
|
|
318
322
|
data._id = undefined;
|
|
319
323
|
const object = await createAutoUpdatedClass(this.classParam, this.socket, data, this.loggers, this, this.emitter);
|
|
@@ -322,25 +326,21 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
322
326
|
this.classes[object._id] = object;
|
|
323
327
|
object.contactChildren();
|
|
324
328
|
for (const socket of this.clientSockets) {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
if (
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
socket.emit("new" + this.classParam.name, object._id);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
catch (error) {
|
|
336
|
-
const _ = error;
|
|
329
|
+
try {
|
|
330
|
+
const theTruth = (await this.options?.accessDefinitions?.startupMiddleware?.([object], this.managers, socket)) ?? ["gay"];
|
|
331
|
+
if (theTruth.length > 0) {
|
|
332
|
+
if (!object._id)
|
|
333
|
+
this.loggers.error("Object ID is undefined for object: " + object);
|
|
334
|
+
this.loggers.debug("Emitting new object " + object._id);
|
|
335
|
+
socket.emit("new" + this.classParam.name, object._id);
|
|
337
336
|
}
|
|
338
|
-
if (!object._id)
|
|
339
|
-
throw new Error(`Never... failed to get object somehow: ${object}`);
|
|
340
|
-
this.loggers.debug("Emitting new object " + object._id);
|
|
341
337
|
}
|
|
342
|
-
|
|
343
|
-
|
|
338
|
+
catch (error) {
|
|
339
|
+
const _ = error;
|
|
340
|
+
}
|
|
341
|
+
if (!object._id)
|
|
342
|
+
throw new Error(`Never... failed to get object somehow: ${object}`);
|
|
343
|
+
this.loggers.debug("Emitting new object " + object._id);
|
|
344
344
|
}
|
|
345
345
|
return object;
|
|
346
346
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdateServerManagerClass.js","sourceRoot":"","sources":["../AutoUpdateServerManagerClass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutoUpdateServerManagerClass.js","sourceRoot":"","sources":["../AutoUpdateServerManagerClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { ObjectId } from "bson";
|
|
|
4
4
|
import { Socket } from "socket.io-client";
|
|
5
5
|
import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
|
|
6
6
|
type SocketType = Socket<any, any>;
|
|
7
|
-
export declare function createAutoUpdatedClass<C extends Constructor<any>>(classParam: C, socket: SocketType, data: IsData<InstanceType<C>> | string, loggers: LoggersType,
|
|
7
|
+
export declare function createAutoUpdatedClass<C extends Constructor<any>>(classParam: C, socket: SocketType, data: IsData<InstanceType<C>> | string, loggers: LoggersType, parentManager: AutoUpdateManager<any>, emitter: EventEmitter3): Promise<any>;
|
|
8
8
|
export declare class AutoUpdatedClientObject<T> {
|
|
9
9
|
protected readonly socket: SocketType;
|
|
10
10
|
protected data: IsData<T>;
|
|
@@ -14,12 +14,12 @@ export declare class AutoUpdatedClientObject<T> {
|
|
|
14
14
|
protected readonly emitter: EventEmitter3;
|
|
15
15
|
protected readonly properties: (keyof T)[];
|
|
16
16
|
protected readonly className: string;
|
|
17
|
-
protected
|
|
17
|
+
protected parentManager: AutoUpdateManager<any>;
|
|
18
18
|
protected isLoadingReferences: boolean;
|
|
19
19
|
readonly classProp: Constructor<T>;
|
|
20
20
|
private readonly EmitterID;
|
|
21
21
|
private readonly loadShit;
|
|
22
|
-
constructor(socket: SocketType, data: string | IsData<T>, loggers: LoggersType, properties: (keyof T)[], className: string, classProperty: Constructor<T>,
|
|
22
|
+
constructor(socket: SocketType, data: string | IsData<T>, loggers: LoggersType, properties: (keyof T)[], className: string, classProperty: Constructor<T>, parentManager: AutoUpdateManager<any>, emitter: EventEmitter3, isServer?: boolean);
|
|
23
23
|
protected handleNewObject(data: IsData<T>): void;
|
|
24
24
|
get extractedData(): {
|
|
25
25
|
[K in keyof T]: T[K];
|
|
@@ -53,6 +53,7 @@ export declare class AutoUpdatedClientObject<T> {
|
|
|
53
53
|
checkAutoStatusChange(): Promise<void>;
|
|
54
54
|
protected resolveReference(id: string): AutoUpdatedClientObject<any> | null;
|
|
55
55
|
private loadForceReferences;
|
|
56
|
+
private checkRecursiveReferenceLoading;
|
|
56
57
|
private handleLoad;
|
|
57
58
|
protected createdWithParent(pointer: string[], parent: AutoUpdatedClientObject<any> | string): Promise<void>;
|
|
58
59
|
destroy(once?: boolean): Promise<{
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
import { ObjectId } from "bson";
|
|
3
|
-
export async function createAutoUpdatedClass(classParam, socket, data, loggers,
|
|
3
|
+
export async function createAutoUpdatedClass(classParam, socket, data, loggers, parentManager, emitter) {
|
|
4
4
|
if (typeof data !== "string" && data._id) {
|
|
5
5
|
processIsRefProperties(data, classParam.prototype, undefined, [], loggers);
|
|
6
6
|
}
|
|
7
7
|
const props = Reflect.getMetadata("props", classParam.prototype);
|
|
8
|
-
const instance = new AutoUpdatedClientObject(socket, data, loggers, props, classParam.name, classParam,
|
|
8
|
+
const instance = new AutoUpdatedClientObject(socket, data, loggers, props, classParam.name, classParam, parentManager, emitter);
|
|
9
9
|
await instance.isPreLoadedAsync();
|
|
10
10
|
return instance;
|
|
11
11
|
}
|
|
@@ -23,7 +23,7 @@ export class AutoUpdatedClientObject {
|
|
|
23
23
|
emitter;
|
|
24
24
|
properties;
|
|
25
25
|
className;
|
|
26
|
-
|
|
26
|
+
parentManager;
|
|
27
27
|
isLoadingReferences = false;
|
|
28
28
|
classProp;
|
|
29
29
|
EmitterID = new ObjectId().toHexString();
|
|
@@ -59,13 +59,13 @@ export class AutoUpdatedClientObject {
|
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
61
|
};
|
|
62
|
-
constructor(socket, data, loggers, properties, className, classProperty,
|
|
62
|
+
constructor(socket, data, loggers, properties, className, classProperty, parentManager, emitter, isServer = false) {
|
|
63
63
|
this.isServer = isServer;
|
|
64
64
|
this.emitter = emitter;
|
|
65
65
|
this.classProp = classProperty;
|
|
66
66
|
this.isLoadingReferences = true;
|
|
67
67
|
this.isLoading = true;
|
|
68
|
-
this.
|
|
68
|
+
this.parentManager = parentManager;
|
|
69
69
|
this.className = className;
|
|
70
70
|
this.properties = properties;
|
|
71
71
|
this.loggers.debug = (s) => loggers.debug("[DEM - " +
|
|
@@ -264,8 +264,8 @@ export class AutoUpdatedClientObject {
|
|
|
264
264
|
findReference(id) {
|
|
265
265
|
if (typeof id !== "string" && !ObjectId.isValid(id))
|
|
266
266
|
return id;
|
|
267
|
-
for (const
|
|
268
|
-
const result =
|
|
267
|
+
for (const manager of Object.values(this.parentManager.managers)) {
|
|
268
|
+
const result = manager.getObject(id.toString());
|
|
269
269
|
if (result)
|
|
270
270
|
return result;
|
|
271
271
|
}
|
|
@@ -342,7 +342,7 @@ export class AutoUpdatedClientObject {
|
|
|
342
342
|
let isPopulated = getMetadataRecursive("refsTo", this.classProp.prototype, lastPath);
|
|
343
343
|
if (isPopulated) {
|
|
344
344
|
isPopulated = isPopulated.split(":");
|
|
345
|
-
const parentObj = this.
|
|
345
|
+
const parentObj = this.parentManager.managers[isPopulated[0]].getObject(val);
|
|
346
346
|
if (!parentObj) {
|
|
347
347
|
this.loggers.error("Failed to set value for " +
|
|
348
348
|
this.className +
|
|
@@ -446,8 +446,8 @@ export class AutoUpdatedClientObject {
|
|
|
446
446
|
if (isRef) {
|
|
447
447
|
for (const id of Array.isArray(value) ? value : [value]) {
|
|
448
448
|
let result;
|
|
449
|
-
for (const
|
|
450
|
-
result =
|
|
449
|
+
for (const manager of Object.values(this.parentManager.managers)) {
|
|
450
|
+
result = manager.getObject(id.toString());
|
|
451
451
|
if (result)
|
|
452
452
|
break;
|
|
453
453
|
}
|
|
@@ -527,10 +527,10 @@ export class AutoUpdatedClientObject {
|
|
|
527
527
|
// return a properly typed AutoUpdatedClientClass (or null)
|
|
528
528
|
// inside AutoUpdatedClientClass
|
|
529
529
|
resolveReference(id) {
|
|
530
|
-
if (!this.
|
|
531
|
-
throw new Error("No
|
|
532
|
-
for (const
|
|
533
|
-
const data =
|
|
530
|
+
if (!this.parentManager)
|
|
531
|
+
throw new Error("No Manager");
|
|
532
|
+
for (const manager of Object.values(this.parentManager.managers)) {
|
|
533
|
+
const data = manager.getObject(id);
|
|
534
534
|
if (data)
|
|
535
535
|
return data;
|
|
536
536
|
}
|
|
@@ -548,23 +548,26 @@ export class AutoUpdatedClientObject {
|
|
|
548
548
|
if (isRef) {
|
|
549
549
|
await this.handleLoad(obj, key, alreadySeen);
|
|
550
550
|
}
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
551
|
+
await this.checkRecursiveReferenceLoading(obj, key, alreadySeen);
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
async checkRecursiveReferenceLoading(obj, key, alreadySeen) {
|
|
555
|
+
const val = obj ? obj[key] : null;
|
|
556
|
+
if (val && typeof val === "object") {
|
|
557
|
+
const nestedProto = Object.getPrototypeOf(val);
|
|
558
|
+
if (nestedProto && !alreadySeen.includes(val)) {
|
|
559
|
+
alreadySeen.push(val);
|
|
560
|
+
await this.loadForceReferences(val, nestedProto, alreadySeen);
|
|
558
561
|
}
|
|
559
562
|
}
|
|
560
563
|
}
|
|
561
564
|
async handleLoad(obj, key, alreadySeen) {
|
|
562
|
-
if (!this.
|
|
563
|
-
throw new Error("No
|
|
565
|
+
if (!this.parentManager)
|
|
566
|
+
throw new Error("No manager");
|
|
564
567
|
const refId = obj[key];
|
|
565
568
|
if (refId) {
|
|
566
|
-
for (const
|
|
567
|
-
const result =
|
|
569
|
+
for (const manager of Object.values(this.parentManager.managers)) {
|
|
570
|
+
const result = manager.getObject(refId);
|
|
568
571
|
if (result && !alreadySeen.includes(refId)) {
|
|
569
572
|
alreadySeen.push(refId);
|
|
570
573
|
await result.loadForceReferences(undefined, undefined, alreadySeen);
|
|
@@ -577,7 +580,7 @@ export class AutoUpdatedClientObject {
|
|
|
577
580
|
if (pointer.length !== 2) {
|
|
578
581
|
throw new Error("Invalid pointer: " + JSON.stringify(pointer) + " for " + this.className);
|
|
579
582
|
}
|
|
580
|
-
const obj = this.
|
|
583
|
+
const obj = this.parentManager.managers[pointer[0]]?.getObject(parent._id?.toString() ?? parent.toString());
|
|
581
584
|
const val = obj?.getValue(pointer[1]);
|
|
582
585
|
if (!val)
|
|
583
586
|
return;
|
|
@@ -594,7 +597,7 @@ export class AutoUpdatedClientObject {
|
|
|
594
597
|
}
|
|
595
598
|
async destroy(once = false) {
|
|
596
599
|
if (!once) {
|
|
597
|
-
return await this.
|
|
600
|
+
return await this.parentManager.deleteObject(this.data._id);
|
|
598
601
|
}
|
|
599
602
|
const res = await new Promise((resolve) => {
|
|
600
603
|
this.socket.emit("delete" + this.className, this.data._id, (res) => {
|
|
@@ -633,40 +636,27 @@ export class AutoUpdatedClientObject {
|
|
|
633
636
|
}
|
|
634
637
|
}
|
|
635
638
|
findMissingObjectReference(prop, pointer) {
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
for (const
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
if (Array.isArray(eData[pathPart]) &&
|
|
651
|
-
!eData[pathPart].includes(this._id.toString())) {
|
|
652
|
-
found = false;
|
|
653
|
-
break;
|
|
654
|
-
}
|
|
655
|
-
if (!Array.isArray(eData[pathPart]) &&
|
|
656
|
-
eData[pathPart].toString() !== this.data._id.toString()) {
|
|
657
|
-
found = false;
|
|
658
|
-
break;
|
|
659
|
-
}
|
|
660
|
-
found = eData = eData[pathPart];
|
|
661
|
-
}
|
|
662
|
-
if (found) {
|
|
663
|
-
this.data[prop] = obj._id;
|
|
664
|
-
return;
|
|
639
|
+
const ac = this.parentManager.managers[pointer[0]];
|
|
640
|
+
if (!ac)
|
|
641
|
+
throw new Error(`No AutoUpdateManager found for class ${pointer[0]}`);
|
|
642
|
+
for (const obj of ac.objectsAsArray) {
|
|
643
|
+
let eData = obj.extractedData;
|
|
644
|
+
let found;
|
|
645
|
+
for (const pathPart of pointer[1].split(".")) {
|
|
646
|
+
if (!eData[pathPart] ||
|
|
647
|
+
(Array.isArray(eData[pathPart]) &&
|
|
648
|
+
!eData[pathPart].includes(this._id.toString())) ||
|
|
649
|
+
(!Array.isArray(eData[pathPart]) &&
|
|
650
|
+
eData[pathPart].toString() !== this.data._id.toString())) {
|
|
651
|
+
found = false;
|
|
652
|
+
break;
|
|
665
653
|
}
|
|
654
|
+
found = eData = eData[pathPart];
|
|
655
|
+
}
|
|
656
|
+
if (found) {
|
|
657
|
+
this.data[prop] = obj._id;
|
|
658
|
+
return;
|
|
666
659
|
}
|
|
667
|
-
}
|
|
668
|
-
if (!foundAnAC) {
|
|
669
|
-
throw new Error(`No AutoUpdateManager found for class ${pointer[0]}`);
|
|
670
660
|
}
|
|
671
661
|
}
|
|
672
662
|
wipeSelf() {
|