@prestizni-software/client-dem 0.4.113 → 0.4.114
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/AutoUpdateClientManagerClass.d.ts +21 -28
- package/dist/AutoUpdateClientManagerClass.js +148 -268
- package/dist/AutoUpdateClientManagerClass.js.map +1 -1
- package/dist/AutoUpdateManagerClass.d.ts +16 -17
- package/dist/AutoUpdateManagerClass.js +22 -15
- package/dist/AutoUpdateManagerClass.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/CommonTypes.d.ts +32 -19
- package/dist/CommonTypes.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -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,9 +1,7 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import { Constructor, EventEmitter3, IsData, LoggersType, PathValueOf, ServerUpdateRequest,
|
|
3
|
-
import { ObjectId } from "bson";
|
|
4
|
-
import { Socket } from "socket.io-client";
|
|
2
|
+
import { Constructor, EventEmitter3, IsData, LoggersType, PathValueOf, ServerUpdateRequest, MongoId, IDEMSocket } from "./CommonTypes.js";
|
|
5
3
|
import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
|
|
6
|
-
export type DEMClientCallbacks<T extends AutoUpdatedClientObject<T>> = {
|
|
4
|
+
export type DEMClientCallbacks<T extends AutoUpdatedClientObject<T, any>> = {
|
|
7
5
|
new: (obj: T) => Promise<void> | void;
|
|
8
6
|
update: (obj: T, key: string) => Promise<void> | void;
|
|
9
7
|
delete: (obj: T) => Promise<void> | void;
|
|
@@ -13,17 +11,16 @@ export type DEMClientCallbacks<T extends AutoUpdatedClientObject<T>> = {
|
|
|
13
11
|
msg: string;
|
|
14
12
|
}>) => Promise<void>;
|
|
15
13
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
protected readonly socket: SocketType;
|
|
14
|
+
export declare abstract class AutoUpdatedClientObject<T extends AutoUpdatedClientObject<T, any>, M extends Record<string, any> = any> {
|
|
15
|
+
protected entry: unknown;
|
|
16
|
+
preLoad: unknown;
|
|
17
|
+
registerSocket: unknown;
|
|
18
|
+
readyLoggers: unknown;
|
|
19
|
+
loadFromDB(a: unknown): unknown;
|
|
20
|
+
protected readonly socket: IDEMSocket;
|
|
24
21
|
protected data: IsData<T>;
|
|
25
22
|
protected readonly isServer: boolean;
|
|
26
|
-
abstract readonly _id:
|
|
23
|
+
abstract readonly _id: MongoId;
|
|
27
24
|
protected readonly loggers: LoggersType;
|
|
28
25
|
protected isLoading: boolean;
|
|
29
26
|
protected isLoadingReferences: boolean;
|
|
@@ -32,28 +29,30 @@ export declare abstract class AutoUpdatedClientObject<T extends AutoUpdatedClien
|
|
|
32
29
|
readonly properties: (keyof IsData<T> & string)[];
|
|
33
30
|
readonly classParam: Constructor<T>;
|
|
34
31
|
readonly className: string;
|
|
35
|
-
parentManager: AutoUpdateManager<T>;
|
|
32
|
+
parentManager: AutoUpdateManager<T, M>;
|
|
36
33
|
private readonly EmitterID;
|
|
37
34
|
protected readonly toChangeOnParents: {
|
|
38
35
|
key: string;
|
|
39
|
-
value:
|
|
36
|
+
value: unknown;
|
|
40
37
|
}[];
|
|
41
38
|
callbacks: DEMClientCallbacks<T>;
|
|
42
39
|
private readonly loadReferencesAsync;
|
|
43
40
|
/** @deprecated Use loadReferencesAsync instead */
|
|
44
41
|
private readonly loadShit;
|
|
45
|
-
constructor(classParam?: Constructor<T>, socket?:
|
|
42
|
+
constructor(classParam?: Constructor<T>, socket?: IDEMSocket, data?: string | IsData<T>, loggers?: LoggersType, className?: string, parentManager?: AutoUpdateManager<T, M>, callback?: DEMClientCallbacks<T>, emitter?: EventEmitter3, isServer?: boolean);
|
|
46
43
|
waitForPreloaded(): Promise<void>;
|
|
47
44
|
protected handleNewObject(data: IsData<T>): void;
|
|
48
|
-
get extractedData():
|
|
45
|
+
get extractedData(): {
|
|
46
|
+
[K in keyof IsData<T>]: unknown;
|
|
47
|
+
};
|
|
49
48
|
get isLoaded(): boolean;
|
|
50
49
|
isPreLoadedAsync(): Promise<boolean>;
|
|
51
50
|
loadMissingReferences(): Promise<void>;
|
|
52
51
|
private openSockets;
|
|
53
52
|
private handleUpdateRequest;
|
|
54
53
|
protected generateSettersAndGetters(): void;
|
|
55
|
-
getValue(key_: keyof IsData<T> & string):
|
|
56
|
-
protected findReference(id: string |
|
|
54
|
+
getValue(key_: keyof IsData<T> & string): unknown;
|
|
55
|
+
protected findReference(id: string | MongoId, key: string): unknown;
|
|
57
56
|
setValue<K extends keyof IsData<T> & string>(key: K, val: PathValueOf<IsData<T>, K>, options?: {
|
|
58
57
|
silent?: boolean;
|
|
59
58
|
noGet?: boolean;
|
|
@@ -63,12 +62,12 @@ export declare abstract class AutoUpdatedClientObject<T extends AutoUpdatedClien
|
|
|
63
62
|
success: boolean;
|
|
64
63
|
msg: string;
|
|
65
64
|
}>;
|
|
66
|
-
protected setValueInternal(key: string, value:
|
|
65
|
+
protected setValueInternal(key: string, value: unknown, silent?: boolean, noUpdate?: boolean): Promise<{
|
|
67
66
|
success: boolean;
|
|
68
67
|
msg: string;
|
|
69
68
|
}>;
|
|
70
|
-
protected makeUpdate(key: string, value:
|
|
71
|
-
protected resolveReference(id: string): Promise<AutoUpdatedClientObject<any> | null>;
|
|
69
|
+
protected makeUpdate(key: string, value: unknown): ServerUpdateRequest<T>;
|
|
70
|
+
protected resolveReference(id: string): Promise<AutoUpdatedClientObject<any, any> | null>;
|
|
72
71
|
private findAndLoadReferences;
|
|
73
72
|
protected wipeSelf(): Promise<void>;
|
|
74
73
|
private loadForceReferences;
|
|
@@ -83,9 +82,8 @@ export declare abstract class AutoUpdatedClientObject<T extends AutoUpdatedClien
|
|
|
83
82
|
private findMissingObjectReference;
|
|
84
83
|
contactChildren(): Promise<void>;
|
|
85
84
|
}
|
|
86
|
-
export declare function processIsRefProperties(instance:
|
|
85
|
+
export declare function processIsRefProperties(instance: Record<string, any>, target: object, prefix: string | null, allProps: string[], newData: Record<string, unknown>, loggers: LoggersType): {
|
|
87
86
|
allProps: string[];
|
|
88
|
-
newData:
|
|
87
|
+
newData: Record<string, unknown>;
|
|
89
88
|
};
|
|
90
|
-
export declare function getMetadataRecursive(metaKey: string,
|
|
91
|
-
export {};
|
|
89
|
+
export declare function getMetadataRecursive(metaKey: string, target: object, prop: string): unknown;
|