@webda/core 2.0.0-beta.3 → 2.1.0
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/lib/application.d.ts +5 -5
- package/lib/application.js +71 -84
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +121 -140
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +21 -25
- package/lib/core.js +233 -320
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +334 -406
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +49 -48
- package/lib/index.js +53 -70
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +2 -2
- package/lib/models/aclmodel.js +63 -90
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +128 -152
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +33 -14
- package/lib/models/coremodel.js +160 -117
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +143 -107
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/deployment.js +1 -2
- package/lib/models/ident.d.ts +3 -3
- package/lib/models/ident.js +4 -9
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ident.spec.js +9 -11
- package/lib/models/ident.spec.js.map +1 -1
- package/lib/models/ownermodel.d.ts +2 -2
- package/lib/models/ownermodel.js +39 -62
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +126 -168
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/rolemodel.d.ts +1 -1
- package/lib/models/rolemodel.js +24 -40
- package/lib/models/rolemodel.js.map +1 -1
- package/lib/models/rolemodel.spec.js +44 -63
- package/lib/models/rolemodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +9 -9
- package/lib/models/user.js +3 -8
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +14 -16
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/filequeue.d.ts +2 -2
- package/lib/queues/filequeue.js +72 -93
- package/lib/queues/filequeue.js.map +1 -1
- package/lib/queues/filequeue.spec.js +53 -70
- package/lib/queues/filequeue.spec.js.map +1 -1
- package/lib/queues/memoryqueue.d.ts +2 -2
- package/lib/queues/memoryqueue.js +37 -61
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +142 -165
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/pubsubservice.d.ts +2 -2
- package/lib/queues/pubsubservice.js +3 -7
- package/lib/queues/pubsubservice.js.map +1 -1
- package/lib/queues/queue.spec.d.ts +1 -1
- package/lib/queues/queue.spec.js +42 -56
- package/lib/queues/queue.spec.js.map +1 -1
- package/lib/queues/queueservice.d.ts +3 -3
- package/lib/queues/queueservice.js +51 -67
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.d.ts +3 -3
- package/lib/router.js +46 -47
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +64 -61
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.d.ts +2 -2
- package/lib/services/asyncevents.js +44 -64
- package/lib/services/asyncevents.js.map +1 -1
- package/lib/services/asyncevents.spec.js +81 -98
- package/lib/services/asyncevents.spec.js.map +1 -1
- package/lib/services/authentication.d.ts +23 -13
- package/lib/services/authentication.js +540 -566
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +411 -447
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +8 -6
- package/lib/services/binary.js +212 -245
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +3 -3
- package/lib/services/binary.spec.js +390 -443
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/cloudbinary.d.ts +3 -3
- package/lib/services/cloudbinary.js +45 -70
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/cloudbinary.spec.d.ts +3 -3
- package/lib/services/cloudbinary.spec.js +133 -162
- package/lib/services/cloudbinary.spec.js.map +1 -1
- package/lib/services/configuration.d.ts +1 -1
- package/lib/services/configuration.js +78 -105
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +63 -83
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.d.ts +3 -2
- package/lib/services/cron.js +9 -13
- package/lib/services/cron.js.map +1 -1
- package/lib/services/cron.spec.js +18 -21
- package/lib/services/cron.spec.js.map +1 -1
- package/lib/services/cryptoservice.d.ts +9 -4
- package/lib/services/cryptoservice.js +187 -221
- package/lib/services/cryptoservice.js.map +1 -1
- package/lib/services/cryptoservice.spec.js +88 -115
- package/lib/services/cryptoservice.spec.js.map +1 -1
- package/lib/services/debugmailer.d.ts +1 -1
- package/lib/services/debugmailer.js +13 -34
- package/lib/services/debugmailer.js.map +1 -1
- package/lib/services/debugmailer.spec.js +16 -29
- package/lib/services/debugmailer.spec.js.map +1 -1
- package/lib/services/echo.d.ts +2 -2
- package/lib/services/echo.js +15 -31
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.js +27 -40
- package/lib/services/echo.spec.js.map +1 -1
- package/lib/services/filebinary.d.ts +5 -5
- package/lib/services/filebinary.js +165 -210
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +2 -1
- package/lib/services/filebinary.spec.js +106 -116
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.d.ts +1 -1
- package/lib/services/fileconfiguration.js +25 -44
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +79 -109
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/invitationservice.d.ts +8 -8
- package/lib/services/invitationservice.js +274 -314
- package/lib/services/invitationservice.js.map +1 -1
- package/lib/services/invitationservice.spec.js +443 -449
- package/lib/services/invitationservice.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.d.ts +1 -1
- package/lib/services/kubernetesconfiguration.js +41 -60
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +80 -98
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +4 -4
- package/lib/services/mailer.js +62 -86
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +86 -127
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/notificationservice.d.ts +3 -3
- package/lib/services/notificationservice.js +21 -42
- package/lib/services/notificationservice.js.map +1 -1
- package/lib/services/notificationservice.spec.js +47 -73
- package/lib/services/notificationservice.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +4 -4
- package/lib/services/oauth.js +68 -83
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +130 -156
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/proxy.d.ts +2 -6
- package/lib/services/proxy.js +45 -58
- package/lib/services/proxy.js.map +1 -1
- package/lib/services/proxy.spec.js +34 -53
- package/lib/services/proxy.spec.js.map +1 -1
- package/lib/services/resource.d.ts +2 -2
- package/lib/services/resource.js +12 -18
- package/lib/services/resource.js.map +1 -1
- package/lib/services/resource.spec.js +67 -99
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +26 -3
- package/lib/services/service.js +68 -40
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.js +62 -67
- package/lib/services/service.spec.js.map +1 -1
- package/lib/services/version.d.ts +1 -1
- package/lib/services/version.js +3 -8
- package/lib/services/version.js.map +1 -1
- package/lib/services/version.spec.js +11 -24
- package/lib/services/version.spec.js.map +1 -1
- package/lib/stores/aggregator.d.ts +2 -2
- package/lib/stores/aggregator.js +37 -58
- package/lib/stores/aggregator.js.map +1 -1
- package/lib/stores/file.d.ts +3 -3
- package/lib/stores/file.js +93 -131
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.d.ts +2 -2
- package/lib/stores/file.spec.js +262 -289
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +3 -3
- package/lib/stores/mapper.js +110 -137
- package/lib/stores/mapper.js.map +1 -1
- package/lib/stores/mapper.spec.js +133 -150
- package/lib/stores/mapper.spec.js.map +1 -1
- package/lib/stores/memory.d.ts +3 -3
- package/lib/stores/memory.js +98 -144
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +2 -2
- package/lib/stores/memory.spec.js +124 -145
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +27 -17
- package/lib/stores/store.js +833 -849
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +5 -4
- package/lib/stores/store.spec.js +625 -669
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLLexer.d.ts +4 -4
- package/lib/stores/webdaql/WebdaQLLexer.js +9 -13
- package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserLexer.d.ts +4 -4
- package/lib/stores/webdaql/WebdaQLParserLexer.js +9 -13
- package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserListener.d.ts +2 -2
- package/lib/stores/webdaql/WebdaQLParserListener.js +1 -2
- package/lib/stores/webdaql/WebdaQLParserListener.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserParser.d.ts +10 -10
- package/lib/stores/webdaql/WebdaQLParserParser.js +62 -91
- package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
- package/lib/stores/webdaql/WebdaQLParserVisitor.d.ts +2 -2
- package/lib/stores/webdaql/WebdaQLParserVisitor.js +1 -2
- package/lib/stores/webdaql/WebdaQLParserVisitor.js.map +1 -1
- package/lib/stores/webdaql/query.d.ts +4 -5
- package/lib/stores/webdaql/query.js +16 -19
- package/lib/stores/webdaql/query.js.map +1 -1
- package/lib/stores/webdaql/query.spec.js +30 -32
- package/lib/stores/webdaql/query.spec.js.map +1 -1
- package/lib/test.d.ts +3 -3
- package/lib/test.js +73 -100
- package/lib/test.js.map +1 -1
- package/lib/unpackedapplication.d.ts +1 -1
- package/lib/unpackedapplication.js +49 -39
- package/lib/unpackedapplication.js.map +1 -1
- package/lib/utils/abstractdeployer.js +1 -5
- package/lib/utils/abstractdeployer.js.map +1 -1
- package/lib/utils/abstractdeployer.spec.js +6 -8
- package/lib/utils/abstractdeployer.spec.js.map +1 -1
- package/lib/utils/context.d.ts +7 -5
- package/lib/utils/context.js +95 -103
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.js +139 -163
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +3 -3
- package/lib/utils/cookie.js +42 -61
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +42 -64
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/esm.d.ts +4 -0
- package/lib/utils/esm.js +10 -0
- package/lib/utils/esm.js.map +1 -0
- package/lib/utils/httpcontext.d.ts +3 -0
- package/lib/utils/httpcontext.js +48 -65
- package/lib/utils/httpcontext.js.map +1 -1
- package/lib/utils/httpcontext.spec.js +37 -56
- package/lib/utils/httpcontext.spec.js.map +1 -1
- package/lib/utils/logger.d.ts +2 -2
- package/lib/utils/logger.js +15 -28
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.spec.js +9 -11
- package/lib/utils/logger.spec.js.map +1 -1
- package/lib/utils/serializers.js +17 -20
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +43 -44
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/session.d.ts +6 -6
- package/lib/utils/session.js +37 -59
- package/lib/utils/session.js.map +1 -1
- package/lib/utils/session.spec.js +38 -51
- package/lib/utils/session.spec.js.map +1 -1
- package/lib/utils/waiter.d.ts +1 -1
- package/lib/utils/waiter.js +32 -52
- package/lib/utils/waiter.js.map +1 -1
- package/lib/utils/waiter.spec.js +75 -92
- package/lib/utils/waiter.spec.js.map +1 -1
- package/package.json +18 -13
- package/test/config-invitation.json +1 -3
- package/test/config.json +1 -2
- package/test/config.old.json +1 -2
- package/test/moddas/annotatedservice.js +5 -5
- package/test/moddas/debugmailer.js +2 -3
- package/test/moddas/fakeservice.js +2 -3
- package/test/moddas/voidstore.js +6 -4
- package/test/models/ident.js +2 -6
- package/test/models/task.js +3 -7
- package/test/package.json +2 -1
- package/webda.module.json +895 -190
package/lib/models/coremodel.js
CHANGED
|
@@ -1,33 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.CoreModel = exports.NotEnumerable = exports.CoreModelUnattachedError = void 0;
|
|
19
|
-
const uuid_1 = require("uuid");
|
|
20
|
-
const context_1 = require("../utils/context");
|
|
7
|
+
import util from "util";
|
|
8
|
+
import { v4 as uuidv4 } from "uuid";
|
|
9
|
+
import { Context } from "../utils/context.js";
|
|
21
10
|
/**
|
|
22
11
|
* Sent if action required attached CoreModel is trigger
|
|
23
12
|
*/
|
|
24
|
-
class CoreModelUnattachedError extends Error {
|
|
13
|
+
export class CoreModelUnattachedError extends Error {
|
|
25
14
|
constructor() {
|
|
26
15
|
super("No store linked to this object");
|
|
27
16
|
}
|
|
28
17
|
}
|
|
29
|
-
|
|
30
|
-
function NotEnumerable(target, propertyKey) {
|
|
18
|
+
export function NotEnumerable(target, propertyKey) {
|
|
31
19
|
Object.defineProperty(target, propertyKey, {
|
|
32
20
|
set(value) {
|
|
33
21
|
Object.defineProperty(this, propertyKey, {
|
|
@@ -39,7 +27,6 @@ function NotEnumerable(target, propertyKey) {
|
|
|
39
27
|
configurable: true
|
|
40
28
|
});
|
|
41
29
|
}
|
|
42
|
-
exports.NotEnumerable = NotEnumerable;
|
|
43
30
|
/**
|
|
44
31
|
* Basic Object in Webda
|
|
45
32
|
*
|
|
@@ -52,8 +39,67 @@ exports.NotEnumerable = NotEnumerable;
|
|
|
52
39
|
*/
|
|
53
40
|
class CoreModel {
|
|
54
41
|
constructor() {
|
|
42
|
+
this.__dirty = new Set();
|
|
55
43
|
this.__class = new.target;
|
|
56
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Return a proxy to the object to detect if dirty
|
|
47
|
+
* @returns
|
|
48
|
+
*/
|
|
49
|
+
getProxy() {
|
|
50
|
+
const subProxier = prop => {
|
|
51
|
+
return {
|
|
52
|
+
set: (target, p, value) => {
|
|
53
|
+
this.__dirty.add(prop);
|
|
54
|
+
target[p] = value;
|
|
55
|
+
return true;
|
|
56
|
+
},
|
|
57
|
+
get: (target, p) => {
|
|
58
|
+
if (Array.isArray(target[p]) || (target[p] instanceof Object && target[p].prototype == Object.prototype)) {
|
|
59
|
+
return new Proxy(target[p], subProxier(prop));
|
|
60
|
+
}
|
|
61
|
+
return target[p];
|
|
62
|
+
},
|
|
63
|
+
deleteProperty: (t, property) => {
|
|
64
|
+
delete t[property];
|
|
65
|
+
this.__dirty.add(prop);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
const proxier = {
|
|
71
|
+
deleteProperty: (t, property) => {
|
|
72
|
+
delete t[property];
|
|
73
|
+
this.__dirty.add(property);
|
|
74
|
+
return true;
|
|
75
|
+
},
|
|
76
|
+
set: (target, p, value) => {
|
|
77
|
+
if (p !== "__dirty") {
|
|
78
|
+
target.__dirty.add(p);
|
|
79
|
+
}
|
|
80
|
+
target[p] = value;
|
|
81
|
+
return true;
|
|
82
|
+
},
|
|
83
|
+
get: (target, p) => {
|
|
84
|
+
if (typeof p === "string" && p.startsWith("__")) {
|
|
85
|
+
return target[p];
|
|
86
|
+
}
|
|
87
|
+
if (Array.isArray(target[p]) ||
|
|
88
|
+
(typeof target[p] === "object" && target[p].constructor.prototype === Object.prototype)) {
|
|
89
|
+
return new Proxy(target[p], subProxier(p));
|
|
90
|
+
}
|
|
91
|
+
return target[p];
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
return new Proxy(this, proxier);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Return true if needs a save
|
|
98
|
+
* @returns
|
|
99
|
+
*/
|
|
100
|
+
isDirty() {
|
|
101
|
+
return this.__dirty.size > 0;
|
|
102
|
+
}
|
|
57
103
|
/**
|
|
58
104
|
*
|
|
59
105
|
* @returns the uuid of the object
|
|
@@ -92,10 +138,8 @@ class CoreModel {
|
|
|
92
138
|
* By default nothing is permitted on a CoreModel
|
|
93
139
|
* @returns
|
|
94
140
|
*/
|
|
95
|
-
canAct(_ctx, _action) {
|
|
96
|
-
|
|
97
|
-
throw 403;
|
|
98
|
-
});
|
|
141
|
+
async canAct(_ctx, _action) {
|
|
142
|
+
throw 403;
|
|
99
143
|
}
|
|
100
144
|
/**
|
|
101
145
|
* Get the UUID property
|
|
@@ -122,6 +166,14 @@ class CoreModel {
|
|
|
122
166
|
static factory(model, object, context) {
|
|
123
167
|
return new model().setContext(context).load(object, context === undefined);
|
|
124
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Detect what looks like a CoreModel but can be from different version
|
|
171
|
+
* @param object
|
|
172
|
+
* @returns
|
|
173
|
+
*/
|
|
174
|
+
static instanceOf(object) {
|
|
175
|
+
return (typeof object.toStoredJSON === "function" && object.__class && object.__class.factory && object.__class.instanceOf);
|
|
176
|
+
}
|
|
125
177
|
/**
|
|
126
178
|
* Return if an object is attached to its store
|
|
127
179
|
*/
|
|
@@ -154,15 +206,13 @@ class CoreModel {
|
|
|
154
206
|
* @param partials
|
|
155
207
|
* @returns
|
|
156
208
|
*/
|
|
157
|
-
static fromFullUuid(core, fullUuid, partials) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return service.get(uuid);
|
|
165
|
-
});
|
|
209
|
+
static async fromFullUuid(core, fullUuid, partials) {
|
|
210
|
+
const [store, uuid] = fullUuid.split("$");
|
|
211
|
+
let service = core.getService(store);
|
|
212
|
+
if (partials) {
|
|
213
|
+
return service.newModel(partials).setUuid(uuid);
|
|
214
|
+
}
|
|
215
|
+
return service.get(uuid);
|
|
166
216
|
}
|
|
167
217
|
/**
|
|
168
218
|
* Load an object from RAW
|
|
@@ -178,6 +228,12 @@ class CoreModel {
|
|
|
178
228
|
}
|
|
179
229
|
this[prop] = raw[prop];
|
|
180
230
|
}
|
|
231
|
+
if (this._creationDate) {
|
|
232
|
+
this._creationDate = new Date(this._creationDate);
|
|
233
|
+
}
|
|
234
|
+
if (this._lastUpdate) {
|
|
235
|
+
this._lastUpdate = new Date(this._lastUpdate);
|
|
236
|
+
}
|
|
181
237
|
this.__type = this.__class.name;
|
|
182
238
|
if (!this.getUuid()) {
|
|
183
239
|
this.setUuid(this.generateUid(raw));
|
|
@@ -197,7 +253,7 @@ class CoreModel {
|
|
|
197
253
|
* Global object does not belong to a request
|
|
198
254
|
*/
|
|
199
255
|
getContext() {
|
|
200
|
-
return this.__ctx ||
|
|
256
|
+
return this.__ctx || Context.getGlobalContext();
|
|
201
257
|
}
|
|
202
258
|
/**
|
|
203
259
|
* Return the object registered store
|
|
@@ -210,73 +266,73 @@ class CoreModel {
|
|
|
210
266
|
*
|
|
211
267
|
* @throws Error if the object is not coming from a store
|
|
212
268
|
*/
|
|
213
|
-
refresh() {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
// @ts-ignore
|
|
225
|
-
if (obj[i] !== this[i]) {
|
|
226
|
-
this[i] = undefined;
|
|
227
|
-
}
|
|
269
|
+
async refresh() {
|
|
270
|
+
if (!this.__store) {
|
|
271
|
+
throw new CoreModelUnattachedError();
|
|
272
|
+
}
|
|
273
|
+
let obj = await this.__store.get(this.getUuid());
|
|
274
|
+
if (obj) {
|
|
275
|
+
Object.assign(this, obj);
|
|
276
|
+
for (let i in this) {
|
|
277
|
+
// @ts-ignore
|
|
278
|
+
if (obj[i] !== this[i]) {
|
|
279
|
+
delete this[i];
|
|
228
280
|
}
|
|
229
281
|
}
|
|
230
|
-
|
|
231
|
-
|
|
282
|
+
}
|
|
283
|
+
return this;
|
|
232
284
|
}
|
|
233
285
|
/**
|
|
234
286
|
* Delete this object
|
|
235
287
|
*
|
|
236
288
|
* @throws Error if the object is not coming from a store
|
|
237
289
|
*/
|
|
238
|
-
delete() {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
return this.__store.delete(this.getUuid());
|
|
244
|
-
});
|
|
290
|
+
async delete() {
|
|
291
|
+
if (!this.__store) {
|
|
292
|
+
throw new CoreModelUnattachedError();
|
|
293
|
+
}
|
|
294
|
+
return this.__store.delete(this.getUuid());
|
|
245
295
|
}
|
|
246
296
|
/**
|
|
247
|
-
*
|
|
248
|
-
*
|
|
249
|
-
* @
|
|
297
|
+
* Patch current object with this update
|
|
298
|
+
* @param obj
|
|
299
|
+
* @param conditionField
|
|
300
|
+
* @param conditionValue
|
|
250
301
|
*/
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
throw new CoreModelUnattachedError();
|
|
255
|
-
}
|
|
256
|
-
let obj = yield this.__store.save(this);
|
|
257
|
-
for (var i in obj) {
|
|
258
|
-
this[i] = obj[i];
|
|
259
|
-
}
|
|
260
|
-
return this;
|
|
261
|
-
});
|
|
302
|
+
async patch(obj, conditionField, conditionValue) {
|
|
303
|
+
await this.__store.patch({ [this.__class.getUuidField()]: this.getUuid(), ...obj }, true, conditionField, conditionValue);
|
|
304
|
+
Object.assign(this, obj);
|
|
262
305
|
}
|
|
263
306
|
/**
|
|
264
|
-
*
|
|
307
|
+
* Save this object
|
|
265
308
|
*
|
|
266
309
|
* @throws Error if the object is not coming from a store
|
|
267
310
|
*/
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
for (var i in obj) {
|
|
276
|
-
this[i] = obj[i];
|
|
277
|
-
}
|
|
311
|
+
async save(full, ...args) {
|
|
312
|
+
if (!this.__store) {
|
|
313
|
+
throw new CoreModelUnattachedError();
|
|
314
|
+
}
|
|
315
|
+
// If proxy is not used and not field specified call save
|
|
316
|
+
if ((!util.types.isProxy(this) && full === undefined) || full === true) {
|
|
317
|
+
await this.__store.save(this);
|
|
278
318
|
return this;
|
|
279
|
-
}
|
|
319
|
+
}
|
|
320
|
+
const patch = {
|
|
321
|
+
[this.__class.getUuidField()]: this.getUuid()
|
|
322
|
+
};
|
|
323
|
+
if (typeof full === "string") {
|
|
324
|
+
[full, ...args].forEach(k => {
|
|
325
|
+
patch[k] = this[k];
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
for (let entry of this.__dirty.entries()) {
|
|
330
|
+
patch[entry[0]] = this[entry[0]];
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
await this.__store.patch(patch);
|
|
334
|
+
this.__dirty.clear();
|
|
335
|
+
return this;
|
|
280
336
|
}
|
|
281
337
|
/**
|
|
282
338
|
* Validate objet modification
|
|
@@ -284,11 +340,9 @@ class CoreModel {
|
|
|
284
340
|
* @param ctx
|
|
285
341
|
* @param updates
|
|
286
342
|
*/
|
|
287
|
-
validate(ctx, updates = undefined) {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
return true;
|
|
291
|
-
});
|
|
343
|
+
async validate(ctx, updates = undefined) {
|
|
344
|
+
ctx.getWebda().validateSchema(this, updates);
|
|
345
|
+
return true;
|
|
292
346
|
}
|
|
293
347
|
/**
|
|
294
348
|
* Generate uuid for the object
|
|
@@ -297,7 +351,7 @@ class CoreModel {
|
|
|
297
351
|
* @returns
|
|
298
352
|
*/
|
|
299
353
|
generateUid(_object = undefined) {
|
|
300
|
-
return (
|
|
354
|
+
return uuidv4().toString();
|
|
301
355
|
}
|
|
302
356
|
/**
|
|
303
357
|
* Remove all the attribute starting with __
|
|
@@ -369,60 +423,46 @@ class CoreModel {
|
|
|
369
423
|
/**
|
|
370
424
|
* Called when object is about to be deleted
|
|
371
425
|
*/
|
|
372
|
-
_onDelete() {
|
|
373
|
-
|
|
374
|
-
// Empty to be overriden
|
|
375
|
-
});
|
|
426
|
+
async _onDelete() {
|
|
427
|
+
// Empty to be overriden
|
|
376
428
|
}
|
|
377
429
|
/**
|
|
378
430
|
* Called when object has been deleted
|
|
379
431
|
*/
|
|
380
|
-
_onDeleted() {
|
|
381
|
-
|
|
382
|
-
// Empty to be overriden
|
|
383
|
-
});
|
|
432
|
+
async _onDeleted() {
|
|
433
|
+
// Empty to be overriden
|
|
384
434
|
}
|
|
385
435
|
/**
|
|
386
436
|
* Called when object is retrieved
|
|
387
437
|
*/
|
|
388
|
-
_onGet() {
|
|
389
|
-
|
|
390
|
-
// Empty to be overriden
|
|
391
|
-
});
|
|
438
|
+
async _onGet() {
|
|
439
|
+
// Empty to be overriden
|
|
392
440
|
}
|
|
393
441
|
/**
|
|
394
442
|
* Called when object is about to be saved
|
|
395
443
|
*/
|
|
396
|
-
_onSave() {
|
|
397
|
-
|
|
398
|
-
// Empty to be overriden
|
|
399
|
-
});
|
|
444
|
+
async _onSave() {
|
|
445
|
+
// Empty to be overriden
|
|
400
446
|
}
|
|
401
447
|
/**
|
|
402
448
|
* Called when object is saved
|
|
403
449
|
*/
|
|
404
|
-
_onSaved() {
|
|
405
|
-
|
|
406
|
-
// Empty to be overriden
|
|
407
|
-
});
|
|
450
|
+
async _onSaved() {
|
|
451
|
+
// Empty to be overriden
|
|
408
452
|
}
|
|
409
453
|
/**
|
|
410
454
|
* Called when object is about to be updates
|
|
411
455
|
*
|
|
412
456
|
* @param updates to be send
|
|
413
457
|
*/
|
|
414
|
-
_onUpdate(_updates) {
|
|
415
|
-
|
|
416
|
-
// Empty to be overriden
|
|
417
|
-
});
|
|
458
|
+
async _onUpdate(_updates) {
|
|
459
|
+
// Empty to be overriden
|
|
418
460
|
}
|
|
419
461
|
/**
|
|
420
462
|
* Called when object is updated
|
|
421
463
|
*/
|
|
422
|
-
_onUpdated() {
|
|
423
|
-
|
|
424
|
-
// Empty to be overriden
|
|
425
|
-
});
|
|
464
|
+
async _onUpdated() {
|
|
465
|
+
// Empty to be overriden
|
|
426
466
|
}
|
|
427
467
|
}
|
|
428
468
|
__decorate([
|
|
@@ -434,5 +474,8 @@ __decorate([
|
|
|
434
474
|
__decorate([
|
|
435
475
|
NotEnumerable
|
|
436
476
|
], CoreModel.prototype, "__store", void 0);
|
|
437
|
-
|
|
477
|
+
__decorate([
|
|
478
|
+
NotEnumerable
|
|
479
|
+
], CoreModel.prototype, "__dirty", void 0);
|
|
480
|
+
export { CoreModel };
|
|
438
481
|
//# sourceMappingURL=coremodel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coremodel.js","sourceRoot":"","sources":["../../src/models/coremodel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coremodel.js","sourceRoot":"","sources":["../../src/models/coremodel.ts"],"names":[],"mappings":"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"}
|