@spinajs/orm 2.0.521 → 2.0.522
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/cjs/exceptions.d.ts +7 -0
- package/lib/cjs/exceptions.d.ts.map +1 -1
- package/lib/cjs/exceptions.js +11 -1
- package/lib/cjs/exceptions.js.map +1 -1
- package/lib/cjs/fp.d.ts +6 -5
- package/lib/cjs/fp.d.ts.map +1 -1
- package/lib/cjs/fp.js +12 -59
- package/lib/cjs/fp.js.map +1 -1
- package/lib/cjs/helpers.d.ts +40 -0
- package/lib/cjs/helpers.d.ts.map +1 -0
- package/lib/cjs/helpers.js +90 -0
- package/lib/cjs/helpers.js.map +1 -0
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/mjs/exceptions.d.ts +7 -0
- package/lib/mjs/exceptions.d.ts.map +1 -1
- package/lib/mjs/exceptions.js +9 -0
- package/lib/mjs/exceptions.js.map +1 -1
- package/lib/mjs/fp.d.ts +6 -5
- package/lib/mjs/fp.d.ts.map +1 -1
- package/lib/mjs/fp.js +11 -54
- package/lib/mjs/fp.js.map +1 -1
- package/lib/mjs/helpers.d.ts +40 -0
- package/lib/mjs/helpers.d.ts.map +1 -0
- package/lib/mjs/helpers.js +80 -0
- package/lib/mjs/helpers.js.map +1 -0
- package/lib/mjs/index.d.ts +1 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +1 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +7 -7
package/lib/cjs/exceptions.d.ts
CHANGED
|
@@ -16,4 +16,11 @@ export declare class OrmException extends Exception {
|
|
|
16
16
|
*/
|
|
17
17
|
export declare class OrmNotFoundException extends OrmException {
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Exception thrown when insert / update / delete affected no rows
|
|
21
|
+
* eg. delete of an already deleted model
|
|
22
|
+
*/
|
|
23
|
+
export declare class NoRowsAffected extends OrmException {
|
|
24
|
+
constructor(message?: string);
|
|
25
|
+
}
|
|
19
26
|
//# sourceMappingURL=exceptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAAS,KAAK,CAAC,EAAE,MAAM;IAAS,QAAQ,CAAC,EAAG,GAAG;IAAS,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO;IAApJ,YAAY,OAAO,CAAC,EAAE,MAAM,EAAS,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAAA,EAAS,KAAK,CAAC,EAAE,MAAM,YAAA,EAAS,QAAQ,CAAC,EAAG,GAAG,EAAS,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,EAMnJ;IAEM,QAAQ,SAAK;CACrB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;CAAG"}
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAAS,KAAK,CAAC,EAAE,MAAM;IAAS,QAAQ,CAAC,EAAG,GAAG;IAAS,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO;IAApJ,YAAY,OAAO,CAAC,EAAE,MAAM,EAAS,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAAA,EAAS,KAAK,CAAC,EAAE,MAAM,YAAA,EAAS,QAAQ,CAAC,EAAG,GAAG,EAAS,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,EAMnJ;IAEM,QAAQ,SAAK;CACrB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;CAAG;AAEzD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,YAAY,OAAO,SAAkC,EAEpD;CACF"}
|
package/lib/cjs/exceptions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OrmNotFoundException = exports.OrmException = void 0;
|
|
3
|
+
exports.NoRowsAffected = exports.OrmNotFoundException = exports.OrmException = void 0;
|
|
4
4
|
const exceptions_1 = require("@spinajs/exceptions");
|
|
5
5
|
/**
|
|
6
6
|
* Exception thrown when functionality is not supported
|
|
@@ -25,4 +25,14 @@ exports.OrmException = OrmException;
|
|
|
25
25
|
class OrmNotFoundException extends OrmException {
|
|
26
26
|
}
|
|
27
27
|
exports.OrmNotFoundException = OrmNotFoundException;
|
|
28
|
+
/**
|
|
29
|
+
* Exception thrown when insert / update / delete affected no rows
|
|
30
|
+
* eg. delete of an already deleted model
|
|
31
|
+
*/
|
|
32
|
+
class NoRowsAffected extends OrmException {
|
|
33
|
+
constructor(message = 'No rows affected by the query') {
|
|
34
|
+
super(message);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.NoRowsAffected = NoRowsAffected;
|
|
28
38
|
//# sourceMappingURL=exceptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAGhD;;GAEG;AACH,kBAA0B,SAAQ,sBAAS;IACzC,YAAY,OAAgB,EAAS,MAAgC,EAAS,KAAc,EAAS,QAAe,EAAS,KAAuB;QAClJ,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;sBADa,MAAM;qBAAmC,KAAK;wBAAkB,QAAQ;qBAAgB,KAAK;QAGhI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,kDAAkD,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,sBAAsB,IAAI,CAAC,KAAK,IAAI,MAAM,cAAc,OAAO,EAAE,CAAC;QAChM,CAAC;IACH,CAAC;IAEM,QAAQ,KAAI,CAAC;CACrB;;AAED;;GAEG;AACH,0BAAkC,SAAQ,YAAY;CAAG"}
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAGhD;;GAEG;AACH,kBAA0B,SAAQ,sBAAS;IACzC,YAAY,OAAgB,EAAS,MAAgC,EAAS,KAAc,EAAS,QAAe,EAAS,KAAuB;QAClJ,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;sBADa,MAAM;qBAAmC,KAAK;wBAAkB,QAAQ;qBAAgB,KAAK;QAGhI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,kDAAkD,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,sBAAsB,IAAI,CAAC,KAAK,IAAI,MAAM,cAAc,OAAO,EAAE,CAAC;QAChM,CAAC;IACH,CAAC;IAEM,QAAQ,KAAI,CAAC;CACrB;;AAED;;GAEG;AACH,0BAAkC,SAAQ,YAAY;CAAG;;AAEzD;;;GAGG;AACH,oBAA4B,SAAQ,YAAY;IAC9C,YAAY,OAAO,GAAG,+BAA+B;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF"}
|
package/lib/cjs/fp.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Constructor } from '@spinajs/di';
|
|
2
2
|
import { InsertBehaviour } from './interfaces.js';
|
|
3
3
|
import { ModelBase } from './model.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Functional-style wrappers kept for compatibility and composability -
|
|
6
|
+
* each delegates to its imperative counterpart in helpers.ts.
|
|
7
|
+
*/
|
|
7
8
|
/**
|
|
8
9
|
*
|
|
9
10
|
* Gets entity from db
|
|
@@ -13,14 +14,14 @@ export declare enum E_ORM_CODES {
|
|
|
13
14
|
* @param fresh - if entity, should it refresh from DB ?
|
|
14
15
|
* @returns
|
|
15
16
|
*/
|
|
16
|
-
export declare function
|
|
17
|
+
export declare function _getEntity<T extends ModelBase>(idOrEntity: number | T, c: Constructor<T>, fresh?: boolean): () => Promise<T>;
|
|
17
18
|
/**
|
|
18
19
|
* Update model with data
|
|
19
20
|
*
|
|
20
21
|
* @param data data to update
|
|
21
22
|
* @returns
|
|
22
23
|
*/
|
|
23
|
-
export declare function _update<T extends ModelBase>(data?: Partial<T>): (
|
|
24
|
+
export declare function _update<T extends ModelBase>(data?: Partial<T>): (model: T) => Promise<T>;
|
|
24
25
|
/**
|
|
25
26
|
*
|
|
26
27
|
* Insert model into database
|
package/lib/cjs/fp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fp.d.ts","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"fp.d.ts","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC;;;GAGG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,oBAEzG;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAExF;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAE9G;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAEvE"}
|
package/lib/cjs/fp.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports._get_entity = _get_entity;
|
|
3
|
+
exports._getEntity = _getEntity;
|
|
8
4
|
exports._update = _update;
|
|
9
5
|
exports._insert = _insert;
|
|
10
6
|
exports._insertOrUpdate = _insertOrUpdate;
|
|
11
7
|
exports._delete = _delete;
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
})(E_ORM_CODES || (exports.E_ORM_CODES = E_ORM_CODES = {}));
|
|
8
|
+
const helpers_js_1 = require("./helpers.js");
|
|
9
|
+
/**
|
|
10
|
+
* Functional-style wrappers kept for compatibility and composability -
|
|
11
|
+
* each delegates to its imperative counterpart in helpers.ts.
|
|
12
|
+
*/
|
|
18
13
|
/**
|
|
19
14
|
*
|
|
20
15
|
* Gets entity from db
|
|
@@ -24,16 +19,8 @@ var E_ORM_CODES;
|
|
|
24
19
|
* @param fresh - if entity, should it refresh from DB ?
|
|
25
20
|
* @returns
|
|
26
21
|
*/
|
|
27
|
-
function
|
|
28
|
-
return
|
|
29
|
-
if (lodash_1.default.isNumber(idOrEntity)) {
|
|
30
|
-
return c.get(idOrEntity);
|
|
31
|
-
}
|
|
32
|
-
if (fresh) {
|
|
33
|
-
return idOrEntity.fresh();
|
|
34
|
-
}
|
|
35
|
-
return Promise.resolve(idOrEntity);
|
|
36
|
-
};
|
|
22
|
+
function _getEntity(idOrEntity, c, fresh) {
|
|
23
|
+
return () => (0, helpers_js_1.getEntity)(idOrEntity, c, fresh);
|
|
37
24
|
}
|
|
38
25
|
/**
|
|
39
26
|
* Update model with data
|
|
@@ -42,11 +29,7 @@ function _get_entity(idOrEntity, c, fresh) {
|
|
|
42
29
|
* @returns
|
|
43
30
|
*/
|
|
44
31
|
function _update(data) {
|
|
45
|
-
return (model) =>
|
|
46
|
-
// A clean model short-circuits to { RowsAffected: 0 } - that is a no-op success,
|
|
47
|
-
// not a failure, so we always resolve the model.
|
|
48
|
-
return model.update(data).then(() => model);
|
|
49
|
-
};
|
|
32
|
+
return (model) => (0, helpers_js_1.updateModel)(model, data);
|
|
50
33
|
}
|
|
51
34
|
/**
|
|
52
35
|
*
|
|
@@ -55,33 +38,10 @@ function _update(data) {
|
|
|
55
38
|
* @returns
|
|
56
39
|
*/
|
|
57
40
|
function _insert(behaviour) {
|
|
58
|
-
return (model) =>
|
|
59
|
-
if (lodash_1.default.isArray(model)) {
|
|
60
|
-
if (model.length === 0) {
|
|
61
|
-
return Promise.resolve(model);
|
|
62
|
-
}
|
|
63
|
-
return model[0].constructor.insert(model, behaviour).then((res) => {
|
|
64
|
-
// `uuid` and `assigned` primary keys report LastInsertId 0 on a successful insert, so
|
|
65
|
-
// only RowsAffected signals failure. See @Primary({ generated }) in the ORM docs.
|
|
66
|
-
if (res.RowsAffected <= 0) {
|
|
67
|
-
return Promise.reject(new exceptions_1.ErrorCode(E_ORM_CODES.E_NO_ROWS_AFFECTED));
|
|
68
|
-
}
|
|
69
|
-
return model;
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
return model.insert(behaviour).then((res) => {
|
|
73
|
-
if (res.RowsAffected <= 0) {
|
|
74
|
-
return Promise.reject(new exceptions_1.ErrorCode(E_ORM_CODES.E_NO_ROWS_AFFECTED));
|
|
75
|
-
}
|
|
76
|
-
return model;
|
|
77
|
-
});
|
|
78
|
-
};
|
|
41
|
+
return (model) => (0, helpers_js_1.insertModel)(model, behaviour);
|
|
79
42
|
}
|
|
80
43
|
function _insertOrUpdate() {
|
|
81
|
-
return (model) =>
|
|
82
|
-
// insertOrUpdate on a clean model is a no-op success (RowsAffected 0) - resolve the model.
|
|
83
|
-
return model.insertOrUpdate().then(() => model);
|
|
84
|
-
};
|
|
44
|
+
return (model) => (0, helpers_js_1.insertOrUpdateModel)(model);
|
|
85
45
|
}
|
|
86
46
|
/**
|
|
87
47
|
*
|
|
@@ -90,13 +50,6 @@ function _insertOrUpdate() {
|
|
|
90
50
|
* @returns
|
|
91
51
|
*/
|
|
92
52
|
function _delete() {
|
|
93
|
-
return (model) =>
|
|
94
|
-
return model.destroy().then((res) => {
|
|
95
|
-
if (res.RowsAffected <= 0) {
|
|
96
|
-
return Promise.reject(new exceptions_1.ErrorCode(E_ORM_CODES.E_NO_ROWS_AFFECTED));
|
|
97
|
-
}
|
|
98
|
-
return model;
|
|
99
|
-
});
|
|
100
|
-
};
|
|
53
|
+
return (model) => (0, helpers_js_1.deleteModel)(model);
|
|
101
54
|
}
|
|
102
55
|
//# sourceMappingURL=fp.js.map
|
package/lib/cjs/fp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fp.js","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fp.js","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":";;;;;;;AAGA,6CAAqG;AAErG;;;GAGG;AAEH;;;;;;;;GAQG;AACH,oBAAgD,UAAsB,EAAE,CAAiB,EAAE,KAAe;IACxG,OAAO,GAAG,EAAE,CAAC,IAAA,sBAAS,EAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,iBAA6C,IAAiB;IAC5D,OAAO,CAAC,KAAQ,EAAE,EAAE,CAAC,IAAA,wBAAW,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,iBAA6C,SAA2B;IACtE,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,wBAAW,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED;IACE,OAAO,CAAC,KAAQ,EAAE,EAAE,CAAC,IAAA,gCAAmB,EAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH;IACE,OAAO,CAAC,KAAQ,EAAE,EAAE,CAAC,IAAA,wBAAW,EAAC,KAAK,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Constructor } from '@spinajs/di';
|
|
2
|
+
import { InsertBehaviour } from './interfaces.js';
|
|
3
|
+
import { ModelBase } from './model.js';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* Gets entity from db
|
|
7
|
+
*
|
|
8
|
+
* @param idOrEntity - pkey or entity
|
|
9
|
+
* @param c - entity class constructor
|
|
10
|
+
* @param fresh - if entity, should it refresh from DB ?
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare function getEntity<T extends ModelBase>(idOrEntity: number | T, c: Constructor<T>, fresh?: boolean): Promise<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Update model with data
|
|
16
|
+
*
|
|
17
|
+
* @param model model to update
|
|
18
|
+
* @param data data to update
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare function updateModel<T extends ModelBase>(model: T, data?: Partial<T>): Promise<T>;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* Insert model into database
|
|
25
|
+
*
|
|
26
|
+
* @param model model or models to insert
|
|
27
|
+
* @param behaviour insert behaviour
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export declare function insertModel<T extends ModelBase>(model: T | T[], behaviour?: InsertBehaviour): Promise<T | T[]>;
|
|
31
|
+
export declare function insertOrUpdateModel<T extends ModelBase>(model: T): Promise<T>;
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* Delete model from database
|
|
35
|
+
*
|
|
36
|
+
* @param model model to delete
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
export declare function deleteModel<T extends ModelBase>(model: T): Promise<T>;
|
|
40
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAiB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAU3H;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAK9F;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAuBpH;AAED,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAInF;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO3E"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getEntity = getEntity;
|
|
7
|
+
exports.updateModel = updateModel;
|
|
8
|
+
exports.insertModel = insertModel;
|
|
9
|
+
exports.insertOrUpdateModel = insertOrUpdateModel;
|
|
10
|
+
exports.deleteModel = deleteModel;
|
|
11
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
12
|
+
const exceptions_js_1 = require("./exceptions.js");
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* Gets entity from db
|
|
16
|
+
*
|
|
17
|
+
* @param idOrEntity - pkey or entity
|
|
18
|
+
* @param c - entity class constructor
|
|
19
|
+
* @param fresh - if entity, should it refresh from DB ?
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
async function getEntity(idOrEntity, c, fresh) {
|
|
23
|
+
if (lodash_1.default.isNumber(idOrEntity)) {
|
|
24
|
+
return c.get(idOrEntity);
|
|
25
|
+
}
|
|
26
|
+
if (fresh) {
|
|
27
|
+
return idOrEntity.fresh();
|
|
28
|
+
}
|
|
29
|
+
return idOrEntity;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Update model with data
|
|
33
|
+
*
|
|
34
|
+
* @param model model to update
|
|
35
|
+
* @param data data to update
|
|
36
|
+
* @returns
|
|
37
|
+
*/
|
|
38
|
+
async function updateModel(model, data) {
|
|
39
|
+
// A clean model short-circuits to { RowsAffected: 0 } - that is a no-op success,
|
|
40
|
+
// not a failure, so we always resolve the model.
|
|
41
|
+
await model.update(data);
|
|
42
|
+
return model;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* Insert model into database
|
|
47
|
+
*
|
|
48
|
+
* @param model model or models to insert
|
|
49
|
+
* @param behaviour insert behaviour
|
|
50
|
+
* @returns
|
|
51
|
+
*/
|
|
52
|
+
async function insertModel(model, behaviour) {
|
|
53
|
+
if (lodash_1.default.isArray(model)) {
|
|
54
|
+
if (model.length === 0) {
|
|
55
|
+
return model;
|
|
56
|
+
}
|
|
57
|
+
const res = await model[0].constructor.insert(model, behaviour);
|
|
58
|
+
// `uuid` and `assigned` primary keys report LastInsertId 0 on a successful insert, so
|
|
59
|
+
// only RowsAffected signals failure. See @Primary({ generated }) in the ORM docs.
|
|
60
|
+
if (res.RowsAffected <= 0) {
|
|
61
|
+
throw new exceptions_js_1.NoRowsAffected();
|
|
62
|
+
}
|
|
63
|
+
return model;
|
|
64
|
+
}
|
|
65
|
+
const res = await model.insert(behaviour);
|
|
66
|
+
if (res.RowsAffected <= 0) {
|
|
67
|
+
throw new exceptions_js_1.NoRowsAffected();
|
|
68
|
+
}
|
|
69
|
+
return model;
|
|
70
|
+
}
|
|
71
|
+
async function insertOrUpdateModel(model) {
|
|
72
|
+
// insertOrUpdate on a clean model is a no-op success (RowsAffected 0) - resolve the model.
|
|
73
|
+
await model.insertOrUpdate();
|
|
74
|
+
return model;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
*
|
|
78
|
+
* Delete model from database
|
|
79
|
+
*
|
|
80
|
+
* @param model model to delete
|
|
81
|
+
* @returns
|
|
82
|
+
*/
|
|
83
|
+
async function deleteModel(model) {
|
|
84
|
+
const res = (await model.destroy());
|
|
85
|
+
if (res.RowsAffected <= 0) {
|
|
86
|
+
throw new exceptions_js_1.NoRowsAffected();
|
|
87
|
+
}
|
|
88
|
+
return model;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":";;;;;;;;;;AAGA,oDAAuB;AACvB,mDAAiD;AAEjD;;;;;;;;GAQG;AACI,KAAK,oBAAyC,UAAsB,EAAE,CAAiB,EAAE,KAAe;IAC7G,IAAI,gBAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAQ,CAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,UAAU,CAAC,KAAK,EAAgB,CAAC;IAC1C,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACI,KAAK,sBAA2C,KAAQ,EAAE,IAAiB;IAChF,iFAAiF;IACjF,iDAAiD;IACjD,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,sBAA2C,KAAc,EAAE,SAA2B;IAChG,IAAI,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAkB,MAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAgC,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAErG,sFAAsF;QACtF,kFAAkF;QAClF,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,8BAAc,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAkB,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,8BAAc,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,KAAK,8BAAmD,KAAQ;IACrE,2FAA2F;IAC3F,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;IAC7B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACI,KAAK,sBAA2C,KAAQ;IAC7D,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAkB,CAAC;IACrD,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,8BAAc,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export * from './unit-of-work.js';
|
|
|
38
38
|
export * from './driver.js';
|
|
39
39
|
export * from './quoting.js';
|
|
40
40
|
export * from './wrappers.js';
|
|
41
|
+
export * from './helpers.js';
|
|
41
42
|
export * from './fp.js';
|
|
42
43
|
export * from './bootstrap.js';
|
|
43
44
|
export * from './metadata.js';
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -54,6 +54,7 @@ __exportStar(require("./unit-of-work.js"), exports);
|
|
|
54
54
|
__exportStar(require("./driver.js"), exports);
|
|
55
55
|
__exportStar(require("./quoting.js"), exports);
|
|
56
56
|
__exportStar(require("./wrappers.js"), exports);
|
|
57
|
+
__exportStar(require("./helpers.js"), exports);
|
|
57
58
|
__exportStar(require("./fp.js"), exports);
|
|
58
59
|
__exportStar(require("./bootstrap.js"), exports);
|
|
59
60
|
__exportStar(require("./metadata.js"), exports);
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,6CAA2B;AAC3B,+CAA6B;AAC7B,mDAAiC;AACjC,6DAA2C;AAC3C,yDAAuC;AACvC,kDAAgC;AAChC,oDAAkC;AAClC,kDAAgC;AAChC,+CAA6B;AAC7B,8CAA4B;AAC5B,wDAAsC;AACtC,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,8DAA4C;AAC5C,6CAA2B;AAC3B,iDAA+B;AAC/B,wDAAsC;AACtC,mDAAiC;AACjC,yDAAuC;AACvC,wDAAsC;AACtC,iEAA+C;AAC/C,2CAAyB;AACzB,6CAA2B;AAC3B,iDAA+B;AAC/B,mDAAiC;AACjC,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,+CAA6B;AAC7B,uDAAqC;AACrC,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC;AAClC,8CAA4B;AAC5B,+CAA6B;AAC7B,gDAA8B;AAC9B,0CAAwB;AACxB,iDAA+B;AAC/B,gDAA8B;AAE9B,mFAAmF;AACnF,kDAAkD;AAClD,sFAAsF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,6CAA2B;AAC3B,+CAA6B;AAC7B,mDAAiC;AACjC,6DAA2C;AAC3C,yDAAuC;AACvC,kDAAgC;AAChC,oDAAkC;AAClC,kDAAgC;AAChC,+CAA6B;AAC7B,8CAA4B;AAC5B,wDAAsC;AACtC,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC;AAChC,gDAA8B;AAC9B,8DAA4C;AAC5C,6CAA2B;AAC3B,iDAA+B;AAC/B,wDAAsC;AACtC,mDAAiC;AACjC,yDAAuC;AACvC,wDAAsC;AACtC,iEAA+C;AAC/C,2CAAyB;AACzB,6CAA2B;AAC3B,iDAA+B;AAC/B,mDAAiC;AACjC,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,+CAA6B;AAC7B,uDAAqC;AACrC,sDAAoC;AACpC,wDAAsC;AACtC,oDAAkC;AAClC,8CAA4B;AAC5B,+CAA6B;AAC7B,gDAA8B;AAC9B,+CAA6B;AAC7B,0CAAwB;AACxB,iDAA+B;AAC/B,gDAA8B;AAE9B,mFAAmF;AACnF,kDAAkD;AAClD,sFAAsF"}
|
package/lib/mjs/exceptions.d.ts
CHANGED
|
@@ -16,4 +16,11 @@ export declare class OrmException extends Exception {
|
|
|
16
16
|
*/
|
|
17
17
|
export declare class OrmNotFoundException extends OrmException {
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Exception thrown when insert / update / delete affected no rows
|
|
21
|
+
* eg. delete of an already deleted model
|
|
22
|
+
*/
|
|
23
|
+
export declare class NoRowsAffected extends OrmException {
|
|
24
|
+
constructor(message?: string);
|
|
25
|
+
}
|
|
19
26
|
//# sourceMappingURL=exceptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAAS,KAAK,CAAC,EAAE,MAAM;IAAS,QAAQ,CAAC,EAAG,GAAG;IAAS,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO;IAApJ,YAAY,OAAO,CAAC,EAAE,MAAM,EAAS,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAAA,EAAS,KAAK,CAAC,EAAE,MAAM,YAAA,EAAS,QAAQ,CAAC,EAAG,GAAG,EAAS,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,EAMnJ;IAEM,QAAQ,SAAK;CACrB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;CAAG"}
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,qBAAa,YAAa,SAAQ,SAAS;IACJ,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAAS,KAAK,CAAC,EAAE,MAAM;IAAS,QAAQ,CAAC,EAAG,GAAG;IAAS,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO;IAApJ,YAAY,OAAO,CAAC,EAAE,MAAM,EAAS,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAAA,EAAS,KAAK,CAAC,EAAE,MAAM,YAAA,EAAS,QAAQ,CAAC,EAAG,GAAG,EAAS,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,EAMnJ;IAEM,QAAQ,SAAK;CACrB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;CAAG;AAEzD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,YAAY,OAAO,SAAkC,EAEpD;CACF"}
|
package/lib/mjs/exceptions.js
CHANGED
|
@@ -20,4 +20,13 @@ export class OrmException extends Exception {
|
|
|
20
20
|
*/
|
|
21
21
|
export class OrmNotFoundException extends OrmException {
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Exception thrown when insert / update / delete affected no rows
|
|
25
|
+
* eg. delete of an already deleted model
|
|
26
|
+
*/
|
|
27
|
+
export class NoRowsAffected extends OrmException {
|
|
28
|
+
constructor(message = 'No rows affected by the query') {
|
|
29
|
+
super(message);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
23
32
|
//# sourceMappingURL=exceptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,YAAY,OAAgB,EAAS,MAAgC,EAAS,KAAc,EAAS,QAAe,EAAS,KAAuB;QAClJ,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;sBADa,MAAM;qBAAmC,KAAK;wBAAkB,QAAQ;qBAAgB,KAAK;QAGhI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,kDAAkD,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,sBAAsB,IAAI,CAAC,KAAK,IAAI,MAAM,cAAc,OAAO,EAAE,CAAC;QAChM,CAAC;IACH,CAAC;IAEM,QAAQ,KAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;CAAG"}
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,YAAY,OAAgB,EAAS,MAAgC,EAAS,KAAc,EAAS,QAAe,EAAS,KAAuB;QAClJ,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;sBADa,MAAM;qBAAmC,KAAK;wBAAkB,QAAQ;qBAAgB,KAAK;QAGhI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,kDAAkD,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,sBAAsB,IAAI,CAAC,KAAK,IAAI,MAAM,cAAc,OAAO,EAAE,CAAC;QAChM,CAAC;IACH,CAAC;IAEM,QAAQ,KAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;CAAG;AAEzD;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC9C,YAAY,OAAO,GAAG,+BAA+B;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF"}
|
package/lib/mjs/fp.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Constructor } from '@spinajs/di';
|
|
2
2
|
import { InsertBehaviour } from './interfaces.js';
|
|
3
3
|
import { ModelBase } from './model.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Functional-style wrappers kept for compatibility and composability -
|
|
6
|
+
* each delegates to its imperative counterpart in helpers.ts.
|
|
7
|
+
*/
|
|
7
8
|
/**
|
|
8
9
|
*
|
|
9
10
|
* Gets entity from db
|
|
@@ -13,14 +14,14 @@ export declare enum E_ORM_CODES {
|
|
|
13
14
|
* @param fresh - if entity, should it refresh from DB ?
|
|
14
15
|
* @returns
|
|
15
16
|
*/
|
|
16
|
-
export declare function
|
|
17
|
+
export declare function _getEntity<T extends ModelBase>(idOrEntity: number | T, c: Constructor<T>, fresh?: boolean): () => Promise<T>;
|
|
17
18
|
/**
|
|
18
19
|
* Update model with data
|
|
19
20
|
*
|
|
20
21
|
* @param data data to update
|
|
21
22
|
* @returns
|
|
22
23
|
*/
|
|
23
|
-
export declare function _update<T extends ModelBase>(data?: Partial<T>): (
|
|
24
|
+
export declare function _update<T extends ModelBase>(data?: Partial<T>): (model: T) => Promise<T>;
|
|
24
25
|
/**
|
|
25
26
|
*
|
|
26
27
|
* Insert model into database
|
package/lib/mjs/fp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fp.d.ts","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"fp.d.ts","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC;;;GAGG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,oBAEzG;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAExF;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAE9G;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAEvE"}
|
package/lib/mjs/fp.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
})(E_ORM_CODES || (E_ORM_CODES = {}));
|
|
1
|
+
import { deleteModel, getEntity, insertModel, insertOrUpdateModel, updateModel } from './helpers.js';
|
|
2
|
+
/**
|
|
3
|
+
* Functional-style wrappers kept for compatibility and composability -
|
|
4
|
+
* each delegates to its imperative counterpart in helpers.ts.
|
|
5
|
+
*/
|
|
7
6
|
/**
|
|
8
7
|
*
|
|
9
8
|
* Gets entity from db
|
|
@@ -13,16 +12,8 @@ export var E_ORM_CODES;
|
|
|
13
12
|
* @param fresh - if entity, should it refresh from DB ?
|
|
14
13
|
* @returns
|
|
15
14
|
*/
|
|
16
|
-
export function
|
|
17
|
-
return
|
|
18
|
-
if (_.isNumber(idOrEntity)) {
|
|
19
|
-
return c.get(idOrEntity);
|
|
20
|
-
}
|
|
21
|
-
if (fresh) {
|
|
22
|
-
return idOrEntity.fresh();
|
|
23
|
-
}
|
|
24
|
-
return Promise.resolve(idOrEntity);
|
|
25
|
-
};
|
|
15
|
+
export function _getEntity(idOrEntity, c, fresh) {
|
|
16
|
+
return () => getEntity(idOrEntity, c, fresh);
|
|
26
17
|
}
|
|
27
18
|
/**
|
|
28
19
|
* Update model with data
|
|
@@ -31,11 +22,7 @@ export function _get_entity(idOrEntity, c, fresh) {
|
|
|
31
22
|
* @returns
|
|
32
23
|
*/
|
|
33
24
|
export function _update(data) {
|
|
34
|
-
return (model) =>
|
|
35
|
-
// A clean model short-circuits to { RowsAffected: 0 } - that is a no-op success,
|
|
36
|
-
// not a failure, so we always resolve the model.
|
|
37
|
-
return model.update(data).then(() => model);
|
|
38
|
-
};
|
|
25
|
+
return (model) => updateModel(model, data);
|
|
39
26
|
}
|
|
40
27
|
/**
|
|
41
28
|
*
|
|
@@ -44,33 +31,10 @@ export function _update(data) {
|
|
|
44
31
|
* @returns
|
|
45
32
|
*/
|
|
46
33
|
export function _insert(behaviour) {
|
|
47
|
-
return (model) =>
|
|
48
|
-
if (_.isArray(model)) {
|
|
49
|
-
if (model.length === 0) {
|
|
50
|
-
return Promise.resolve(model);
|
|
51
|
-
}
|
|
52
|
-
return model[0].constructor.insert(model, behaviour).then((res) => {
|
|
53
|
-
// `uuid` and `assigned` primary keys report LastInsertId 0 on a successful insert, so
|
|
54
|
-
// only RowsAffected signals failure. See @Primary({ generated }) in the ORM docs.
|
|
55
|
-
if (res.RowsAffected <= 0) {
|
|
56
|
-
return Promise.reject(new ErrorCode(E_ORM_CODES.E_NO_ROWS_AFFECTED));
|
|
57
|
-
}
|
|
58
|
-
return model;
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
return model.insert(behaviour).then((res) => {
|
|
62
|
-
if (res.RowsAffected <= 0) {
|
|
63
|
-
return Promise.reject(new ErrorCode(E_ORM_CODES.E_NO_ROWS_AFFECTED));
|
|
64
|
-
}
|
|
65
|
-
return model;
|
|
66
|
-
});
|
|
67
|
-
};
|
|
34
|
+
return (model) => insertModel(model, behaviour);
|
|
68
35
|
}
|
|
69
36
|
export function _insertOrUpdate() {
|
|
70
|
-
return (model) =>
|
|
71
|
-
// insertOrUpdate on a clean model is a no-op success (RowsAffected 0) - resolve the model.
|
|
72
|
-
return model.insertOrUpdate().then(() => model);
|
|
73
|
-
};
|
|
37
|
+
return (model) => insertOrUpdateModel(model);
|
|
74
38
|
}
|
|
75
39
|
/**
|
|
76
40
|
*
|
|
@@ -79,13 +43,6 @@ export function _insertOrUpdate() {
|
|
|
79
43
|
* @returns
|
|
80
44
|
*/
|
|
81
45
|
export function _delete() {
|
|
82
|
-
return (model) =>
|
|
83
|
-
return model.destroy().then((res) => {
|
|
84
|
-
if (res.RowsAffected <= 0) {
|
|
85
|
-
return Promise.reject(new ErrorCode(E_ORM_CODES.E_NO_ROWS_AFFECTED));
|
|
86
|
-
}
|
|
87
|
-
return model;
|
|
88
|
-
});
|
|
89
|
-
};
|
|
46
|
+
return (model) => deleteModel(model);
|
|
90
47
|
}
|
|
91
48
|
//# sourceMappingURL=fp.js.map
|
package/lib/mjs/fp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fp.js","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"fp.js","sourceRoot":"","sources":["../../src/fp.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAErG;;;GAGG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAsB,UAAsB,EAAE,CAAiB,EAAE,KAAe;IACxG,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAsB,IAAiB;IAC5D,OAAO,CAAC,KAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAsB,SAA2B;IACtE,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,KAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,KAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Constructor } from '@spinajs/di';
|
|
2
|
+
import { InsertBehaviour } from './interfaces.js';
|
|
3
|
+
import { ModelBase } from './model.js';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* Gets entity from db
|
|
7
|
+
*
|
|
8
|
+
* @param idOrEntity - pkey or entity
|
|
9
|
+
* @param c - entity class constructor
|
|
10
|
+
* @param fresh - if entity, should it refresh from DB ?
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
export declare function getEntity<T extends ModelBase>(idOrEntity: number | T, c: Constructor<T>, fresh?: boolean): Promise<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Update model with data
|
|
16
|
+
*
|
|
17
|
+
* @param model model to update
|
|
18
|
+
* @param data data to update
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
export declare function updateModel<T extends ModelBase>(model: T, data?: Partial<T>): Promise<T>;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* Insert model into database
|
|
25
|
+
*
|
|
26
|
+
* @param model model or models to insert
|
|
27
|
+
* @param behaviour insert behaviour
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export declare function insertModel<T extends ModelBase>(model: T | T[], behaviour?: InsertBehaviour): Promise<T | T[]>;
|
|
31
|
+
export declare function insertOrUpdateModel<T extends ModelBase>(model: T): Promise<T>;
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* Delete model from database
|
|
35
|
+
*
|
|
36
|
+
* @param model model to delete
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
export declare function deleteModel<T extends ModelBase>(model: T): Promise<T>;
|
|
40
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAiB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAU3H;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAK9F;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAuBpH;AAED,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAInF;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAO3E"}
|