@prestizni-software/server-dem 0.4.88 → 0.4.90

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,24 +1,24 @@
1
1
  import { AutoUpdatedClientObject } from "./AutoUpdatedClientObjectClass.js";
2
- import { Constructor, EventEmitter3, LoggersType, Cache } from "./CommonTypes.js";
2
+ import { Constructor, EventEmitter3, LoggersType, Cache, IsData } from "./CommonTypes.js";
3
3
  import "reflect-metadata";
4
- export declare abstract class AutoUpdateManager<T extends AutoUpdatedClientObject<any>> {
4
+ export declare abstract class AutoUpdateManager<T extends AutoUpdatedClientObject<T>> {
5
5
  protected abstract objects_: {
6
6
  [_id: string]: T;
7
7
  };
8
8
  protected isLoaded_: boolean;
9
9
  readonly socket: any;
10
10
  protected classParam: Constructor<T>;
11
- protected properties: (keyof T)[];
11
+ protected properties: string[];
12
12
  readonly className: string;
13
- readonly cache: Cache<any>;
14
- readonly managers: Record<string, AutoUpdateManager<AutoUpdatedClientObject<any>>>;
13
+ readonly cache: Cache<T>;
14
+ readonly managers: Record<string, AutoUpdateManager<any>>;
15
15
  protected preloaded: boolean;
16
16
  protected waitingToResolveReferences: {
17
17
  [_id: string]: string;
18
18
  };
19
19
  protected loggers: LoggersType;
20
20
  protected emitter: EventEmitter3;
21
- constructor(classParam: Constructor<T>, className: string, socket: any, loggers: LoggersType, managers: Record<string, AutoUpdateManager<AutoUpdatedClientObject<any>>>, emitter: EventEmitter3);
21
+ constructor(classParam: Constructor<T>, className: string, socket: any, loggers: LoggersType, managers: Record<string, AutoUpdateManager<any>>, emitter: EventEmitter3);
22
22
  get isLoaded(): boolean;
23
23
  close(): void;
24
24
  loadReferences(): Promise<void>;
@@ -28,7 +28,7 @@ export declare abstract class AutoUpdateManager<T extends AutoUpdatedClientObjec
28
28
  }>;
29
29
  get objectIDs(): string[];
30
30
  abstract handleGetMissingObject(_id: string): Promise<T>;
31
- abstract createObject(data: Omit<any, "_id">): Promise<T>;
31
+ abstract createObject(data: IsData<T>): Promise<T>;
32
32
  abstract getObject(_id: string): T | null;
33
33
  abstract get objects(): {
34
34
  [_id: string]: T;
@@ -4,7 +4,7 @@ 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: {}
@@ -43,9 +43,7 @@ export class AutoUpdateManager {
43
43
  this.loggers.info("Goodbye, see you next time!");
44
44
  }
45
45
  async loadReferences() {
46
- for (const obj of this.objectsAsArray) {
47
- await obj.loadMissingReferences();
48
- }
46
+ await Promise.all(this.objectsAsArray.map(obj => obj.loadMissingReferences()));
49
47
  this.isLoaded_ = true;
50
48
  }
51
49
  async deleteObject(_id) {
@@ -55,7 +53,8 @@ export class AutoUpdateManager {
55
53
  delete this.objects_[_id];
56
54
  delete globalCache.objects[_id];
57
55
  }
58
- await o?.callbacks.delete(this);
56
+ if (o)
57
+ await o.callbacks.delete(o);
59
58
  return res ?? { success: true, message: "Already gone" };
60
59
  }
61
60
  get objectIDs() {
@@ -1 +1 @@
1
- {"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,22 @@
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, Pure } from "./CommonTypes.js";
4
+ import { Constructor, EventEmitter3, IsData, LoggersType } from "./CommonTypes.js";
5
5
  import { BeAnObject, ReturnModelType } from "@typegoose/typegoose/lib/types.js";
6
6
  import { Paths, PathValueOf } from "./CommonTypes_server.js";
7
7
  export type WrappedInstances<T extends Record<string, AutoUpdatedServerObject<any>>> = {
8
8
  [K in keyof T]: AutoUpdateServerManager<T[K]>;
9
9
  };
10
- export type AUSDefinitions<T extends Record<string, AutoUpdatedServerObject<any>>> = {
11
- [K in keyof T]: ServerManagerDefinition<T[K], T>;
12
- };
13
- export type EventMiddlewareFunction<T extends Record<string, AutoUpdatedServerObject<any>>, C extends AutoUpdatedServerObject<any>> = (event: DEMEvent<C>, managers: {
14
- [K in keyof T]: AutoUpdateServerManager<T[K]>;
15
- }, socket: Socket) => Promise<void>;
16
- export type StartupMiddlewareFunction<T extends Record<string, AutoUpdatedServerObject<any>>, C extends AutoUpdatedServerObject<any>> = (ids: C[], managers: {
17
- [K in keyof T]: AutoUpdateServerManager<T[K]>;
18
- }, socket: Socket) => Promise<C[]>;
10
+ export type AUSDefinitions = Record<string, ServerManagerDefinition<any, any>>;
11
+ export type EventMiddlewareFunction<T extends Record<string, AutoUpdatedServerObject<any>>, C extends AutoUpdatedServerObject<any>> = (event: DEMEvent<C>, managers: Record<string, AutoUpdateServerManager<any>>, socket: Socket) => Promise<void>;
12
+ export type StartupMiddlewareFunction<T extends Record<string, AutoUpdatedServerObject<any>>, C extends AutoUpdatedServerObject<any>> = (ids: C[], managers: Record<string, AutoUpdateServerManager<any>>, socket: Socket) => Promise<C[]>;
19
13
  export type AccessMiddleware<T extends Record<string, AutoUpdatedServerObject<any>>, C extends AutoUpdatedServerObject<any>> = {
20
14
  eventMiddleware?: EventMiddlewareFunction<T, C>;
21
15
  startupMiddleware?: StartupMiddlewareFunction<T, C>;
22
16
  };
23
- export type AUSOption<C extends AutoUpdatedServerObject<any>, T extends Record<string, AutoUpdatedServerObject<any>>> = {
24
- accessDefinitions?: AccessMiddleware<T, C>;
25
- onUpdate?: (obj: C, set: <K extends Paths<C, AutoUpdatedServerObject<C>>>(key: K, val: PathValueOf<C, K>) => Promise<{
17
+ export type AUSOption<C extends AutoUpdatedServerObject<C>, T extends Record<string, AutoUpdatedServerObject<any>>> = {
18
+ accessDefinitions?: AccessMiddleware<any, C>;
19
+ onUpdate?: (obj: C, set: <K extends Paths<C>>(key: K, val: PathValueOf<IsData<C>, K>) => Promise<{
26
20
  success: boolean;
27
21
  msg: string;
28
22
  }>) => Promise<void>;
@@ -49,7 +43,7 @@ export type DEMEvent<C extends AutoUpdatedServerObject<C>> = {
49
43
  object: C;
50
44
  data: {
51
45
  _id: string;
52
- key: Paths<C, AutoUpdatedServerObject<C>>;
46
+ key: Paths<C, any>;
53
47
  value: any;
54
48
  };
55
49
  } | {
@@ -63,18 +57,18 @@ export type DEMEvent<C extends AutoUpdatedServerObject<C>> = {
63
57
  object: never;
64
58
  data: IsData<C>;
65
59
  };
66
- export declare function AUSManagerFactory<T extends Record<string, AutoUpdatedServerObject<any>>>(defs: AUSDefinitions<T>, loggers: LoggersType, socket: Server, disableDEMDebugMessages?: boolean, emitter?: EventEmitter3, models?: any): Promise<{
60
+ export declare function AUSManagerFactory<T extends Record<string, AutoUpdatedServerObject<any>>>(defs: AUSDefinitions, loggers: LoggersType, socket: Server, disableDEMDebugMessages?: boolean, emitter?: EventEmitter3, models?: any): Promise<{
67
61
  [K in keyof T]: AutoUpdateServerManager<T[K]>;
68
62
  }>;
69
- export declare class AutoUpdateServerManager<T extends AutoUpdatedServerObject<any>> extends AutoUpdateManager<T> {
63
+ export declare class AutoUpdateServerManager<T extends AutoUpdatedServerObject<T>> extends AutoUpdateManager<T> {
70
64
  readonly model: ReturnModelType<Constructor<T>, BeAnObject>;
71
65
  private readonly clientSockets;
72
66
  readonly options?: AUSOption<T, any>;
73
67
  protected objects_: {
74
68
  [_id: string]: T;
75
69
  };
76
- readonly managers: Record<string, AutoUpdateServerManager<AutoUpdatedServerObject<any>>>;
77
- constructor(classParam: Constructor<T>, className: string, loggers: LoggersType, socket: Server, model: ReturnModelType<Constructor<T>, BeAnObject>, managers: Record<string, AutoUpdateServerManager<AutoUpdatedServerObject<any>>>, emitter: EventEmitter3, options?: AUSOption<T, any>);
70
+ readonly managers: Record<string, AutoUpdateServerManager<any>>;
71
+ constructor(classParam: Constructor<T>, className: string, loggers: LoggersType, socket: Server, model: ReturnModelType<Constructor<T>, BeAnObject>, managers: Record<string, AutoUpdateServerManager<any>>, emitter: EventEmitter3, options?: AUSOption<T, any>);
78
72
  preLoad(): Promise<void>;
79
73
  registerSocket(socket: Socket): void;
80
74
  getObject(_id?: string): T | null;
@@ -83,5 +77,5 @@ export declare class AutoUpdateServerManager<T extends AutoUpdatedServerObject<a
83
77
  };
84
78
  get objectsAsArray(): T[];
85
79
  handleGetMissingObject(_id: string): Promise<T>;
86
- createObject(data: Omit<IsData<Pure<T, AutoUpdatedServerObject<any>>>, "_id">): Promise<T>;
80
+ createObject(data: IsData<T>): Promise<T>;
87
81
  }
@@ -131,7 +131,6 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
131
131
  next();
132
132
  });
133
133
  const managers = {};
134
- let i = 0;
135
134
  for (const key in defs) {
136
135
  loggers.debug(`Creating manager for ${key}`);
137
136
  const def = defs[key];
@@ -139,19 +138,11 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
139
138
  try {
140
139
  const c = new AutoUpdateServerManager(def.class, key, loggers, socket, model, managers, emitter, def.options);
141
140
  managers[key] = c;
142
- }
143
- catch (error) {
144
- loggers.error("Error creating manager: " + key);
145
- loggers.error(error.message);
146
- loggers.error(error.stack);
147
- continue;
148
- }
149
- loggers.debug("Loading DB for manager: " + key);
150
- try {
141
+ loggers.debug("Loading DB for manager: " + key);
151
142
  await managers[key].preLoad();
152
143
  }
153
144
  catch (error) {
154
- loggers.error("Error loading DB for manager: " + key);
145
+ loggers.error("Error creating/loading manager: " + key);
155
146
  loggers.error(error.message);
156
147
  loggers.error(error.stack);
157
148
  }
@@ -203,26 +194,36 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
203
194
  async preLoad() {
204
195
  this.loggers.debug("Loading manager DB " + this.className);
205
196
  const docs = await this.model.find({});
206
- let i = 0;
207
- for (const doc of docs.map((d) => d._id.toString())) {
208
- if (!doc) {
209
- this.loggers.debug("Invalid document, no _id: " + JSON.stringify(docs[i]));
210
- continue;
197
+ const dbIds = new Set(docs.map((d) => d._id.toString()));
198
+ // Remove stale objects not in DB
199
+ for (const id in this.objects_) {
200
+ if (!dbIds.has(id)) {
201
+ this.socket.emit("delete" + this.className, id);
202
+ delete globalCache.objects[id];
203
+ delete this.objects_[id];
211
204
  }
212
- i++;
213
- this.objects_[doc] =
214
- this.objects_[doc] ??
215
- (await createAutoUpdatedClass(this.classParam, this.className, this.socket, doc, this.loggers, this, this.emitter));
216
- globalCache.objects[doc] = {
205
+ }
206
+ const creationPromises = docs.map(async (d) => {
207
+ const docId = d._id.toString();
208
+ if (!docId) {
209
+ this.loggers.debug("Invalid document, no _id: " + JSON.stringify(d));
210
+ return;
211
+ }
212
+ this.objects_[docId] =
213
+ this.objects_[docId] ??
214
+ (await createAutoUpdatedClass(this.classParam, this.className, this.socket, docId, this.loggers, this, this.emitter, d));
215
+ globalCache.objects[docId] = {
217
216
  className: this.className,
218
- object: this.objects_[doc],
217
+ object: this.objects_[docId],
219
218
  };
220
- }
221
- for (const object of this.objectsAsArray) {
219
+ });
220
+ await Promise.all(creationPromises);
221
+ const initializationPromises = Object.values(this.objects_).map(async (object) => {
222
222
  await object.isPreLoadedAsync();
223
223
  await object.contactChildren();
224
224
  await object.loadMissingReferences();
225
- }
225
+ });
226
+ await Promise.all(initializationPromises);
226
227
  this.loggers.debug("Loaded manager DB " +
227
228
  this.className +
228
229
  " - [" +
@@ -329,6 +330,11 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
329
330
  try {
330
331
  const id = event.replace(EVENT_GET + this.className, "");
331
332
  let obj = this.objects_[id];
333
+ if (!obj) {
334
+ this.loggers.warn(`Client requested non-existent object ${id} from manager ${this.className}`);
335
+ ack({ success: false, message: "Object not found" });
336
+ return;
337
+ }
332
338
  ack({
333
339
  data: obj.extractedData,
334
340
  success: true,
@@ -388,9 +394,8 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
388
394
  globalCache.objects[object._id] = { className: this.className, object };
389
395
  await object.isPreLoadedAsync();
390
396
  await object.loadMissingReferences();
391
- await object.onUpdate();
392
397
  await object.contactChildren();
393
- for (const socket of this.clientSockets) {
398
+ const notificationPromises = Array.from(this.clientSockets).map(async (socket) => {
394
399
  try {
395
400
  const theTruth = (await this.options?.accessDefinitions?.startupMiddleware?.([object], this.managers, socket)) ?? ["gay"];
396
401
  if (theTruth.length > 0) {
@@ -401,15 +406,14 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
401
406
  }
402
407
  }
403
408
  catch (error) {
404
- const _ = error;
405
409
  this.loggers.error("Error when emitting new object to client: " + error.name);
406
410
  this.loggers.error(error.message);
407
411
  this.loggers.error(error.stack);
408
412
  }
409
- if (!object._id)
410
- throw new Error(`Never... failed to get object somehow: ${object}`);
411
- this.loggers.debug("Emitting new object " + object._id);
412
- }
413
+ });
414
+ await Promise.all(notificationPromises);
415
+ if (!object._id)
416
+ throw new Error(`Never... failed to get object somehow: ${object}`);
413
417
  return object;
414
418
  }
415
419
  }
@@ -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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"}
@@ -1,22 +1,35 @@
1
1
  import "reflect-metadata";
2
- import { Constructor, EventEmitter3, IsData, LoggersType, PathValueOf, ServerUpdateRequest, Paths, OnlyAddedKeys, ExtractedData } from "./CommonTypes.js";
2
+ import { Constructor, EventEmitter3, IsData, LoggersType, PathValueOf, ServerUpdateRequest, Paths, ExtractedData } from "./CommonTypes.js";
3
3
  import { ObjectId } from "bson";
4
4
  import { Socket } from "socket.io-client";
5
5
  import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
6
- export type DEMClientCallbacks<T> = {
6
+ export type DEMClientCallbacks<T extends AutoUpdatedClientObject<T>> = {
7
7
  new: (obj: T) => Promise<void> | void;
8
8
  update: (obj: T, key: string) => Promise<void> | void;
9
9
  delete: (obj: T) => Promise<void> | void;
10
10
  progress: (percent: number) => void;
11
+ onUpdate?: (obj: T, set: <K extends Paths<T>>(key: K, val: PathValueOf<IsData<T>, K>) => Promise<{
12
+ success: boolean;
13
+ msg: string;
14
+ }>) => Promise<void>;
11
15
  };
12
16
  type SocketType = Socket<any, any>;
13
- export declare abstract class AutoUpdatedClientObject<T> {
17
+ export declare abstract class AutoUpdatedClientObject<T extends AutoUpdatedClientObject<T>> {
14
18
  protected entry: any;
15
19
  preLoad: any;
16
20
  registerSocket: any;
17
21
  readyLoggers: any;
18
22
  loadFromDB(a: any): any;
19
- setValue_(a: any, b: any): any;
23
+ setValue_<K extends Paths<T>>(key: K, val: PathValueOf<IsData<T>, K>): Promise<{
24
+ success: boolean;
25
+ msg: string;
26
+ }>;
27
+ get set(): {
28
+ value: <K extends Paths<T>>(key: K, val: PathValueOf<IsData<T>, K>) => Promise<{
29
+ success: boolean;
30
+ msg: string;
31
+ }>;
32
+ };
20
33
  protected readonly socket: SocketType;
21
34
  protected data: IsData<T>;
22
35
  protected readonly isServer: boolean;
@@ -26,10 +39,10 @@ export declare abstract class AutoUpdatedClientObject<T> {
26
39
  protected isLoadingReferences: boolean;
27
40
  protected checkedMissingRefs: boolean;
28
41
  protected readonly emitter: EventEmitter3;
29
- readonly properties: (keyof OnlyAddedKeys<T, AutoUpdatedClientObject<T>>)[];
42
+ readonly properties: string[];
30
43
  readonly classParam: Constructor<T>;
31
44
  readonly className: string;
32
- parentManager: AutoUpdateManager<AutoUpdatedClientObject<T>>;
45
+ parentManager: AutoUpdateManager<T>;
33
46
  private readonly EmitterID;
34
47
  protected readonly toChangeOnParents: {
35
48
  key: string;
@@ -39,19 +52,19 @@ export declare abstract class AutoUpdatedClientObject<T> {
39
52
  private readonly loadReferencesAsync;
40
53
  /** @deprecated Use loadReferencesAsync instead */
41
54
  private readonly loadShit;
42
- constructor(classParam?: Constructor<T>, socket?: SocketType, data?: string | IsData<T>, loggers?: LoggersType, className?: string, parentManager?: AutoUpdateManager<any>, callback?: DEMClientCallbacks<T>, emitter?: EventEmitter3, isServer?: boolean);
55
+ constructor(classParam?: Constructor<T>, socket?: SocketType, data?: string | IsData<T>, loggers?: LoggersType, className?: string, parentManager?: AutoUpdateManager<T>, callback?: DEMClientCallbacks<T>, emitter?: EventEmitter3, isServer?: boolean);
43
56
  waitForPreloaded(): Promise<void>;
44
57
  protected handleNewObject(data: IsData<T>): void;
45
- get extractedData(): ExtractedData<T, AutoUpdatedClientObject<T>>;
58
+ get extractedData(): ExtractedData<T, never>;
46
59
  get isLoaded(): boolean;
47
60
  isPreLoadedAsync(): Promise<boolean>;
48
61
  loadMissingReferences(): Promise<void>;
49
62
  private openSockets;
50
63
  private handleUpdateRequest;
51
64
  protected generateSettersAndGetters(): void;
52
- getValue(key_: Paths<T, AutoUpdatedClientObject<unknown>>): any;
65
+ getValue(key_: Paths<T>): any;
53
66
  protected findReference(id: string | ObjectId, key: string): any;
54
- setValue<K extends Paths<T, AutoUpdatedClientObject<T>>>(key: K, val: PathValueOf<IsData<T>, K>): Promise<{
67
+ setValue<K extends Paths<T>>(key: K, val: PathValueOf<IsData<T>, K>): Promise<{
55
68
  success: boolean;
56
69
  msg: string;
57
70
  }>;
@@ -8,7 +8,14 @@ export class AutoUpdatedClientObject {
8
8
  registerSocket;
9
9
  readyLoggers;
10
10
  loadFromDB(a) { }
11
- setValue_(a, b) { }
11
+ async setValue_(key, val) {
12
+ return await this.setValue__(key, val);
13
+ }
14
+ get set() {
15
+ return {
16
+ value: (key, val) => this.setValue(key, val),
17
+ };
18
+ }
12
19
  socket;
13
20
  data;
14
21
  isServer = false;
@@ -82,20 +89,20 @@ export class AutoUpdatedClientObject {
82
89
  this.parentManager = parentManager;
83
90
  this.className = className;
84
91
  const allProps = new Set();
85
- let proto_ = classParam.prototype;
86
- while (proto_ && proto_ !== Object.prototype) {
87
- const props = Reflect.getOwnMetadata("props", proto_) || [];
92
+ let proto = classParam.prototype;
93
+ while (proto && proto !== Object.prototype) {
94
+ const props = Reflect.getOwnMetadata("props", proto) || [];
88
95
  for (const p of props)
89
96
  allProps.add(p);
90
- proto_ = Object.getPrototypeOf(proto_);
97
+ proto = Object.getPrototypeOf(proto);
91
98
  }
92
99
  this.properties = Array.from(allProps);
93
100
  this.callbacks = callback;
94
101
  this.loggers = {
95
- debug: (s) => loggers.debug(`[DEM - ${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
96
- info: (s) => loggers.info(`[DEM - ${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
97
- warn: (s) => loggers.warn(`[DEM - ${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
98
- error: (s) => loggers.error(`[DEM - ${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
102
+ debug: (s) => loggers.debug(`[${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
103
+ info: (s) => loggers.info(`[${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
104
+ warn: (s) => loggers.warn(`[${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
105
+ error: (s) => loggers.error(`[${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
99
106
  };
100
107
  if (typeof data === "string") {
101
108
  this.data = { _id: data };
@@ -104,7 +111,7 @@ export class AutoUpdatedClientObject {
104
111
  this.generateSettersAndGetters();
105
112
  return;
106
113
  }
107
- this.socket.emit(EVENT_GET + this.className + data, null, (res) => {
114
+ this.socket.emit(EVENT_GET + this.className + data, null, async (res) => {
108
115
  if (!res.success) {
109
116
  this.isLoading = false;
110
117
  this.loggers.error("Could not load data from server: " + res.message);
@@ -114,6 +121,7 @@ export class AutoUpdatedClientObject {
114
121
  this.data = res.data;
115
122
  this.generateSettersAndGetters();
116
123
  this.isLoading = false;
124
+ await this.onUpdate();
117
125
  this.emitter.emit(EVENT_INTERNAL_PRE_LOADED + this.EmitterID);
118
126
  this.openSockets();
119
127
  });
@@ -133,12 +141,14 @@ export class AutoUpdatedClientObject {
133
141
  }
134
142
  }
135
143
  if ((!this.data._id || this.data._id === "") && !this.isServer) {
136
- this.handleNewObject(data);
144
+ this.handleNewObject(this.data);
137
145
  }
138
146
  else {
139
147
  this.isLoading = false;
140
- if (!this.isServer)
148
+ if (!this.isServer) {
141
149
  this.openSockets();
150
+ this.onUpdate(); // Client load/creation trigger
151
+ }
142
152
  }
143
153
  }
144
154
  this.generateSettersAndGetters();
@@ -150,8 +160,14 @@ export class AutoUpdatedClientObject {
150
160
  async waitForPreloaded() {
151
161
  if (this.isLoaded)
152
162
  return;
163
+ // console.log(`[DEBUG] ${this.className} Waiting for preloaded - ID: ${this.data?._id ?? (this as any)._id}`);
153
164
  await new Promise((resolve, reject) => {
165
+ const timer = setTimeout(() => {
166
+ console.error(`[FATAL] ${this.className} TIMEOUT waiting for preloaded - ID: ${this.data?._id ?? this._id}`);
167
+ reject(new Error("Timeout waiting for preloaded"));
168
+ }, 10000);
154
169
  this.emitter.once(EVENT_INTERNAL_PRE_LOADED + this.EmitterID, (failed, reason) => {
170
+ clearTimeout(timer);
155
171
  if (failed)
156
172
  reject(new Error(reason));
157
173
  else
@@ -220,15 +236,9 @@ export class AutoUpdatedClientObject {
220
236
  if (typeof key !== "string")
221
237
  continue;
222
238
  const isRef = getMetadataRecursive("isRef", this, key);
223
- // CRITICAL: Delete any existing property on the instance to ensure our getter is used.
224
- delete this[key];
225
239
  Object.defineProperty(this, key, {
226
240
  get: () => {
227
- if (!this.data)
228
- return undefined;
229
241
  let val = this.data[key];
230
- if (val === null)
231
- val = undefined; // Fix for server-side MongoDB nulls
232
242
  if (isRef && val) {
233
243
  if (Array.isArray(val)) {
234
244
  return val.map((id) => this.findReference(id, key)).filter(Boolean);
@@ -240,8 +250,7 @@ export class AutoUpdatedClientObject {
240
250
  return val;
241
251
  },
242
252
  set: (v) => {
243
- if (this.data)
244
- this.data[key] = v;
253
+ throw new Error("Cannot set value of a reference pointer directly.");
245
254
  },
246
255
  enumerable: true,
247
256
  configurable: true,
@@ -397,6 +406,11 @@ export class AutoUpdatedClientObject {
397
406
  this.loggers.info(`[${_id}] ${this.className} object wiped`);
398
407
  }
399
408
  async loadForceReferences(obj = this.data, proto = this, alreadySeen = []) {
409
+ if (obj === this.data) {
410
+ const myId = this.data?._id?.toString();
411
+ if (myId && !alreadySeen.includes(myId))
412
+ alreadySeen.push(myId);
413
+ }
400
414
  const props = Reflect.getMetadata("props", proto) || [];
401
415
  for (const key of props) {
402
416
  if (typeof key !== "string")
@@ -441,7 +455,11 @@ export class AutoUpdatedClientObject {
441
455
  }
442
456
  }
443
457
  async onUpdate(noUpdate = false) {
444
- return;
458
+ if (noUpdate)
459
+ return;
460
+ await this.callbacks?.onUpdate?.(this, (key, val) => {
461
+ return this.setValue__(key, val, false, true, true);
462
+ });
445
463
  }
446
464
  async createdWithParent(pointer, parent) {
447
465
  if (pointer.length !== 2)
@@ -464,7 +482,7 @@ export class AutoUpdatedClientObject {
464
482
  }
465
483
  async destroy(once = false) {
466
484
  if (!once)
467
- return await this.parentManager.deleteObject(this.data._id);
485
+ return await this.parentManager.deleteObject(this.data._id.toString());
468
486
  return new Promise((resolve) => {
469
487
  this.socket.emit(EVENT_DELETE + this.className, this.data._id, (res) => {
470
488
  resolve({ success: res.success, message: res.message ?? "" });
@@ -519,6 +537,7 @@ export class AutoUpdatedClientObject {
519
537
  }
520
538
  }
521
539
  }
540
+ this.generateSettersAndGetters();
522
541
  }
523
542
  }
524
543
  export function processIsRefProperties(instance, target, prefix, allProps, newData, loggers) {