@prestizni-software/server-dem 0.6.1 → 0.6.2
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.js +18 -3
- package/dist/AutoUpdateManagerClass.js.map +1 -1
- package/dist/AutoUpdateServerManagerClass.d.ts +9 -1
- package/dist/AutoUpdateServerManagerClass.js +141 -69
- package/dist/AutoUpdateServerManagerClass.js.map +1 -1
- package/dist/AutoUpdatedClientObjectClass.d.ts +13 -3
- package/dist/AutoUpdatedClientObjectClass.js +207 -90
- package/dist/AutoUpdatedClientObjectClass.js.map +1 -1
- package/dist/AutoUpdatedServerObjectClass.d.ts +4 -0
- package/dist/AutoUpdatedServerObjectClass.js +104 -56
- package/dist/AutoUpdatedServerObjectClass.js.map +1 -1
- package/dist/CommonTypes.d.ts +11 -8
- package/dist/CommonTypes.js +10 -3
- package/dist/CommonTypes.js.map +1 -1
- package/dist/CommonTypes_server.d.ts +1 -0
- package/dist/CommonTypes_server.js +1 -1
- package/dist/CommonTypes_server.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _ from "lodash";
|
|
1
2
|
import { AutoUpdatedClientObject, getMetadataRecursive, processIsRefProperties, } from "./AutoUpdatedClientObjectClass.js";
|
|
2
3
|
import { EVENT_UPDATE, EVENT_DELETE, EVENT_INTERNAL_PRE_LOADED, } from "./CommonTypes.js";
|
|
3
4
|
import { ObjectId } from "mongodb";
|
|
@@ -5,6 +6,8 @@ export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
5
6
|
isServer;
|
|
6
7
|
entry;
|
|
7
8
|
saveLock = Promise.resolve();
|
|
9
|
+
loadPromise = null;
|
|
10
|
+
_isUpdating = false;
|
|
8
11
|
constructor(classParam, socket, data, loggers, className, parentManager, emitter) {
|
|
9
12
|
if (!classParam ||
|
|
10
13
|
!socket ||
|
|
@@ -38,58 +41,78 @@ export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
38
41
|
this.isServer = true;
|
|
39
42
|
this.entry = null;
|
|
40
43
|
this.parentManager = parentManager;
|
|
44
|
+
// Cache refProps statically on constructor
|
|
45
|
+
const classParamAny = classParam;
|
|
46
|
+
if (!classParamAny.__refPropsCache) {
|
|
47
|
+
classParamAny.__refPropsCache = this.properties.filter((prop) => getMetadataRecursive("isRef", this, prop));
|
|
48
|
+
}
|
|
41
49
|
// Convert reference IDs to ObjectIds on the server side
|
|
42
50
|
const dataRec = this.data;
|
|
43
|
-
for (const prop of
|
|
44
|
-
if (typeof prop !== "string")
|
|
51
|
+
for (const prop of classParamAny.__refPropsCache) {
|
|
52
|
+
if (typeof prop !== "string" || !dataRec[prop])
|
|
45
53
|
continue;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
})
|
|
61
|
-
.filter((item) => item !== null);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
const idStr = dataRec[prop]._id
|
|
65
|
-
? dataRec[prop]._id.toString()
|
|
66
|
-
: dataRec[prop].toString();
|
|
67
|
-
if (idStr !== {}.toString() && ObjectId.isValid(idStr)) {
|
|
68
|
-
dataRec[prop] = new ObjectId(idStr);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
54
|
+
try {
|
|
55
|
+
if (Array.isArray(dataRec[prop])) {
|
|
56
|
+
dataRec[prop] = dataRec[prop]
|
|
57
|
+
.map((item) => {
|
|
58
|
+
if (!item)
|
|
59
|
+
return null;
|
|
60
|
+
const idStr = item._id
|
|
61
|
+
? item._id.toString()
|
|
62
|
+
: item.toString();
|
|
63
|
+
if (idStr === {}.toString())
|
|
64
|
+
return null; // Avoid [object Object]
|
|
65
|
+
return ObjectId.isValid(idStr) ? new ObjectId(idStr) : item;
|
|
66
|
+
})
|
|
67
|
+
.filter((item) => item !== null);
|
|
71
68
|
}
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
else {
|
|
70
|
+
const idStr = dataRec[prop]._id
|
|
71
|
+
? dataRec[prop]._id.toString()
|
|
72
|
+
: dataRec[prop].toString();
|
|
73
|
+
if (idStr !== {}.toString() && ObjectId.isValid(idStr)) {
|
|
74
|
+
dataRec[prop] = new ObjectId(idStr);
|
|
75
|
+
}
|
|
74
76
|
}
|
|
75
77
|
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
this.loggers.error(`Failed to set reference ${prop} to ${dataRec[prop]}: ${error.message}`);
|
|
80
|
+
}
|
|
76
81
|
}
|
|
77
82
|
}
|
|
78
|
-
async
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
...this.entry.toObject(),
|
|
83
|
+
async save() {
|
|
84
|
+
this.saveLock = (this.saveLock ?? Promise.resolve())
|
|
85
|
+
.catch(() => { })
|
|
86
|
+
.then(async () => {
|
|
87
|
+
if (this.entry && this.entry !== this) {
|
|
88
|
+
await this.entry.save();
|
|
89
|
+
}
|
|
90
|
+
else if (this.entry && typeof this.entry.$__save === "function") {
|
|
91
|
+
await this.entry.$__save();
|
|
92
|
+
}
|
|
89
93
|
});
|
|
90
|
-
this.
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
await this.saveLock;
|
|
95
|
+
}
|
|
96
|
+
async loadFromDB() {
|
|
97
|
+
if (this.loadPromise)
|
|
98
|
+
return this.loadPromise;
|
|
99
|
+
this.loadPromise = (async () => {
|
|
100
|
+
const _id = this.data._id;
|
|
101
|
+
if (!_id)
|
|
102
|
+
throw new Error("No id.");
|
|
103
|
+
// Use the model from the parent manager
|
|
104
|
+
this.entry = await this.parentManager.model.findById(_id);
|
|
105
|
+
if (!this.entry)
|
|
106
|
+
throw new Error(`Object not found in DB: ${this.className} with ID ${_id}`);
|
|
107
|
+
this.data = this.handleDataCleanup({
|
|
108
|
+
...this.data,
|
|
109
|
+
...this.entry.toObject(),
|
|
110
|
+
});
|
|
111
|
+
this.isLoading = false;
|
|
112
|
+
this.generateSettersAndGetters();
|
|
113
|
+
this.emitter.emit(EVENT_INTERNAL_PRE_LOADED + this.EmitterID);
|
|
114
|
+
})();
|
|
115
|
+
return this.loadPromise;
|
|
93
116
|
}
|
|
94
117
|
loadFromDocument(document) {
|
|
95
118
|
this.entry = document;
|
|
@@ -101,12 +124,18 @@ export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
101
124
|
this.generateSettersAndGetters();
|
|
102
125
|
this.emitter.emit(EVENT_INTERNAL_PRE_LOADED + this.EmitterID);
|
|
103
126
|
}
|
|
127
|
+
/** Override extractedData to return shallow copy */
|
|
104
128
|
get extractedData() {
|
|
105
|
-
const dataToProcess = this.data;
|
|
129
|
+
const dataToProcess = _.cloneDeep(this.data);
|
|
106
130
|
const extracted = processIsRefProperties(dataToProcess, this, null, [], {}, this.loggers).newData;
|
|
107
131
|
return extracted;
|
|
108
132
|
}
|
|
109
133
|
async setValueInternal(key, value, silent = false, noUpdate = false) {
|
|
134
|
+
if (key === "__proto__" ||
|
|
135
|
+
key === "constructor" ||
|
|
136
|
+
key === "prototype") {
|
|
137
|
+
return { success: false, msg: `Invalid property key: ${key}` };
|
|
138
|
+
}
|
|
110
139
|
try {
|
|
111
140
|
const _id = this.data._id;
|
|
112
141
|
if (!_id)
|
|
@@ -114,13 +143,24 @@ export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
114
143
|
this.entry ??= await this.parentManager.model.findById(_id);
|
|
115
144
|
if (!this.entry)
|
|
116
145
|
throw new Error("Object not found in DB.");
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
this.entry
|
|
121
|
-
|
|
146
|
+
// Check if property is part of properties or schema, regardless of current undefined value
|
|
147
|
+
const isPersisted = this.properties.includes(key) ||
|
|
148
|
+
this.entry[key] !== undefined ||
|
|
149
|
+
Boolean(this.entry.schema?.path?.(key));
|
|
150
|
+
if (isPersisted) {
|
|
151
|
+
this.saveLock = (this.saveLock ?? Promise.resolve())
|
|
122
152
|
.catch(() => { })
|
|
123
|
-
.then(() =>
|
|
153
|
+
.then(async () => {
|
|
154
|
+
if (typeof this.parentManager.model?.updateOne === "function") {
|
|
155
|
+
await this.parentManager.model.updateOne({ _id }, { $set: { [key]: value } });
|
|
156
|
+
}
|
|
157
|
+
else if (this.entry && typeof this.entry.save === "function") {
|
|
158
|
+
await this.entry.save();
|
|
159
|
+
}
|
|
160
|
+
if (this.entry) {
|
|
161
|
+
this.entry[key] = value;
|
|
162
|
+
}
|
|
163
|
+
});
|
|
124
164
|
await this.saveLock;
|
|
125
165
|
}
|
|
126
166
|
if (!silent) {
|
|
@@ -142,6 +182,8 @@ export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
142
182
|
if (!once) {
|
|
143
183
|
return await this.parentManager.deleteObject(_id);
|
|
144
184
|
}
|
|
185
|
+
// Wait for any pending saves to complete before deleting
|
|
186
|
+
await (this.saveLock ?? Promise.resolve()).catch(() => { });
|
|
145
187
|
try {
|
|
146
188
|
this.entry ??= await this.parentManager.model.findById(_id);
|
|
147
189
|
if (this.entry) {
|
|
@@ -162,13 +204,19 @@ export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
162
204
|
return { success: true, message: "Deleted" };
|
|
163
205
|
}
|
|
164
206
|
async onUpdate(noUpdate = false, key) {
|
|
165
|
-
if (noUpdate)
|
|
207
|
+
if (noUpdate || this._isUpdating)
|
|
166
208
|
return;
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
209
|
+
this._isUpdating = true;
|
|
210
|
+
try {
|
|
211
|
+
if (this.parentManager.options?.onUpdate) {
|
|
212
|
+
await this.parentManager.options.onUpdate(this, async (key, val) => {
|
|
213
|
+
// Bypass writeQueue chaining to prevent recursive deadlock while in onUpdate
|
|
214
|
+
return this.setValueQueueInternal(key, val, false, false, true);
|
|
215
|
+
}, key);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
finally {
|
|
219
|
+
this._isUpdating = false;
|
|
172
220
|
}
|
|
173
221
|
}
|
|
174
222
|
async onDeletion() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdatedServerObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedServerObjectClass.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAIL,YAAY,EACZ,YAAY,EAIZ,yBAAyB,GAG1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,OAAgB,uBAGpB,SAAQ,uBAA0B;IAGN,QAAQ,CAAU;IACpC,KAAK,CAAyB;IAEhC,QAAQ,GAAiB,OAAO,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"AutoUpdatedServerObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedServerObjectClass.ts"],"names":[],"mappings":"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"}
|
package/dist/CommonTypes.d.ts
CHANGED
|
@@ -28,8 +28,8 @@ export interface IAutoUpdatedClientObjectBase {
|
|
|
28
28
|
}>;
|
|
29
29
|
isPreLoadedAsync(): Promise<boolean>;
|
|
30
30
|
contactChildren(): Promise<void>;
|
|
31
|
-
getValue(key: string):
|
|
32
|
-
setValue(key: string, val:
|
|
31
|
+
getValue(key: string): unknown;
|
|
32
|
+
setValue(key: string, val: unknown): Promise<{
|
|
33
33
|
success: boolean;
|
|
34
34
|
msg: string;
|
|
35
35
|
}>;
|
|
@@ -71,7 +71,7 @@ type OnlyStringForRefs<V> = V extends any ? V extends Array<infer U> ? OnlyStrin
|
|
|
71
71
|
export type DEMCache = {
|
|
72
72
|
references: Record<string, any>;
|
|
73
73
|
};
|
|
74
|
-
export type Pure<T extends object, Base = IAutoUpdatedClientObject<any>> = Omit<T, keyof Base | "parentManager" | "callbacks" | "classParam" | "className" | "properties" | "isLoaded" | "extractedData" | "getValue" | "setValue" | "loadFromDB" | "setValue_" | "destroyImmediate" | "loadError">;
|
|
74
|
+
export type Pure<T extends object, Base = IAutoUpdatedClientObject<any>> = Omit<T, keyof Base | "parentManager" | "callbacks" | "classParam" | "className" | "properties" | "isLoaded" | "extractedData" | "getValue" | "setValue" | "loadFromDB" | "setValue_" | "destroyImmediate" | "loadError" | "updateEventName" | "getRawId">;
|
|
75
75
|
export type IsData<T extends object> = {
|
|
76
76
|
[K in keyof Pure<T> as T[K] extends Function ? never : K]: AllowStringForRefs<T[K]>;
|
|
77
77
|
} & {
|
|
@@ -95,7 +95,7 @@ export type ServerResponse<T> = {
|
|
|
95
95
|
message: string;
|
|
96
96
|
success: false;
|
|
97
97
|
};
|
|
98
|
-
export type ServerUpdateRequest<T> = {
|
|
98
|
+
export type ServerUpdateRequest<T = unknown> = {
|
|
99
99
|
_id: MongoId;
|
|
100
100
|
key: string;
|
|
101
101
|
value: unknown;
|
|
@@ -128,12 +128,15 @@ export declare const EVENT_DELETE = "delete";
|
|
|
128
128
|
export declare const EVENT_NEW = "new";
|
|
129
129
|
export declare const EVENT_GET = "get";
|
|
130
130
|
export declare const EVENT_STARTUP = "startup";
|
|
131
|
-
export declare function safeStringify(obj:
|
|
132
|
-
export
|
|
131
|
+
export declare function safeStringify(obj: unknown): string;
|
|
132
|
+
export declare class DEMGlobalCache {
|
|
133
133
|
objects: Record<string, {
|
|
134
134
|
className: string;
|
|
135
135
|
object: IAutoUpdatedClientObjectBase;
|
|
136
136
|
}>;
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
clear(): void;
|
|
138
|
+
get size(): number;
|
|
139
|
+
}
|
|
140
|
+
export type GlobalCache = DEMGlobalCache;
|
|
141
|
+
export declare const globalCache: DEMGlobalCache;
|
|
139
142
|
export {};
|
package/dist/CommonTypes.js
CHANGED
|
@@ -33,7 +33,14 @@ export function safeStringify(obj) {
|
|
|
33
33
|
return "[Circular or non-serializable object]";
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
export
|
|
37
|
-
objects
|
|
38
|
-
|
|
36
|
+
export class DEMGlobalCache {
|
|
37
|
+
objects = {};
|
|
38
|
+
clear() {
|
|
39
|
+
this.objects = {};
|
|
40
|
+
}
|
|
41
|
+
get size() {
|
|
42
|
+
return Object.keys(this.objects).length;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export const globalCache = new DEMGlobalCache();
|
|
39
46
|
//# sourceMappingURL=CommonTypes.js.map
|
package/dist/CommonTypes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonTypes.js","sourceRoot":"","sources":["../CommonTypes.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"CommonTypes.js","sourceRoot":"","sources":["../CommonTypes.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AA0K1B,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,WAAmB;IAC3D,MAAM,KAAK,GAAI,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAc,IAAI,EAAE,CAAC;IAC1E,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO;IACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAa;IAEb,OAAO,UAAU,MAAc,EAAE,WAAmB;QAClD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/B,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAU,MAAc,EAAE,WAAmB;QAClD,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/B,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAmFD,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,uCAAuC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,OAAO,cAAc;IAClB,OAAO,GAMV,EAAE,CAAC;IAEA,KAAK;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,IAAW,IAAI;QACb,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC;CACF;AAID,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./CommonTypes.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export * from "./CommonTypes.js";
|
|
2
2
|
//# sourceMappingURL=CommonTypes_server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonTypes_server.js","sourceRoot":"","sources":["../CommonTypes_server.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"CommonTypes_server.js","sourceRoot":"","sources":["../CommonTypes_server.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|