@prestizni-software/client-dem 0.5.8 → 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/AutoUpdateClientManagerClass.d.ts +28 -22
- package/dist/AutoUpdateClientManagerClass.js +249 -155
- package/dist/AutoUpdateClientManagerClass.js.map +1 -1
- package/dist/AutoUpdateManagerClass.d.ts +19 -18
- package/dist/AutoUpdateManagerClass.js +15 -28
- package/dist/AutoUpdateManagerClass.js.map +1 -1
- package/dist/AutoUpdatedClientObjectClass.d.ts +38 -42
- package/dist/AutoUpdatedClientObjectClass.js +198 -298
- package/dist/AutoUpdatedClientObjectClass.js.map +1 -1
- package/dist/CommonTypes.d.ts +48 -41
- package/dist/CommonTypes.js +0 -2
- package/dist/CommonTypes.js.map +1 -1
- package/dist/client.d.ts +5 -1
- package/dist/client.js +5 -10
- package/dist/client.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { globalCache, } from "./CommonTypes
|
|
1
|
+
import { globalCache, } from "./CommonTypes";
|
|
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
|
-
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);
|
|
29
|
+
this.properties = Reflect.getMetadata("props", classParam.prototype);
|
|
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,19 @@ 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
|
|
62
|
-
if (!o)
|
|
63
|
-
return { success: true, message: "Already gone" };
|
|
64
|
-
const res = await o.destroy(true);
|
|
53
|
+
const o = this.objects_[_id];
|
|
54
|
+
const res = await o?.destroy(true);
|
|
65
55
|
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
|
-
}
|
|
56
|
+
delete this.objects_[_id];
|
|
57
|
+
delete globalCache.objects[_id];
|
|
72
58
|
}
|
|
59
|
+
await o?.callbacks?.delete?.(this);
|
|
73
60
|
return res ?? { success: true, message: "Already gone" };
|
|
74
61
|
}
|
|
75
62
|
get objectIDs() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,WAAW,
|
|
1
|
+
{"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,93 +1,89 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import { Constructor, EventEmitter3, IsData, LoggersType, PathValueOf, ServerUpdateRequest,
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { Constructor, EventEmitter3, IsData, LoggersType, PathValueOf, ServerUpdateRequest, Paths, OnlyAddedKeys, ExtractedData } from "./CommonTypes";
|
|
3
|
+
import { ObjectId } from "bson";
|
|
4
|
+
import { Socket } from "socket.io-client";
|
|
5
|
+
import { AutoUpdateManager } from "./AutoUpdateManagerClass";
|
|
6
|
+
export type DEMClientCallbacks<T> = {
|
|
5
7
|
new: (obj: T) => Promise<void> | void;
|
|
6
8
|
update: (obj: T, key: string) => Promise<void> | void;
|
|
7
9
|
delete: (obj: T) => Promise<void> | void;
|
|
8
10
|
progress: (percent: number) => void;
|
|
9
|
-
onUpdate?: (obj: T, set: <K extends keyof IsData<T> & string>(key: K, val: PathValueOf<IsData<T>, K>) => Promise<{
|
|
10
|
-
success: boolean;
|
|
11
|
-
msg: string;
|
|
12
|
-
}>) => Promise<void>;
|
|
13
11
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
type SocketType = Socket<any, any>;
|
|
13
|
+
export declare abstract class AutoUpdatedClientObject<T> {
|
|
14
|
+
protected entry: any;
|
|
15
|
+
preLoad: any;
|
|
16
|
+
registerSocket: any;
|
|
17
|
+
readyLoggers: any;
|
|
18
|
+
loadFromDB(a: any): any;
|
|
19
|
+
setValue_(a: any, b: any): any;
|
|
20
|
+
protected readonly socket: SocketType;
|
|
21
21
|
protected data: IsData<T>;
|
|
22
22
|
protected readonly isServer: boolean;
|
|
23
|
-
abstract readonly _id:
|
|
23
|
+
abstract readonly _id: any;
|
|
24
24
|
protected readonly loggers: LoggersType;
|
|
25
25
|
protected isLoading: boolean;
|
|
26
|
+
protected loadError?: string;
|
|
26
27
|
protected isLoadingReferences: boolean;
|
|
27
28
|
protected checkedMissingRefs: boolean;
|
|
28
|
-
protected isDestroyed: boolean;
|
|
29
29
|
protected readonly emitter: EventEmitter3;
|
|
30
|
-
readonly properties: (keyof
|
|
30
|
+
readonly properties: (keyof OnlyAddedKeys<T, AutoUpdatedClientObject<T>>)[];
|
|
31
31
|
readonly classParam: Constructor<T>;
|
|
32
32
|
readonly className: string;
|
|
33
|
-
parentManager: AutoUpdateManager<T
|
|
33
|
+
parentManager: AutoUpdateManager<AutoUpdatedClientObject<T>>;
|
|
34
34
|
private readonly EmitterID;
|
|
35
35
|
protected readonly toChangeOnParents: {
|
|
36
36
|
key: string;
|
|
37
|
-
value:
|
|
37
|
+
value: any;
|
|
38
38
|
}[];
|
|
39
39
|
callbacks: DEMClientCallbacks<T>;
|
|
40
|
-
private readonly preloadTimers;
|
|
41
40
|
private readonly loadReferencesAsync;
|
|
42
41
|
/** @deprecated Use loadReferencesAsync instead */
|
|
43
42
|
private readonly loadShit;
|
|
44
|
-
constructor(classParam?: Constructor<T>, socket?:
|
|
43
|
+
constructor(classParam?: Constructor<T>, socket?: SocketType, data?: string | IsData<T>, loggers?: LoggersType, className?: string, parentManager?: AutoUpdateManager<any>, callback?: DEMClientCallbacks<T>, emitter?: EventEmitter3, isServer?: boolean);
|
|
45
44
|
waitForPreloaded(): Promise<void>;
|
|
46
45
|
protected handleNewObject(data: IsData<T>): void;
|
|
47
|
-
get extractedData():
|
|
48
|
-
[K in keyof IsData<T>]: unknown;
|
|
49
|
-
};
|
|
46
|
+
get extractedData(): ExtractedData<T, AutoUpdatedClientObject<T>>;
|
|
50
47
|
get isLoaded(): boolean;
|
|
51
48
|
isPreLoadedAsync(): Promise<boolean>;
|
|
52
49
|
loadMissingReferences(): Promise<void>;
|
|
53
50
|
private openSockets;
|
|
54
51
|
private handleUpdateRequest;
|
|
55
52
|
protected generateSettersAndGetters(): void;
|
|
56
|
-
getValue(key_:
|
|
57
|
-
protected findReference(id: string |
|
|
58
|
-
setValue<K extends
|
|
59
|
-
silent?: boolean;
|
|
60
|
-
noGet?: boolean;
|
|
61
|
-
noUpdate?: boolean;
|
|
62
|
-
isParentUpdate?: boolean;
|
|
63
|
-
}): Promise<{
|
|
53
|
+
getValue(key_: Paths<T, AutoUpdatedClientObject<unknown>>): any;
|
|
54
|
+
protected findReference(id: string | ObjectId, key: string): any;
|
|
55
|
+
setValue<K extends Paths<T, AutoUpdatedClientObject<T>>>(key: K, val: PathValueOf<IsData<T>, K>): Promise<{
|
|
64
56
|
success: boolean;
|
|
65
57
|
msg: string;
|
|
66
58
|
}>;
|
|
67
|
-
protected
|
|
59
|
+
protected setValue__(key: any, val: any, silent?: boolean, noGet?: boolean, noUpdate?: boolean, isParentUpdate?: boolean): Promise<{
|
|
68
60
|
success: boolean;
|
|
69
61
|
msg: string;
|
|
70
62
|
}>;
|
|
71
|
-
protected
|
|
72
|
-
|
|
63
|
+
protected setValueInternal(key: string, value: any, silent?: boolean, noUpdate?: boolean): Promise<{
|
|
64
|
+
success: boolean;
|
|
65
|
+
msg: string;
|
|
66
|
+
}>;
|
|
67
|
+
protected makeUpdate(key: string, value: any): ServerUpdateRequest<T>;
|
|
68
|
+
protected resolveReference(id: string): Promise<AutoUpdatedClientObject<any> | null>;
|
|
73
69
|
private findAndLoadReferences;
|
|
74
70
|
protected wipeSelf(): Promise<void>;
|
|
71
|
+
destroyImmediate(): void;
|
|
75
72
|
private loadForceReferences;
|
|
76
73
|
private handleLoad;
|
|
77
|
-
|
|
78
|
-
protected createdWithParent(pointer: string[], parent: T | string): Promise<void>;
|
|
74
|
+
protected createdWithParent(pointer: string[], parent: any): Promise<void>;
|
|
79
75
|
destroy(once?: boolean): Promise<{
|
|
80
76
|
success: boolean;
|
|
81
77
|
message: string;
|
|
82
78
|
}>;
|
|
83
|
-
destroyImmediate(): void;
|
|
84
79
|
private checkForMissingRefs;
|
|
85
80
|
private findMissingObjectReference;
|
|
86
|
-
resolveReferences(): Promise<void>;
|
|
87
81
|
contactChildren(): Promise<void>;
|
|
82
|
+
onUpdate(): Promise<void>;
|
|
88
83
|
}
|
|
89
|
-
export declare function processIsRefProperties(instance:
|
|
84
|
+
export declare function processIsRefProperties(instance: any, target: any, prefix: string | null, allProps: string[], newData: any, loggers: LoggersType): {
|
|
90
85
|
allProps: string[];
|
|
91
|
-
newData:
|
|
86
|
+
newData: any;
|
|
92
87
|
};
|
|
93
|
-
export declare function getMetadataRecursive(metaKey: string,
|
|
88
|
+
export declare function getMetadataRecursive(metaKey: string, proto: any, prop: string): any;
|
|
89
|
+
export {};
|