@prestizni-software/server-dem 0.5.16 → 0.5.17
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 +11 -12
- package/dist/AutoUpdateManagerClass.js +13 -8
- package/dist/AutoUpdateManagerClass.js.map +1 -1
- package/dist/AutoUpdateServerManagerClass.d.ts +28 -36
- package/dist/AutoUpdateServerManagerClass.js +139 -73
- package/dist/AutoUpdateServerManagerClass.js.map +1 -1
- package/dist/AutoUpdatedClientObjectClass.d.ts +31 -33
- package/dist/AutoUpdatedClientObjectClass.js +86 -45
- package/dist/AutoUpdatedClientObjectClass.js.map +1 -1
- package/dist/AutoUpdatedServerObjectClass.d.ts +11 -17
- package/dist/AutoUpdatedServerObjectClass.js +101 -98
- package/dist/AutoUpdatedServerObjectClass.js.map +1 -1
- package/dist/CommonTypes.d.ts +77 -32
- package/dist/CommonTypes.js.map +1 -1
- package/dist/CommonTypes_server.d.ts +3 -3
- package/dist/server.d.ts +5 -6
- package/dist/server.js +5 -6
- package/dist/server.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,24 +1,17 @@
|
|
|
1
|
-
import { AutoUpdatedClientObject } from "./AutoUpdatedClientObjectClass";
|
|
2
|
-
import { AutoUpdateServerManager } from "./AutoUpdateServerManagerClass";
|
|
3
|
-
import "
|
|
4
|
-
import { Constructor, LoggersType, EventEmitter3, IsData, PathValueOf } from "./CommonTypes";
|
|
5
|
-
import { Paths } from "./CommonTypes_server";
|
|
1
|
+
import { AutoUpdatedClientObject } from "./AutoUpdatedClientObjectClass.js";
|
|
2
|
+
import { AutoUpdateServerManager } from "./AutoUpdateServerManagerClass.js";
|
|
3
|
+
import { Constructor, IsData, LoggersType, EventEmitter3, IAutoUpdatedClientObject, IAutoUpdatedServerObject, ExtractedData } from "./CommonTypes.js";
|
|
6
4
|
import { DocumentType } from "@typegoose/typegoose";
|
|
7
|
-
export declare
|
|
8
|
-
export declare abstract class AutoUpdatedServerObject<T extends AutoUpdatedServerObject<T>> extends AutoUpdatedClientObject<T> {
|
|
5
|
+
export declare abstract class AutoUpdatedServerObject<T extends IAutoUpdatedClientObject<T>> extends AutoUpdatedClientObject<T> implements IAutoUpdatedServerObject<T> {
|
|
9
6
|
protected readonly isServer: boolean;
|
|
10
|
-
protected entry: DocumentType<T
|
|
11
|
-
parentManager: AutoUpdateServerManager<any>;
|
|
7
|
+
protected entry: DocumentType<T> | null;
|
|
8
|
+
parentManager: AutoUpdateServerManager<T, any>;
|
|
12
9
|
constructor();
|
|
13
|
-
constructor(classParam: Constructor<T>, socket:
|
|
14
|
-
loadFromDocument(document: DocumentType<T>): Promise<void>;
|
|
10
|
+
constructor(classParam: Constructor<T>, socket: unknown, data: IsData<T>, loggers: LoggersType, className: string, parentManager: AutoUpdateServerManager<T, any>, emitter: EventEmitter3);
|
|
15
11
|
loadFromDB(): Promise<void>;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}>;
|
|
20
|
-
protected handleNewObject(_data: any): void;
|
|
21
|
-
protected setValueInternal(key: any, value: any, _silent?: boolean): Promise<{
|
|
12
|
+
loadFromDocument(document: DocumentType<T>): Promise<void>;
|
|
13
|
+
get extractedData(): ExtractedData<T, IAutoUpdatedClientObject<any>>;
|
|
14
|
+
protected setValueInternal(key: string, value: unknown, silent?: boolean, noUpdate?: boolean): Promise<{
|
|
22
15
|
success: boolean;
|
|
23
16
|
msg: string;
|
|
24
17
|
}>;
|
|
@@ -28,3 +21,4 @@ export declare abstract class AutoUpdatedServerObject<T extends AutoUpdatedServe
|
|
|
28
21
|
}>;
|
|
29
22
|
onUpdate(noUpdate?: boolean): Promise<void>;
|
|
30
23
|
}
|
|
24
|
+
export declare function createAutoUpdatedClass<T extends IAutoUpdatedClientObject<T>>(classParam: Constructor<T>, className: string, socket: unknown, data: string | IsData<T>, loggers: LoggersType, parentManager: AutoUpdateServerManager<T, any>, emitter: EventEmitter3, document?: DocumentType<T>): Promise<IAutoUpdatedServerObject<T>>;
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import { AutoUpdatedClientObject, getMetadataRecursive } from "./AutoUpdatedClientObjectClass";
|
|
2
|
-
import "
|
|
1
|
+
import { AutoUpdatedClientObject, getMetadataRecursive, processIsRefProperties } from "./AutoUpdatedClientObjectClass.js";
|
|
2
|
+
import { EVENT_UPDATE, EVENT_DELETE, EVENT_INTERNAL_PRE_LOADED } from "./CommonTypes.js";
|
|
3
3
|
import { ObjectId } from "mongodb";
|
|
4
|
-
import { EVENT_DELETE, EVENT_UPDATE, } from "./CommonTypes";
|
|
5
|
-
export async function createAutoUpdatedClass(classParam, className, socket, data, loggers, parentManager, emitter, document) {
|
|
6
|
-
const instance = new classParam(classParam, socket, data, loggers, className, parentManager, emitter);
|
|
7
|
-
if (document) {
|
|
8
|
-
await instance.loadFromDocument(document);
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
await instance.loadFromDB();
|
|
12
|
-
}
|
|
13
|
-
return instance;
|
|
14
|
-
}
|
|
15
4
|
export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
16
|
-
isServer
|
|
5
|
+
isServer;
|
|
17
6
|
entry;
|
|
18
7
|
constructor(classParam, socket, data, loggers, className, parentManager, emitter) {
|
|
19
8
|
if (!classParam ||
|
|
@@ -23,6 +12,10 @@ export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
23
12
|
!className ||
|
|
24
13
|
!parentManager ||
|
|
25
14
|
!emitter) {
|
|
15
|
+
super();
|
|
16
|
+
this.isServer = true;
|
|
17
|
+
this.entry = null;
|
|
18
|
+
this.parentManager = parentManager;
|
|
26
19
|
if (!classParam &&
|
|
27
20
|
!socket &&
|
|
28
21
|
!data &&
|
|
@@ -30,129 +23,139 @@ export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
|
|
|
30
23
|
!className &&
|
|
31
24
|
!parentManager &&
|
|
32
25
|
!emitter) {
|
|
33
|
-
super();
|
|
34
|
-
this.entry = undefined;
|
|
35
26
|
return;
|
|
36
27
|
}
|
|
37
28
|
else
|
|
38
|
-
throw new Error("Missing arguments
|
|
29
|
+
throw new Error("Missing arguments for AutoUpdatedServerObject: " + className);
|
|
39
30
|
}
|
|
40
31
|
super(classParam, socket, data, loggers, className, parentManager, {
|
|
41
|
-
update: (
|
|
42
|
-
delete: (
|
|
43
|
-
new: (
|
|
44
|
-
progress: (
|
|
32
|
+
update: (_x, _key) => { },
|
|
33
|
+
delete: (_x) => { },
|
|
34
|
+
new: (_x) => { },
|
|
35
|
+
progress: (_x) => { },
|
|
45
36
|
}, emitter, true);
|
|
37
|
+
this.isServer = true;
|
|
38
|
+
this.entry = null;
|
|
39
|
+
this.parentManager = parentManager;
|
|
40
|
+
// Convert reference IDs to ObjectIds on the server side
|
|
41
|
+
const dataRec = this.data;
|
|
46
42
|
for (const prop of this.properties) {
|
|
47
43
|
if (typeof prop !== "string")
|
|
48
44
|
continue;
|
|
49
45
|
const isRef = getMetadataRecursive("isRef", this, prop);
|
|
50
|
-
if (isRef &&
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
if (isRef && dataRec[prop]) {
|
|
47
|
+
try {
|
|
48
|
+
if (Array.isArray(dataRec[prop])) {
|
|
49
|
+
dataRec[prop] = dataRec[prop]
|
|
50
|
+
.map((item) => {
|
|
51
|
+
if (!item)
|
|
52
|
+
return null;
|
|
53
|
+
const idStr = item._id ? item._id.toString() : item.toString();
|
|
54
|
+
return ObjectId.isValid(idStr) ? new ObjectId(idStr) : item;
|
|
55
|
+
})
|
|
56
|
+
.filter((item) => item !== null);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const idStr = dataRec[prop]._id ? dataRec[prop]._id.toString() : dataRec[prop].toString();
|
|
60
|
+
if (ObjectId.isValid(idStr)) {
|
|
61
|
+
dataRec[prop] = new ObjectId(idStr);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
this.loggers.error(`Failed to set reference ${prop} to ${dataRec[prop]}: ${error.message}`);
|
|
67
|
+
}
|
|
56
68
|
}
|
|
57
69
|
}
|
|
58
|
-
|
|
59
|
-
|
|
70
|
+
}
|
|
71
|
+
async loadFromDB() {
|
|
72
|
+
const _id = this.data._id;
|
|
73
|
+
if (!_id)
|
|
74
|
+
throw new Error("No id.");
|
|
75
|
+
// Use the model from the parent manager
|
|
76
|
+
this.entry = await this.parentManager.model.findById(_id);
|
|
77
|
+
if (!this.entry)
|
|
78
|
+
throw new Error(`Object not found in DB: ${this.className} with ID ${_id}`);
|
|
79
|
+
this.data = { ...this.data, ...this.entry.toObject() };
|
|
80
|
+
this.isLoading = false;
|
|
81
|
+
this.generateSettersAndGetters();
|
|
82
|
+
this.emitter.emit(EVENT_INTERNAL_PRE_LOADED + this.EmitterID);
|
|
83
|
+
await this.onUpdate();
|
|
60
84
|
}
|
|
61
85
|
async loadFromDocument(document) {
|
|
62
86
|
this.entry = document;
|
|
63
87
|
this.data = { ...this.data, ...this.entry.toObject() };
|
|
64
|
-
|
|
65
|
-
this.data._id = this.entry._id;
|
|
66
|
-
}
|
|
88
|
+
this.isLoading = false;
|
|
67
89
|
this.generateSettersAndGetters();
|
|
90
|
+
this.emitter.emit(EVENT_INTERNAL_PRE_LOADED + this.EmitterID);
|
|
68
91
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
_id: this.data._id,
|
|
74
|
-
}));
|
|
75
|
-
if (!this.entry) {
|
|
76
|
-
this.entry = (await manager.model.create(this.data));
|
|
77
|
-
}
|
|
78
|
-
this.data = { ...this.data, ...this.entry.toObject() };
|
|
79
|
-
if (!this.data._id && this.entry._id) {
|
|
80
|
-
this.data._id = this.entry._id;
|
|
81
|
-
}
|
|
82
|
-
this.generateSettersAndGetters();
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
this.loggers.error("Error loading object from database: " + error.message);
|
|
86
|
-
this.loggers.error(error.stack);
|
|
87
|
-
throw error;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
async setValue_(key, val) {
|
|
91
|
-
return await this.setValue__(key, val);
|
|
92
|
-
}
|
|
93
|
-
handleNewObject(_data) {
|
|
94
|
-
throw new Error("Cannot create new objects like this.");
|
|
92
|
+
get extractedData() {
|
|
93
|
+
const dataToProcess = this.entry ? this.entry.toObject() : this.data;
|
|
94
|
+
const extracted = processIsRefProperties(dataToProcess, this, null, [], {}, this.loggers).newData;
|
|
95
|
+
return extracted;
|
|
95
96
|
}
|
|
96
|
-
async setValueInternal(key, value,
|
|
97
|
+
async setValueInternal(key, value, silent = false, noUpdate = false) {
|
|
97
98
|
try {
|
|
98
|
-
|
|
99
|
-
|
|
99
|
+
const _id = this.data._id;
|
|
100
|
+
if (!_id)
|
|
101
|
+
throw new Error(`Cannot update object ${this.className} - missing _id.`);
|
|
102
|
+
this.entry ??= await this.parentManager.model.findById(_id);
|
|
103
|
+
if (!this.entry)
|
|
104
|
+
throw new Error("Object not found in DB.");
|
|
105
|
+
if (!silent && !noUpdate) {
|
|
106
|
+
this.entry[key] = value;
|
|
107
|
+
await this.entry.save();
|
|
100
108
|
}
|
|
101
|
-
const manager = this.parentManager.managers[this.className];
|
|
102
|
-
await manager.model.updateOne({ _id: this.data._id }, { $set: { [key]: value } });
|
|
103
109
|
const update = this.makeUpdate(key, value);
|
|
104
|
-
const event = EVENT_UPDATE + this.className +
|
|
110
|
+
const event = EVENT_UPDATE + this.className + _id.toString();
|
|
105
111
|
this.socket.emit(event, update);
|
|
106
|
-
return {
|
|
107
|
-
success: true,
|
|
108
|
-
msg: "Updated",
|
|
109
|
-
};
|
|
112
|
+
return { success: true, msg: "Success" };
|
|
110
113
|
}
|
|
111
114
|
catch (error) {
|
|
112
|
-
this.loggers.error(`Error saving object [${this.className}: ${this.data?.
|
|
113
|
-
|
|
114
|
-
return {
|
|
115
|
-
success: false,
|
|
116
|
-
msg: "Error saving object: " + error.message,
|
|
117
|
-
};
|
|
115
|
+
this.loggers.error?.(`Error saving object [${this.className}: ${this.data._id?.toString() ?? "not loaded"}]: ${error.message}`);
|
|
116
|
+
return { success: false, msg: "Error saving object: " + error.message };
|
|
118
117
|
}
|
|
119
118
|
}
|
|
120
119
|
async destroy(once = false) {
|
|
120
|
+
const _id = this.data._id;
|
|
121
|
+
if (!_id)
|
|
122
|
+
return { success: false, message: "Missing _id" };
|
|
121
123
|
if (!once) {
|
|
122
|
-
return await this.parentManager.deleteObject(
|
|
124
|
+
return await this.parentManager.deleteObject(_id);
|
|
123
125
|
}
|
|
124
126
|
try {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
127
|
+
this.entry ??= await this.parentManager.model.findById(_id);
|
|
128
|
+
if (this.entry) {
|
|
129
|
+
await this.entry.deleteOne();
|
|
130
|
+
}
|
|
131
|
+
this.loggers.debug?.("Deleted object from server " + this.className);
|
|
128
132
|
}
|
|
129
133
|
catch (error) {
|
|
130
|
-
this.loggers.error(
|
|
131
|
-
|
|
132
|
-
" - " +
|
|
133
|
-
this.data._id);
|
|
134
|
-
this.loggers.error(error.message);
|
|
135
|
-
this.loggers.error(error.stack);
|
|
136
|
-
return {
|
|
137
|
-
success: false,
|
|
138
|
-
message: "Deletion uncussessful: " + error.message,
|
|
139
|
-
};
|
|
134
|
+
this.loggers.error?.(`Error deleting object from database - ${this.className} - ${_id.toString()}: ${error.message}`);
|
|
135
|
+
return { success: false, message: "Deletion unsuccessful: " + error.message };
|
|
140
136
|
}
|
|
141
|
-
this.socket.emit(EVENT_DELETE + this.className,
|
|
142
|
-
this.socket.removeAllListeners(EVENT_UPDATE + this.className + this.data._id.toString());
|
|
143
|
-
this.socket.removeAllListeners(EVENT_DELETE + this.className);
|
|
137
|
+
this.socket.emit(EVENT_DELETE + this.className, _id.toString());
|
|
144
138
|
await this.wipeSelf();
|
|
145
|
-
return {
|
|
146
|
-
success: true,
|
|
147
|
-
message: "Deleted",
|
|
148
|
-
};
|
|
139
|
+
return { success: true, message: "Deleted" };
|
|
149
140
|
}
|
|
150
141
|
async onUpdate(noUpdate = false) {
|
|
151
142
|
if (noUpdate)
|
|
152
143
|
return;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
144
|
+
if (this.parentManager.options?.onUpdate) {
|
|
145
|
+
await this.parentManager.options.onUpdate(this, async (key, val) => {
|
|
146
|
+
return this.setValue(key, val);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export async function createAutoUpdatedClass(classParam, className, socket, data, loggers, parentManager, emitter, document) {
|
|
152
|
+
const obj = new classParam(classParam, socket, data, loggers, className, parentManager, emitter);
|
|
153
|
+
if (document) {
|
|
154
|
+
await obj.loadFromDocument(document);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
await obj.loadFromDB();
|
|
156
158
|
}
|
|
159
|
+
return obj;
|
|
157
160
|
}
|
|
158
161
|
//# sourceMappingURL=AutoUpdatedServerObjectClass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdatedServerObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedServerObjectClass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"AutoUpdatedServerObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedServerObjectClass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE1H,OAAO,EAAoC,YAAY,EAAE,YAAY,EAAqE,yBAAyB,EAAqC,MAAM,kBAAkB,CAAC;AAEjO,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,OAAgB,uBAA+D,SAAQ,uBAA0B;IACzF,QAAQ,CAAU;IACpC,KAAK,CAAyB;IAaxC,YACE,UAA2B,EAC3B,MAAgB,EAChB,IAAgB,EAChB,OAAqB,EACrB,SAAkB,EAClB,aAA+C,EAC/C,OAAuB;QAEvB,IACE,CAAC,UAAU;YACX,CAAC,MAAM;YACP,CAAC,IAAI;YACL,CAAC,OAAO;YACR,CAAC,SAAS;YACV,CAAC,aAAa;YACd,CAAC,OAAO,EACR,CAAC;YACD,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,aAAa,GAAG,aAA2D,CAAC;YACjF,IACE,CAAC,UAAU;gBACX,CAAC,MAAM;gBACP,CAAC,IAAI;gBACL,CAAC,OAAO;gBACR,CAAC,SAAS;gBACV,CAAC,aAAa;gBACd,CAAC,OAAO,EACR,CAAC;gBACD,OAAO;YACT,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,SAAS,CAAC,CAAC;QACxF,CAAC;QAED,KAAK,CACH,UAAU,EACV,MAAwB,EACxB,IAAI,EACJ,OAAO,EACP,SAAS,EACT,aAA6E,EAC7E;YACE,MAAM,EAAE,CAAC,EAA+B,EAAE,IAAY,EAAE,EAAE,GAAG,CAAC;YAC9D,MAAM,EAAE,CAAC,EAA+B,EAAE,EAAE,GAAG,CAAC;YAChD,GAAG,EAAE,CAAC,EAA+B,EAAE,EAAE,GAAG,CAAC;YAC7C,QAAQ,EAAE,CAAC,EAAU,EAAE,EAAE,GAAG,CAAC;SAC9B,EACD,OAAO,EACP,IAAI,CACL,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,wDAAwD;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAA+B,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACvC,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBACjC,OAAO,CAAC,IAAI,CAAC,GAAI,OAAO,CAAC,IAAI,CAAW;6BACrC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;4BACZ,IAAI,CAAC,IAAI;gCAAE,OAAO,IAAI,CAAC;4BACvB,MAAM,KAAK,GAAI,IAAY,CAAC,GAAG,CAAC,CAAC,CAAE,IAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACjF,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC9D,CAAC,CAAC;6BACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,GAAI,OAAO,CAAC,IAAI,CAAS,CAAC,GAAG,CAAC,CAAC,CAAE,OAAO,CAAC,IAAI,CAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAE,OAAO,CAAC,IAAI,CAAS,CAAC,QAAQ,EAAE,CAAC;wBACrH,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9F,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEpC,wCAAwC;QACxC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE1D,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,YAAY,GAAG,EAAE,CAAC,CAAC;QAE7F,IAAI,CAAC,IAAI,GAAG,EAAE,GAAI,IAAI,CAAC,IAAgC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAe,CAAC;QAChG,IAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAI,IAAY,CAAC,SAAS,CAAC,CAAC;QAEvE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,QAAyB;QACrD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAI,IAAI,CAAC,IAAgC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAe,CAAC;QAChG,IAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAI,IAAY,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,IAAoB,aAAa;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACrE,MAAM,SAAS,GAAG,sBAAsB,CAAC,aAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;QACzG,OAAO,SAAgB,CAAC;IAC1B,CAAC;IAEkB,KAAK,CAAC,gBAAgB,CACvC,GAAW,EACX,KAAc,EACd,MAAM,GAAG,KAAK,EACd,QAAQ,GAAG,KAAK;QAEhB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1B,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,SAAS,iBAAiB,CAAC,CAAC;YAEnF,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAE5D,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAEzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,wBAAwB,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,YAAY,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAChI,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,uBAAuB,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1E,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1B,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAE5D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAU,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,yCAAyC,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChF,CAAC;QAEA,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC/C,CAAC;IAEe,KAAK,CAAC,QAAQ,CAAC,WAAoB,KAAK;QACtD,IAAI,QAAQ;YAAE,OAAO;QACrB,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAoB,EAAE,KAAK,EAAE,GAAW,EAAE,GAAQ,EAAE,EAAE;gBAC5F,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAU,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAA0B,EAC1B,SAAiB,EACjB,MAAe,EACf,IAAwB,EACxB,OAAoB,EACpB,aAA8C,EAC9C,OAAsB,EACtB,QAA0B;IAE1B,MAAM,GAAG,GAAG,IAAK,UAAkB,CACjC,UAAU,EACV,MAAM,EACN,IAAI,EACJ,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,CACuB,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/CommonTypes.d.ts
CHANGED
|
@@ -1,15 +1,58 @@
|
|
|
1
1
|
import { EventEmitter } from "eventemitter3";
|
|
2
2
|
import { ObjectId, ObjectIdLike } from "bson";
|
|
3
3
|
import "reflect-metadata";
|
|
4
|
-
|
|
5
|
-
import { AutoUpdateManager } from "./AutoUpdateManagerClass";
|
|
6
|
-
type RefType = string | ObjectId;
|
|
7
|
-
export type MongoId = RefType;
|
|
4
|
+
export type MongoId = string | ObjectId;
|
|
8
5
|
export type EventEmitter3 = EventEmitter;
|
|
6
|
+
export interface IAutoUpdateManager<T extends IAutoUpdatedClientObjectBase> {
|
|
7
|
+
readonly className: string;
|
|
8
|
+
readonly cache: DEMCache;
|
|
9
|
+
readonly managers: Record<string, IAutoUpdateManager<IAutoUpdatedClientObjectBase>>;
|
|
10
|
+
getObject(_id?: MongoId): T | null | undefined;
|
|
11
|
+
deleteObject(_id: MongoId): Promise<{
|
|
12
|
+
success: boolean;
|
|
13
|
+
message: string;
|
|
14
|
+
}>;
|
|
15
|
+
readonly objectsAsArray: T[];
|
|
16
|
+
readonly isLoaded: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface IAutoUpdatedClientObjectBase {
|
|
19
|
+
readonly _id: MongoId;
|
|
20
|
+
readonly properties: string[];
|
|
21
|
+
readonly className: string;
|
|
22
|
+
readonly isLoaded: boolean;
|
|
23
|
+
loadMissingReferences(): Promise<void>;
|
|
24
|
+
waitForPreloaded(): Promise<void>;
|
|
25
|
+
destroy(once?: boolean): Promise<{
|
|
26
|
+
success: boolean;
|
|
27
|
+
message: string;
|
|
28
|
+
}>;
|
|
29
|
+
isPreLoadedAsync(): Promise<boolean>;
|
|
30
|
+
contactChildren(): Promise<void>;
|
|
31
|
+
onUpdate(): Promise<void>;
|
|
32
|
+
getValue(key: string): any;
|
|
33
|
+
setValue(key: string, val: any): Promise<{
|
|
34
|
+
success: boolean;
|
|
35
|
+
msg: string;
|
|
36
|
+
}>;
|
|
37
|
+
readonly parentManager: IAutoUpdateManager<IAutoUpdatedClientObjectBase>;
|
|
38
|
+
readonly callbacks: any;
|
|
39
|
+
readonly classParam: any;
|
|
40
|
+
}
|
|
41
|
+
export interface IAutoUpdatedClientObject<T extends object = any> extends IAutoUpdatedClientObjectBase {
|
|
42
|
+
readonly extractedData: ExtractedData<T, IAutoUpdatedClientObject<any>>;
|
|
43
|
+
getValue<K extends Paths<T, IAutoUpdatedClientObject<any>>>(key: K): PathValueOf<T, K>;
|
|
44
|
+
setValue<K extends Paths<T, IAutoUpdatedClientObject<any>>>(key: K, val: PathValueOf<IsData<T>, K>): Promise<{
|
|
45
|
+
success: boolean;
|
|
46
|
+
msg: string;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
export interface IAutoUpdatedServerObject<T extends object = any> extends IAutoUpdatedClientObject<T> {
|
|
50
|
+
loadFromDB(): Promise<void>;
|
|
51
|
+
loadFromDocument(document: unknown): Promise<void>;
|
|
52
|
+
}
|
|
9
53
|
export type AutoProps<T> = {
|
|
10
54
|
readonly [K in keyof T]: T[K];
|
|
11
55
|
};
|
|
12
|
-
export type InstanceOf<T> = T extends Constructor<infer I> ? I : T;
|
|
13
56
|
export type Constructor<T> = new (...args: any[]) => T;
|
|
14
57
|
export type UnboxConstructor<T> = T extends new (...args: any[]) => infer I ? I : T;
|
|
15
58
|
export type LoggersType = {
|
|
@@ -18,26 +61,29 @@ export type LoggersType = {
|
|
|
18
61
|
error: (s: string) => void;
|
|
19
62
|
warn: (s: string) => void;
|
|
20
63
|
};
|
|
21
|
-
type
|
|
64
|
+
type IsAUCOBase<T> = T extends {
|
|
22
65
|
className: string;
|
|
66
|
+
_id: any;
|
|
23
67
|
} ? true : false;
|
|
24
|
-
type AllowStringForRefs<V> = NonNullable<V> extends Array<infer U> ?
|
|
25
|
-
type OnlyStringForRefs<V> =
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
68
|
+
type AllowStringForRefs<V> = NonNullable<V> extends Array<infer U> ? IsAUCOBase<NonNullable<U>> extends true ? (U | string | ObjectIdLike)[] : V : IsAUCOBase<NonNullable<V>> extends true ? V | string | ObjectIdLike : V;
|
|
69
|
+
type OnlyStringForRefs<V> = V extends any ? (V extends Array<infer U> ? OnlyStringForRefs<U>[] : V extends IAutoUpdatedClientObjectBase ? string : V extends Date ? V : V extends ObjectId | ObjectIdLike ? string : V extends object ? {
|
|
70
|
+
[K in keyof V as V[K] extends Function ? never : K]: K extends "_id" ? string : OnlyStringForRefs<V[K]>;
|
|
71
|
+
} : V) : never;
|
|
72
|
+
export type DEMCache = {
|
|
73
|
+
references: Record<string, any>;
|
|
30
74
|
};
|
|
31
|
-
export type
|
|
32
|
-
|
|
75
|
+
export type Pure<T extends object, Base = IAutoUpdatedClientObject<any>> = Omit<T, keyof Base | "parentManager" | "callbacks" | "classParam" | "className" | "properties" | "isLoaded" | "extractedData" | "getValue" | "setValue" | "loadFromDB" | "setValue_">;
|
|
76
|
+
export type IsData<T extends object> = {
|
|
77
|
+
[K in keyof Pure<T> as T[K] extends Function ? never : K]: AllowStringForRefs<T[K]>;
|
|
33
78
|
} & {
|
|
34
|
-
_id:
|
|
79
|
+
_id: MongoId;
|
|
35
80
|
};
|
|
36
|
-
export type ExtractedData<T, Base =
|
|
37
|
-
[K in keyof
|
|
81
|
+
export type ExtractedData<T extends object, Base = IAutoUpdatedClientObject<any>> = {
|
|
82
|
+
[K in keyof IsData<T> as K extends "_id" ? never : K]: OnlyStringForRefs<IsData<T>[K]>;
|
|
83
|
+
} & {
|
|
84
|
+
_id: string;
|
|
38
85
|
};
|
|
39
|
-
type
|
|
40
|
-
export type SocketEvent = [string, any, (res: ServerResponse<any>) => void];
|
|
86
|
+
export type SocketEvent = [string, unknown, (res: ServerResponse<unknown>) => void];
|
|
41
87
|
export type ServerResponse<T> = {
|
|
42
88
|
data: T;
|
|
43
89
|
message?: string;
|
|
@@ -47,33 +93,32 @@ export type ServerResponse<T> = {
|
|
|
47
93
|
success: false;
|
|
48
94
|
};
|
|
49
95
|
export type ServerUpdateRequest<T> = {
|
|
50
|
-
_id:
|
|
96
|
+
_id: MongoId;
|
|
51
97
|
key: string;
|
|
52
|
-
value:
|
|
98
|
+
value: unknown;
|
|
53
99
|
};
|
|
54
|
-
export declare function classProp(target:
|
|
55
|
-
export declare function populatedRef(where: string): (target:
|
|
56
|
-
export declare function classRef(): (target:
|
|
100
|
+
export declare function classProp(target: object, propertyKey: string): void;
|
|
101
|
+
export declare function populatedRef(where: string): (target: object, propertyKey: string) => void;
|
|
102
|
+
export declare function classRef(): (target: object, propertyKey: string) => void;
|
|
57
103
|
export type Pretty<T> = {
|
|
58
104
|
[K in keyof T]: T[K];
|
|
59
105
|
};
|
|
60
106
|
export type StripPrototypePrefix<P extends string> = P extends "prototype" ? never : P extends `prototype.${infer Rest}` ? Rest : P;
|
|
61
|
-
export type Recurseable<T> = T extends object ? T extends Array<
|
|
107
|
+
export type Recurseable<T> = T extends object ? T extends Array<unknown> | Function ? never : T : never;
|
|
62
108
|
export type OnlyClassKeys<T> = {
|
|
63
109
|
[K in keyof T]: K;
|
|
64
110
|
}[keyof T] & string;
|
|
65
111
|
export type Split<S extends string> = S extends `${infer L}.${infer R}` ? [L, ...Split<R>] : [S];
|
|
66
112
|
export type NonOptional<T> = Exclude<T, null | undefined>;
|
|
67
|
-
export type DeAutoUpdate<T> = T extends
|
|
68
|
-
export type RecursiveDeAutoUpdate<T extends
|
|
113
|
+
export type DeAutoUpdate<T> = T extends IAutoUpdatedClientObject<any> ? unknown : T;
|
|
114
|
+
export type RecursiveDeAutoUpdate<T extends IAutoUpdatedClientObject<any>> = T extends IAutoUpdatedClientObject<any> ? unknown : T;
|
|
69
115
|
export type OnlyAddedKeys<Sub, Parent> = Pick<Sub, Exclude<keyof Sub, keyof Omit<Parent, "_id">>>;
|
|
70
116
|
export type Prev = [never, 0, 1, 2, 3];
|
|
71
117
|
export type Join<K, P> = K extends string | number ? P extends string | number ? `${K}${"" extends P ? "" : "."}${P}` : never : never;
|
|
72
|
-
export type Paths<T, Base, D extends number = 3> = [D] extends [never] ? never : NonNullable<T> extends object ? {
|
|
73
|
-
[K in keyof OnlyAddedKeys<NonNullable<T>, Base> & string]-?: NonNullable<NonNullable<T>[K]> extends Function ? never : NonNullable<NonNullable<T>[K]> extends Array<
|
|
118
|
+
export type Paths<T, Base, D extends number = 3> = 0 extends (1 & T) ? string : [D] extends [never] ? never : NonNullable<T> extends object ? {
|
|
119
|
+
[K in keyof OnlyAddedKeys<NonNullable<T>, Base> & string]-?: NonNullable<NonNullable<T>[K]> extends Function ? never : NonNullable<NonNullable<T>[K]> extends Array<unknown> | Date | ObjectId ? K : NonNullable<NonNullable<T>[K]> extends object ? K | Join<K, Paths<NonNullable<NonNullable<T>[K]>, Base, Prev[D]>> : K;
|
|
74
120
|
}[keyof OnlyAddedKeys<NonNullable<T>, Base> & string] : never;
|
|
75
|
-
export type PathValueOf<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof NonNullable<T> ? PathValueOf<NonNullable<NonNullable<T>[K]>, Rest> : never : P extends keyof NonNullable<T> ? NonNullable<T>[P] : never;
|
|
76
|
-
export type Pure<T, Base = AutoUpdatedClientObject<T>> = FixPure<T, Base>;
|
|
121
|
+
export type PathValueOf<T, P extends string> = 0 extends (1 & T) ? any : P extends `${infer K}.${infer Rest}` ? K extends keyof NonNullable<T> ? PathValueOf<NonNullable<NonNullable<T>[K]>, Rest> : never : P extends keyof NonNullable<T> ? NonNullable<T>[P] : never;
|
|
77
122
|
export declare const EVENT_INTERNAL_PRE_LOADED = "pre-loaded";
|
|
78
123
|
export declare const EVENT_UPDATE = "update";
|
|
79
124
|
export declare const EVENT_DELETE = "delete";
|
|
@@ -83,7 +128,7 @@ export declare const EVENT_STARTUP = "startup";
|
|
|
83
128
|
export type GlobalCache = {
|
|
84
129
|
objects: Record<string, {
|
|
85
130
|
className: string;
|
|
86
|
-
object:
|
|
131
|
+
object: IAutoUpdatedClientObjectBase;
|
|
87
132
|
}>;
|
|
88
133
|
};
|
|
89
134
|
export declare const globalCache: GlobalCache;
|
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;AA4G1B,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,WAAmB;IACzD,MAAM,KAAK,GAAI,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAc,IAAI,EAAE,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,OAAO,UAAU,MAAc,EAAE,WAAmB;QAChD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,QAAQ;IACpB,OAAO,UAAU,MAAc,EAAE,WAAmB;QAChD,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC;AACN,CAAC;AAkCD,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;AASvC,MAAM,CAAC,MAAM,WAAW,GAAgB;IACpC,OAAO,EAAE,EAAE;CACd,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Join, OnlyAddedKeys, Prev } from "./CommonTypes";
|
|
1
|
+
import { Join, OnlyAddedKeys, Prev } from "./CommonTypes.js";
|
|
2
2
|
import { ObjectId, Types } from "mongoose";
|
|
3
3
|
export type NonOptional<T> = Exclude<T, null | undefined>;
|
|
4
4
|
export type Paths<T, Base, D extends number = 3> = [D] extends [never] ? never : NonNullable<T> extends object ? {
|
|
5
|
-
[K in keyof OnlyAddedKeys<NonNullable<T>, Base> & string]-?: NonNullable<NonNullable<T>[K]> extends Function ? never : NonNullable<NonNullable<T>[K]> extends Array<
|
|
5
|
+
[K in keyof OnlyAddedKeys<NonNullable<T>, Base> & string]-?: NonNullable<NonNullable<T>[K]> extends Function ? never : NonNullable<NonNullable<T>[K]> extends Array<unknown> | Date | ObjectId | Types.ObjectId ? K : NonNullable<NonNullable<T>[K]> extends object ? K | Join<K, Paths<NonNullable<NonNullable<T>[K]>, Base, Prev[D]>> : K;
|
|
6
6
|
}[keyof OnlyAddedKeys<NonNullable<T>, Base> & string] : never;
|
|
7
|
-
type SafeGet<T, K extends string> = T extends
|
|
7
|
+
type SafeGet<T, K extends string> = T extends unknown ? K extends keyof NonNullable<T> ? NonNullable<T>[K] : never : never;
|
|
8
8
|
export type PathValueOf<T, P extends string> = P extends `${infer K}.${infer Rest}` ? PathValueOf<SafeGet<T, K>, Rest> : SafeGet<T, P>;
|
|
9
9
|
export {};
|
package/dist/server.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { AutoUpdateServerManagerClass, AutoUpdateManagerClass, AutoUpdatedClientObjectClass, AutoUpdatedServerObjectClass, CommonTypes, };
|
|
1
|
+
export * as CommonTypes from "./CommonTypes_server.js";
|
|
2
|
+
export * as AutoUpdatedServerObjectClass from "./AutoUpdatedServerObjectClass.js";
|
|
3
|
+
export * as AutoUpdatedClientObjectClass from "./AutoUpdatedClientObjectClass.js";
|
|
4
|
+
export * as AutoUpdateManagerClass from "./AutoUpdateManagerClass.js";
|
|
5
|
+
export * as AutoUpdateServerManagerClass from "./AutoUpdateServerManagerClass.js";
|
package/dist/server.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { AutoUpdateServerManagerClass, AutoUpdateManagerClass, AutoUpdatedClientObjectClass, AutoUpdatedServerObjectClass, CommonTypes, };
|
|
1
|
+
export * as CommonTypes from "./CommonTypes_server.js";
|
|
2
|
+
export * as AutoUpdatedServerObjectClass from "./AutoUpdatedServerObjectClass.js";
|
|
3
|
+
export * as AutoUpdatedClientObjectClass from "./AutoUpdatedClientObjectClass.js";
|
|
4
|
+
export * as AutoUpdateManagerClass from "./AutoUpdateManagerClass.js";
|
|
5
|
+
export * as AutoUpdateServerManagerClass from "./AutoUpdateServerManagerClass.js";
|
|
7
6
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAC"}
|