@prestizni-software/server-dem 0.3.101 → 0.4.1
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 +10 -10
- package/dist/AutoUpdateManagerClass.js +4 -7
- package/dist/AutoUpdateManagerClass.js.map +1 -1
- package/dist/AutoUpdateServerManagerClass.d.ts +28 -27
- package/dist/AutoUpdateServerManagerClass.js +27 -26
- package/dist/AutoUpdateServerManagerClass.js.map +1 -1
- package/dist/AutoUpdatedClientObjectClass.d.ts +22 -15
- package/dist/AutoUpdatedClientObjectClass.js +55 -31
- package/dist/AutoUpdatedClientObjectClass.js.map +1 -1
- package/dist/AutoUpdatedServerObjectClass.d.ts +6 -7
- package/dist/AutoUpdatedServerObjectClass.js +13 -9
- package/dist/AutoUpdatedServerObjectClass.js.map +1 -1
- package/dist/CommonTypes.d.ts +6 -6
- package/dist/CommonTypes_server.d.ts +6 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -2,14 +2,6 @@ import "reflect-metadata";
|
|
|
2
2
|
import _ from "lodash";
|
|
3
3
|
import { ObjectId } from "bson";
|
|
4
4
|
import { stringSimilarity } from "string-similarity-js";
|
|
5
|
-
export async function createAutoUpdatedClass(classParam, className, socket, data, loggers, parentManager, emitter) {
|
|
6
|
-
if (typeof data !== "string" && data._id) {
|
|
7
|
-
processIsRefProperties(data, classParam.prototype, undefined, [], loggers);
|
|
8
|
-
}
|
|
9
|
-
const props = Reflect.getMetadata("props", classParam.prototype);
|
|
10
|
-
const instance = new AutoUpdatedClientObject(socket, data, loggers, props, className, classParam, parentManager, emitter);
|
|
11
|
-
return instance;
|
|
12
|
-
}
|
|
13
5
|
export class AutoUpdatedClientObject {
|
|
14
6
|
socket;
|
|
15
7
|
data;
|
|
@@ -23,12 +15,14 @@ export class AutoUpdatedClientObject {
|
|
|
23
15
|
isLoading = true;
|
|
24
16
|
emitter;
|
|
25
17
|
properties;
|
|
18
|
+
classParam;
|
|
26
19
|
className;
|
|
27
20
|
parentManager;
|
|
28
21
|
isLoadingReferences = true;
|
|
29
|
-
classProp;
|
|
30
22
|
EmitterID = new ObjectId().toHexString();
|
|
31
23
|
toChangeOnParents = [];
|
|
24
|
+
callbacks;
|
|
25
|
+
referencesLoaded = false;
|
|
32
26
|
loadShit = async () => {
|
|
33
27
|
if (this.isLoaded) {
|
|
34
28
|
try {
|
|
@@ -67,16 +61,21 @@ export class AutoUpdatedClientObject {
|
|
|
67
61
|
this.loggers.error(error.message);
|
|
68
62
|
this.loggers.error(error.stack);
|
|
69
63
|
}
|
|
64
|
+
this.callbacks.new(this);
|
|
70
65
|
};
|
|
71
|
-
constructor(socket, data, loggers,
|
|
66
|
+
constructor(classParam, socket, data, loggers, className, parentManager, callback, emitter, isServer = false) {
|
|
67
|
+
this.classParam = classParam;
|
|
68
|
+
if (typeof data !== "string" && data._id) {
|
|
69
|
+
processIsRefProperties(data, this, undefined, [], loggers);
|
|
70
|
+
}
|
|
72
71
|
this.isServer = isServer;
|
|
73
72
|
this.emitter = emitter;
|
|
74
|
-
this.classProp = classProperty;
|
|
75
73
|
this.isLoadingReferences = true;
|
|
76
74
|
this.isLoading = true;
|
|
77
75
|
this.parentManager = parentManager;
|
|
78
76
|
this.className = className;
|
|
79
|
-
this.properties =
|
|
77
|
+
this.properties = Reflect.getMetadata("props", classParam.prototype);
|
|
78
|
+
this.callbacks = callback;
|
|
80
79
|
this.loggers.debug = (s) => loggers.debug("[DEM - " +
|
|
81
80
|
this.className +
|
|
82
81
|
": " +
|
|
@@ -101,6 +100,14 @@ export class AutoUpdatedClientObject {
|
|
|
101
100
|
(this.data?._id ?? "not loaded") +
|
|
102
101
|
"] " +
|
|
103
102
|
s);
|
|
103
|
+
for (const prop of this.properties) {
|
|
104
|
+
if (typeof prop !== "string")
|
|
105
|
+
throw new Error("Property '" + prop.toString() + "' is not a string");
|
|
106
|
+
if (prop.includes("."))
|
|
107
|
+
throw new Error("Property '" +
|
|
108
|
+
prop.toString() +
|
|
109
|
+
"' constain the illegal character '.'");
|
|
110
|
+
}
|
|
104
111
|
this.socket = socket;
|
|
105
112
|
if (typeof data === "string") {
|
|
106
113
|
if (this.isServer) {
|
|
@@ -138,7 +145,7 @@ export class AutoUpdatedClientObject {
|
|
|
138
145
|
if (typeof key !== "string")
|
|
139
146
|
throw new Error("Only string keys allowed. Not this shit: " + String(key));
|
|
140
147
|
dataKeys.splice(dataKeys.indexOf(key), 1);
|
|
141
|
-
const isRef = getMetadataRecursive("isRef", this
|
|
148
|
+
const isRef = getMetadataRecursive("isRef", this, key);
|
|
142
149
|
if (isRef) {
|
|
143
150
|
if (Array.isArray(this.data[key])) {
|
|
144
151
|
this.data[key] = this.data[key].map((obj) => obj._id?.toString() ?? obj?.toString());
|
|
@@ -176,7 +183,7 @@ export class AutoUpdatedClientObject {
|
|
|
176
183
|
for (const key of this.properties) {
|
|
177
184
|
if (typeof key !== "string")
|
|
178
185
|
continue;
|
|
179
|
-
let pointer = getMetadataRecursive("refsTo", this
|
|
186
|
+
let pointer = getMetadataRecursive("refsTo", this, key);
|
|
180
187
|
if (pointer) {
|
|
181
188
|
pointer = pointer.split(":");
|
|
182
189
|
if (pointer.length != 2)
|
|
@@ -210,7 +217,7 @@ export class AutoUpdatedClientObject {
|
|
|
210
217
|
});
|
|
211
218
|
}
|
|
212
219
|
get extractedData() {
|
|
213
|
-
const extracted = processIsRefProperties(this.data, this
|
|
220
|
+
const extracted = processIsRefProperties(this.data, this, null, [], {}, this.loggers).newData;
|
|
214
221
|
return _.cloneDeep(extracted);
|
|
215
222
|
}
|
|
216
223
|
get isLoaded() {
|
|
@@ -222,6 +229,9 @@ export class AutoUpdatedClientObject {
|
|
|
222
229
|
return true;
|
|
223
230
|
}
|
|
224
231
|
loadMissingReferences() {
|
|
232
|
+
if (this.referencesLoaded)
|
|
233
|
+
return;
|
|
234
|
+
this.referencesLoaded = true;
|
|
225
235
|
this.checkForMissingRefs();
|
|
226
236
|
this.generateSettersAndGetters();
|
|
227
237
|
}
|
|
@@ -254,7 +264,7 @@ export class AutoUpdatedClientObject {
|
|
|
254
264
|
if (typeof key !== "string")
|
|
255
265
|
return;
|
|
256
266
|
const k = key;
|
|
257
|
-
const isRef = getMetadataRecursive("isRef", this
|
|
267
|
+
const isRef = getMetadataRecursive("isRef", this, key);
|
|
258
268
|
Object.defineProperty(this, key, {
|
|
259
269
|
get: () => {
|
|
260
270
|
if (isRef) {
|
|
@@ -296,11 +306,14 @@ export class AutoUpdatedClientObject {
|
|
|
296
306
|
return undefined;
|
|
297
307
|
}
|
|
298
308
|
async setValue(key, val) {
|
|
299
|
-
|
|
309
|
+
const result = await this.setValue__(key, val);
|
|
310
|
+
if (this.isLoaded)
|
|
311
|
+
this.callbacks.update(this, key);
|
|
312
|
+
return result;
|
|
300
313
|
}
|
|
301
314
|
async setValue__(key, val, silent = false, noGet = false, noUpdate = false) {
|
|
302
315
|
let message = "Setting value " + key + " of " + this.className + " to ";
|
|
303
|
-
const isRef = getMetadataRecursive("isRef", this
|
|
316
|
+
const isRef = getMetadataRecursive("isRef", this, key);
|
|
304
317
|
if (isRef)
|
|
305
318
|
val = Array.isArray(val)
|
|
306
319
|
? val.map((v) => {
|
|
@@ -368,12 +381,14 @@ export class AutoUpdatedClientObject {
|
|
|
368
381
|
msg: message,
|
|
369
382
|
};
|
|
370
383
|
}
|
|
371
|
-
if (!this.properties.includes(lastPath) &&
|
|
384
|
+
if (!this.properties.includes(lastPath) &&
|
|
385
|
+
!lastPath.includes(".")) {
|
|
372
386
|
let nearest = "";
|
|
373
387
|
for (const prop of this.properties) {
|
|
374
388
|
if (typeof prop !== "string")
|
|
375
389
|
continue;
|
|
376
|
-
if (stringSimilarity(lastPath, prop) > 0 &&
|
|
390
|
+
if (stringSimilarity(lastPath, prop) > 0 &&
|
|
391
|
+
stringSimilarity(lastPath, prop) > stringSimilarity(nearest, prop)) {
|
|
377
392
|
nearest = prop;
|
|
378
393
|
}
|
|
379
394
|
}
|
|
@@ -381,7 +396,7 @@ export class AutoUpdatedClientObject {
|
|
|
381
396
|
}
|
|
382
397
|
let success;
|
|
383
398
|
try {
|
|
384
|
-
let isPopulated = getMetadataRecursive("refsTo", this
|
|
399
|
+
let isPopulated = getMetadataRecursive("refsTo", this, lastPath);
|
|
385
400
|
if (isPopulated) {
|
|
386
401
|
isPopulated = isPopulated.split(":");
|
|
387
402
|
const parentObj = this.parentManager.managers[isPopulated[0]].getObject(val);
|
|
@@ -393,6 +408,15 @@ export class AutoUpdatedClientObject {
|
|
|
393
408
|
this.loggers.error(message);
|
|
394
409
|
return { success: false, msg: message };
|
|
395
410
|
}
|
|
411
|
+
if (parentObj.getValue(isPopulated[1]) &&
|
|
412
|
+
!Array.isArray(parentObj.getValue(isPopulated[1]))) {
|
|
413
|
+
message +=
|
|
414
|
+
"\nThis is a 1:1 relationship and the parent already has a parent with the ID: " +
|
|
415
|
+
(parentObj.getValue(isPopulated[1])._id?.toString() ??
|
|
416
|
+
parentObj.getValue(isPopulated[1]).toString()) +
|
|
417
|
+
this.loggers.error(message);
|
|
418
|
+
return { success: false, msg: message };
|
|
419
|
+
}
|
|
396
420
|
let res;
|
|
397
421
|
if (this.isServer) {
|
|
398
422
|
const value = parentObj.getValue(isPopulated[1]);
|
|
@@ -410,7 +434,7 @@ export class AutoUpdatedClientObject {
|
|
|
410
434
|
res.msg.split("\n").join("\n ");
|
|
411
435
|
}
|
|
412
436
|
else {
|
|
413
|
-
const isRef = getMetadataRecursive("isRef", this
|
|
437
|
+
const isRef = getMetadataRecursive("isRef", this, key);
|
|
414
438
|
if (isRef && this.isServer && ObjectId.isValid(val))
|
|
415
439
|
val = Array.isArray(val)
|
|
416
440
|
? val.map((v) => new ObjectId(v))
|
|
@@ -454,7 +478,7 @@ export class AutoUpdatedClientObject {
|
|
|
454
478
|
if (!noUpdate)
|
|
455
479
|
await this.onUpdate(noUpdate);
|
|
456
480
|
this.findAndLoadReferences(lastPath, val);
|
|
457
|
-
const isRef = getMetadataRecursive("isRef", this
|
|
481
|
+
const isRef = getMetadataRecursive("isRef", this, path.at(-1));
|
|
458
482
|
if (isRef && this.parentManager.isLoaded) {
|
|
459
483
|
this.contactChildren();
|
|
460
484
|
}
|
|
@@ -506,7 +530,7 @@ export class AutoUpdatedClientObject {
|
|
|
506
530
|
return { res, val };
|
|
507
531
|
}
|
|
508
532
|
findAndLoadReferences(lastPath, value) {
|
|
509
|
-
const isRef = getMetadataRecursive("isRef", this
|
|
533
|
+
const isRef = getMetadataRecursive("isRef", this, lastPath);
|
|
510
534
|
if (isRef) {
|
|
511
535
|
for (const id of Array.isArray(value) ? value : [value]) {
|
|
512
536
|
let result;
|
|
@@ -524,6 +548,7 @@ export class AutoUpdatedClientObject {
|
|
|
524
548
|
this.data._id);
|
|
525
549
|
continue;
|
|
526
550
|
}
|
|
551
|
+
this.referencesLoaded = false;
|
|
527
552
|
result.loadMissingReferences();
|
|
528
553
|
}
|
|
529
554
|
}
|
|
@@ -609,7 +634,7 @@ export class AutoUpdatedClientObject {
|
|
|
609
634
|
}
|
|
610
635
|
return null;
|
|
611
636
|
}
|
|
612
|
-
async loadForceReferences(obj = this.data, proto = this
|
|
637
|
+
async loadForceReferences(obj = this.data, proto = this, alreadySeen = []) {
|
|
613
638
|
const props = Reflect.getMetadata("props", proto) || [];
|
|
614
639
|
for (const key of props) {
|
|
615
640
|
if (typeof key !== "string")
|
|
@@ -678,9 +703,7 @@ export class AutoUpdatedClientObject {
|
|
|
678
703
|
filtred.length +
|
|
679
704
|
" - some values were undefined");
|
|
680
705
|
}
|
|
681
|
-
if (filtred
|
|
682
|
-
.map((id) => id?._id.toString())
|
|
683
|
-
.includes(this.data._id))
|
|
706
|
+
if (filtred.map((id) => id?._id.toString()).includes(this.data._id))
|
|
684
707
|
obj?.contactChildren();
|
|
685
708
|
else
|
|
686
709
|
await obj?.setValue(pointer[1], [
|
|
@@ -696,6 +719,7 @@ export class AutoUpdatedClientObject {
|
|
|
696
719
|
if (!once) {
|
|
697
720
|
return await this.parentManager.deleteObject(this.data._id);
|
|
698
721
|
}
|
|
722
|
+
await this.callbacks.delete(this);
|
|
699
723
|
const res = await new Promise((resolve) => {
|
|
700
724
|
this.socket.emit("delete" + this.className, this.data._id, (res) => {
|
|
701
725
|
if (!res.success) {
|
|
@@ -723,7 +747,7 @@ export class AutoUpdatedClientObject {
|
|
|
723
747
|
}
|
|
724
748
|
checkForMissingRefs() {
|
|
725
749
|
for (const prop of this.properties) {
|
|
726
|
-
let pointer = getMetadataRecursive("refsTo", this
|
|
750
|
+
let pointer = getMetadataRecursive("refsTo", this, prop.toString());
|
|
727
751
|
if (pointer) {
|
|
728
752
|
pointer = pointer.split(":");
|
|
729
753
|
if (pointer.length != 2)
|
|
@@ -770,8 +794,8 @@ export class AutoUpdatedClientObject {
|
|
|
770
794
|
}
|
|
771
795
|
contactChildren() {
|
|
772
796
|
for (const prop of this.properties) {
|
|
773
|
-
const pointer = getMetadataRecursive("refsTo", this
|
|
774
|
-
const isRef = getMetadataRecursive("isRef", this
|
|
797
|
+
const pointer = getMetadataRecursive("refsTo", this, prop.toString());
|
|
798
|
+
const isRef = getMetadataRecursive("isRef", this, prop.toString());
|
|
775
799
|
if (isRef && !pointer) {
|
|
776
800
|
if (!this.getValue(prop))
|
|
777
801
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdatedClientObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedClientObjectClass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutoUpdatedClientObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedClientObjectClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,22 +2,21 @@ import { AutoUpdatedClientObject } from "./AutoUpdatedClientObjectClass.js";
|
|
|
2
2
|
import { AutoUpdateServerManager } from "./AutoUpdateServerManagerClass.js";
|
|
3
3
|
import "reflect-metadata";
|
|
4
4
|
import { DefaultEventsMap, Server } from "socket.io";
|
|
5
|
-
import { Constructor,
|
|
6
|
-
import { Paths, PathValueOf
|
|
5
|
+
import { Constructor, LoggersType, EventEmitter3, IsData, InstanceOf } from "./CommonTypes.js";
|
|
6
|
+
import { DeAutoUpdateServer, Paths, PathValueOf } from "./CommonTypes_server.js";
|
|
7
7
|
type SocketType = Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any>;
|
|
8
|
-
export
|
|
9
|
-
export declare
|
|
10
|
-
declare class AutoUpdatedServerObject<T> extends AutoUpdatedClientObject<T> {
|
|
8
|
+
export declare function createAutoUpdatedClass<C extends AutoUpdatedServerObject<any>>(classParam: Constructor<C>, className: string, socket: SocketType, data: IsData<InstanceOf<C>>, loggers: LoggersType, parentManager: AutoUpdateServerManager<any>, emitter: EventEmitter3): Promise<C>;
|
|
9
|
+
export declare abstract class AutoUpdatedServerObject<T extends AutoUpdatedServerObject<T>> extends AutoUpdatedClientObject<T> {
|
|
11
10
|
protected readonly isServer: boolean;
|
|
12
11
|
private entry;
|
|
13
12
|
parentManager: AutoUpdateServerManager<any>;
|
|
14
|
-
constructor(socket: SocketType, data: IsData<T
|
|
13
|
+
constructor(classParam: Constructor<T>, socket: SocketType, data: IsData<DeAutoUpdateServer<T>>, loggers: LoggersType, className: string, parentManager: AutoUpdateServerManager<any>, emitter: EventEmitter3);
|
|
15
14
|
loadFromDB(): Promise<void>;
|
|
16
15
|
setValue_<K extends Paths<T>>(key: K, val: PathValueOf<T, K>): Promise<{
|
|
17
16
|
success: boolean;
|
|
18
17
|
msg: string;
|
|
19
18
|
}>;
|
|
20
|
-
protected handleNewObject(_data:
|
|
19
|
+
protected handleNewObject(_data: any): void;
|
|
21
20
|
protected setValueInternal(key: any, value: any, _silent?: boolean): Promise<{
|
|
22
21
|
success: boolean;
|
|
23
22
|
msg: string;
|
|
@@ -2,21 +2,25 @@ import { AutoUpdatedClientObject, getMetadataRecursive, } from "./AutoUpdatedCli
|
|
|
2
2
|
import "reflect-metadata";
|
|
3
3
|
import { ObjectId } from "mongodb";
|
|
4
4
|
export async function createAutoUpdatedClass(classParam, className, socket, data, loggers, parentManager, emitter) {
|
|
5
|
-
const instance = new
|
|
5
|
+
const instance = new classParam(classParam, socket, data, loggers, className, parentManager, emitter);
|
|
6
6
|
await instance.loadFromDB();
|
|
7
7
|
await instance.isPreLoadedAsync();
|
|
8
8
|
return instance;
|
|
9
9
|
}
|
|
10
10
|
// ---------------------- Class ----------------------
|
|
11
|
-
class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
11
|
+
export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
12
12
|
isServer = true;
|
|
13
13
|
entry;
|
|
14
|
-
constructor(socket, data, loggers,
|
|
15
|
-
super(socket, data, loggers,
|
|
16
|
-
|
|
14
|
+
constructor(classParam, socket, data, loggers, className, parentManager, emitter) {
|
|
15
|
+
super(classParam, socket, data, loggers, className, parentManager, {
|
|
16
|
+
update: (x) => { },
|
|
17
|
+
delete: (x) => { },
|
|
18
|
+
new: (x) => { },
|
|
19
|
+
}, emitter, true);
|
|
20
|
+
for (const prop of this.properties) {
|
|
17
21
|
if (typeof prop !== "string")
|
|
18
22
|
continue;
|
|
19
|
-
const isRef = getMetadataRecursive("isRef",
|
|
23
|
+
const isRef = getMetadataRecursive("isRef", this, prop);
|
|
20
24
|
if (isRef && this.data[prop]) {
|
|
21
25
|
this.data[prop] = Array.isArray(this.data[prop])
|
|
22
26
|
? this.data[prop]
|
|
@@ -30,13 +34,13 @@ class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
30
34
|
}
|
|
31
35
|
async loadFromDB() {
|
|
32
36
|
try {
|
|
33
|
-
this.entry = await this.parentManager.managers[this.className].model.findOne({
|
|
37
|
+
this.entry = (await this.parentManager.managers[this.className].model.findOne({
|
|
34
38
|
_id: this.data._id,
|
|
35
|
-
});
|
|
39
|
+
}));
|
|
36
40
|
if (!this.entry) {
|
|
37
41
|
this.entry = await this.parentManager.managers[this.className].model.create(this.data);
|
|
38
42
|
for (const prop of this.properties) {
|
|
39
|
-
const pointer = getMetadataRecursive("refsTo", this
|
|
43
|
+
const pointer = getMetadataRecursive("refsTo", this, prop.toString());
|
|
40
44
|
if (!pointer || !this.data[prop])
|
|
41
45
|
continue;
|
|
42
46
|
this.data["_id"] = this.entry._id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdatedServerObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedServerObjectClass.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AutoUpdatedServerObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedServerObjectClass.ts"],"names":[],"mappings":"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"}
|
package/dist/CommonTypes.d.ts
CHANGED
|
@@ -16,9 +16,9 @@ export type LoggersType = {
|
|
|
16
16
|
error: (s: string) => void;
|
|
17
17
|
warn: (s: string) => void;
|
|
18
18
|
};
|
|
19
|
-
export type IsData<T> = T
|
|
19
|
+
export type IsData<T> = T & {
|
|
20
20
|
_id: any;
|
|
21
|
-
}
|
|
21
|
+
};
|
|
22
22
|
export type SocketEvent = [string, any, (res: ServerResponse<any>) => void];
|
|
23
23
|
export type ServerResponse<T> = {
|
|
24
24
|
data: T;
|
|
@@ -48,12 +48,12 @@ export type OnlyClassKeys<T> = {
|
|
|
48
48
|
}[keyof T] & string;
|
|
49
49
|
export type Split<S extends string> = S extends `${infer L}.${infer R}` ? [L, ...Split<R>] : [S];
|
|
50
50
|
export type NonOptional<T> = Exclude<T, null | undefined>;
|
|
51
|
-
export type
|
|
52
|
-
export type
|
|
53
|
-
export type PathValue<T, Parts extends string[], Depth extends number = 5> = Depth extends 0 ? never : T extends unknown ? Parts extends [infer K, ...infer Rest] ? K extends string ? K extends keyof T ? Rest extends string[] ? Rest["length"] extends 0 ? T[K] extends (infer A)[] ? DeAutoUpdate<A>[] | DeAutoUpdate<A> : DeAutoUpdate<T[K]> : PathValue<T[K], Rest, Prev[Depth]> : never : never : never : DeAutoUpdate<T> : never;
|
|
51
|
+
export type PathValueOf<T, P extends string> = PathValue<T, Split<P>>;
|
|
52
|
+
export type PathValue<T, Parts extends string[], Depth extends number = 5> = Depth extends 0 ? never : T extends unknown ? Parts extends [infer K, ...infer Rest] ? K extends string ? K extends keyof T ? Rest extends string[] ? Rest["length"] extends 0 ? T[K] extends (infer A)[] ? A[] | A : T[K] : PathValue<T[K], Rest, Prev[Depth]> : never : never : never : T : never;
|
|
54
53
|
export type Paths<T, Depth extends number = 5, OriginalDepth extends number = Depth> = Depth extends never ? never : {
|
|
55
54
|
[K in OnlyClassKeys<NonOptional<T>>]: K extends "_id" ? StripPrototypePrefix<`${K}`> : StripPrototypePrefix<PathsHelper<K, NonOptional<T>[K], Depth, OriginalDepth>>;
|
|
56
55
|
}[OnlyClassKeys<NonOptional<T>>];
|
|
57
56
|
type PathsHelper<K extends string, V, Depth extends number, OriginalDepth extends number> = Recurseable<V> extends never ? `${K}` : `${K}` | Join<K, Paths<NonOptional<V>, Prev[Depth], OriginalDepth>>;
|
|
58
|
-
export type
|
|
57
|
+
export type DeAutoUpdateClient<T> = T extends AutoUpdatedClientObject<infer U> ? U : T;
|
|
58
|
+
export type OnlyAddedKeys<Sub, Parent> = Pick<Sub, Exclude<keyof Sub, keyof Omit<Parent, "_id">>>;
|
|
59
59
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Ref } from "@typegoose/typegoose";
|
|
2
|
-
import {
|
|
2
|
+
import { InstanceOf, Join, OnlyClassKeys, Prev, Recurseable, Split, StripPrototypePrefix } from "./CommonTypes.js";
|
|
3
3
|
import { Types } from "mongoose";
|
|
4
|
-
import {
|
|
4
|
+
import { AutoUpdatedServerObject } from "./AutoUpdatedServerObjectClass.js";
|
|
5
5
|
export type NonOptional<T> = Exclude<T, null | undefined>;
|
|
6
6
|
export type DeRef<T> = {
|
|
7
7
|
[K in keyof T]: T[K] extends Ref<infer U> ? U : T[K] extends Ref<infer U> | null | undefined ? U : T[K];
|
|
@@ -13,10 +13,11 @@ export type Paths<T, Depth extends number = 5, OriginalDepth extends number = De
|
|
|
13
13
|
[K in OnlyClassKeys<DeRef<NonOptional<T>>>]: K extends "_id" ? StripPrototypePrefix<`${K}`> : StripPrototypePrefix<PathsHelper<K, DeRef<NonOptional<T>>[K], Depth, OriginalDepth>>;
|
|
14
14
|
}[OnlyClassKeys<DeRef<NonOptional<T>>>];
|
|
15
15
|
type PathsHelper<K extends string, V, Depth extends number, OriginalDepth extends number> = Recurseable<V> extends never ? `${K}` : `${K}` | Join<K, Paths<DeRef<NonOptional<V>>, Prev[Depth], OriginalDepth>>;
|
|
16
|
-
export type ResolveRef<T> = T extends (infer A)[] ? ResolveRef<A>[] : T extends Ref<infer U> ?
|
|
16
|
+
export type ResolveRef<T> = T extends (infer A)[] ? ResolveRef<A>[] : T extends Ref<infer U> ? U | Types.ObjectId | string : T;
|
|
17
17
|
export type PathValue<T, Parts extends string[], Depth extends number = 5> = Depth extends 0 ? never : T extends unknown ? Parts extends [infer K, ...infer Rest] ? K extends string ? K extends keyof T ? Rest extends string[] ? ResolveRef<Rest["length"] extends 0 ? T[K] extends (infer A)[] ? A[] | A : T[K] : PathValue<T[K], Rest, Prev[Depth]>> : never : never : never : ResolveRef<T> : never;
|
|
18
18
|
export type PathValueOf<T, P extends string, Depth extends number = 6> = PathValue<InstanceOf<T>, Split<P>, Depth>;
|
|
19
|
-
export type UnwrapRef<T
|
|
20
|
-
[K in keyof T]: K extends "_id" ? T[K] : UnwrapRef<T[K]
|
|
19
|
+
export type UnwrapRef<T> = T extends (infer A)[] ? UnwrapRef<A>[] : T extends Ref<infer U> ? Exclude<U, Types.ObjectId> extends never ? never : Exclude<U, Types.ObjectId> : T extends object ? {
|
|
20
|
+
[K in keyof T]: K extends "_id" ? T[K] : UnwrapRef<T[K]>;
|
|
21
21
|
} : T;
|
|
22
|
+
export type DeAutoUpdateServer<T> = T extends AutoUpdatedServerObject<infer U> ? U : T;
|
|
22
23
|
export {};
|