spice-js 2.5.24 → 2.5.25
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/build/models/SpiceModel.js +38 -26
- package/package.json +1 -1
- package/src/models/SpiceModel.js +13 -7
|
@@ -24,7 +24,9 @@ var SDate = require("sonover-date"),
|
|
|
24
24
|
_ = require("lodash"),
|
|
25
25
|
_database = Symbol(),
|
|
26
26
|
_props = Symbol(),
|
|
27
|
+
_args = Symbol(),
|
|
27
28
|
_hooks = Symbol(),
|
|
29
|
+
_disable_lifecycle_events = Symbol(),
|
|
28
30
|
_serializers = Symbol();
|
|
29
31
|
|
|
30
32
|
var that;
|
|
@@ -46,11 +48,15 @@ class SpiceModel {
|
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
try {
|
|
51
|
+
var _args$args;
|
|
52
|
+
|
|
49
53
|
var dbtype = spice.config.database.connections[args.connection].type || "couchbase";
|
|
50
54
|
|
|
51
55
|
var Database = require("spice-" + dbtype);
|
|
52
56
|
|
|
53
57
|
this.type = "";
|
|
58
|
+
this[_args] = args.args;
|
|
59
|
+
this[_disable_lifecycle_events] = ((_args$args = args.args) == null ? void 0 : _args$args.disable_lifecycle_events) || false;
|
|
54
60
|
this[_hooks] = {
|
|
55
61
|
create: {
|
|
56
62
|
before: [],
|
|
@@ -719,16 +725,18 @@ class SpiceModel {
|
|
|
719
725
|
|
|
720
726
|
return _asyncToGenerator(function* () {
|
|
721
727
|
try {
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
data
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
728
|
+
if (_this9[_disable_lifecycle_events] == false) {
|
|
729
|
+
var resourceLifecycleTriggered = new _ResourceLifecycleTriggered.default({
|
|
730
|
+
data: {
|
|
731
|
+
data,
|
|
732
|
+
operation: op,
|
|
733
|
+
when,
|
|
734
|
+
old_data,
|
|
735
|
+
resource: _this9.type
|
|
736
|
+
}
|
|
737
|
+
});
|
|
738
|
+
resourceLifecycleTriggered.dispatch();
|
|
739
|
+
}
|
|
732
740
|
|
|
733
741
|
if (_this9[_hooks] && _this9[_hooks][op] && _this9[_hooks][op][when]) {
|
|
734
742
|
for (var i of _this9[_hooks][op][when]) {
|
|
@@ -764,6 +772,8 @@ class SpiceModel {
|
|
|
764
772
|
}
|
|
765
773
|
|
|
766
774
|
mapToObject(data, Class, source_property, store_property, property) {
|
|
775
|
+
var _this10 = this;
|
|
776
|
+
|
|
767
777
|
return _asyncToGenerator(function* () {
|
|
768
778
|
var original_is_array = _.isArray(data);
|
|
769
779
|
|
|
@@ -781,7 +791,7 @@ class SpiceModel {
|
|
|
781
791
|
});
|
|
782
792
|
|
|
783
793
|
var returned_all = yield Promise.allSettled(_.map(classes, obj => {
|
|
784
|
-
return new obj().getMulti({
|
|
794
|
+
return new obj(_this10[_args]).getMulti({
|
|
785
795
|
ids: ids
|
|
786
796
|
});
|
|
787
797
|
}));
|
|
@@ -799,6 +809,8 @@ class SpiceModel {
|
|
|
799
809
|
}
|
|
800
810
|
|
|
801
811
|
mapToObjectArray(data, Class, source_property, store_property, property) {
|
|
812
|
+
var _this11 = this;
|
|
813
|
+
|
|
802
814
|
return _asyncToGenerator(function* () {
|
|
803
815
|
var original_is_array = _.isArray(data);
|
|
804
816
|
|
|
@@ -826,7 +838,7 @@ class SpiceModel {
|
|
|
826
838
|
|
|
827
839
|
var classes = _.isArray(Class) ? Class : [Class];
|
|
828
840
|
var returned_all = yield Promise.allSettled(_.map(classes, obj => {
|
|
829
|
-
return new obj().getMulti({
|
|
841
|
+
return new obj(_this11[_args]).getMulti({
|
|
830
842
|
ids: ids
|
|
831
843
|
});
|
|
832
844
|
}));
|
|
@@ -873,7 +885,7 @@ class SpiceModel {
|
|
|
873
885
|
}
|
|
874
886
|
|
|
875
887
|
createMofifier(properties) {
|
|
876
|
-
var
|
|
888
|
+
var _this12 = this;
|
|
877
889
|
|
|
878
890
|
var _loop = function _loop(i) {
|
|
879
891
|
if (properties[i].map) {
|
|
@@ -884,11 +896,11 @@ class SpiceModel {
|
|
|
884
896
|
case String:
|
|
885
897
|
case "string":
|
|
886
898
|
{
|
|
887
|
-
|
|
899
|
+
_this12.addModifier({
|
|
888
900
|
when: properties[i].map.when || "read",
|
|
889
901
|
execute: function () {
|
|
890
902
|
var _execute = _asyncToGenerator(function* (data) {
|
|
891
|
-
return yield
|
|
903
|
+
return yield _this12.mapToObject(data, _.isString(properties[i].map.reference) ? spice.models[properties[i].map.reference] : properties[i].map.reference, i, properties[i].map.destination || i, properties[i]);
|
|
892
904
|
});
|
|
893
905
|
|
|
894
906
|
function execute(_x) {
|
|
@@ -905,11 +917,11 @@ class SpiceModel {
|
|
|
905
917
|
case Array:
|
|
906
918
|
case "array":
|
|
907
919
|
{
|
|
908
|
-
|
|
920
|
+
_this12.addModifier({
|
|
909
921
|
when: properties[i].map.when || "read",
|
|
910
922
|
execute: function () {
|
|
911
923
|
var _execute2 = _asyncToGenerator(function* (data) {
|
|
912
|
-
return yield
|
|
924
|
+
return yield _this12.mapToObjectArray(data, _.isString(properties[i].map.reference) ? spice.models[properties[i].map.reference] : properties[i].map.reference, i, properties[i].map.destination || i, properties[i]);
|
|
913
925
|
});
|
|
914
926
|
|
|
915
927
|
function execute(_x2) {
|
|
@@ -941,13 +953,13 @@ class SpiceModel {
|
|
|
941
953
|
}
|
|
942
954
|
|
|
943
955
|
do_serialize(data, type, old_data, args) {
|
|
944
|
-
var
|
|
956
|
+
var _this13 = this;
|
|
945
957
|
|
|
946
958
|
return _asyncToGenerator(function* () {
|
|
947
959
|
try {
|
|
948
960
|
// run serializers
|
|
949
|
-
if (
|
|
950
|
-
for (var i of
|
|
961
|
+
if (_this13.shouldSerializerRun(args, type)) {
|
|
962
|
+
for (var i of _this13[_serializers][type]["modifiers"]) {
|
|
951
963
|
try {
|
|
952
964
|
data = yield i(data, old_data);
|
|
953
965
|
} catch (e) {
|
|
@@ -965,12 +977,12 @@ class SpiceModel {
|
|
|
965
977
|
|
|
966
978
|
var defaults = {};
|
|
967
979
|
|
|
968
|
-
for (var _i in
|
|
969
|
-
if (
|
|
970
|
-
defaults[_i] = _.isFunction(
|
|
980
|
+
for (var _i in _this13.props) {
|
|
981
|
+
if (_this13.props[_i].defaults != undefined && _this13.props[_i].defaults[type] != undefined && _this13.props[_i].defaults[type] != undefined) {
|
|
982
|
+
defaults[_i] = _.isFunction(_this13.props[_i].defaults[type]) ? _this13.props[_i].defaults[type]({
|
|
971
983
|
old_data: data,
|
|
972
984
|
new_data: old_data
|
|
973
|
-
}) :
|
|
985
|
+
}) : _this13.props[_i].defaults[type];
|
|
974
986
|
}
|
|
975
987
|
} // apply defaults
|
|
976
988
|
|
|
@@ -983,8 +995,8 @@ class SpiceModel {
|
|
|
983
995
|
if (type == "read") {
|
|
984
996
|
var props_to_clean = ["deleted", "type"];
|
|
985
997
|
|
|
986
|
-
for (var _i3 in
|
|
987
|
-
if (
|
|
998
|
+
for (var _i3 in _this13.props) {
|
|
999
|
+
if (_this13.props[_i3].hide) {
|
|
988
1000
|
props_to_clean.push(_i3);
|
|
989
1001
|
}
|
|
990
1002
|
}
|
package/package.json
CHANGED
package/src/models/SpiceModel.js
CHANGED
|
@@ -10,7 +10,9 @@ var SDate = require("sonover-date"),
|
|
|
10
10
|
_ = require("lodash"),
|
|
11
11
|
_database = Symbol(),
|
|
12
12
|
_props = Symbol(),
|
|
13
|
+
_args = Symbol(),
|
|
13
14
|
_hooks = Symbol(),
|
|
15
|
+
_disable_lifecycle_events = Symbol(),
|
|
14
16
|
_serializers = Symbol();
|
|
15
17
|
let that;
|
|
16
18
|
if (!Promise.allSettled) {
|
|
@@ -36,7 +38,9 @@ export default class SpiceModel {
|
|
|
36
38
|
spice.config.database.connections[args.connection].type || "couchbase";
|
|
37
39
|
let Database = require(`spice-${dbtype}`);
|
|
38
40
|
this.type = "";
|
|
39
|
-
|
|
41
|
+
this[_args] = args.args;
|
|
42
|
+
this[_disable_lifecycle_events] =
|
|
43
|
+
args.args?.disable_lifecycle_events || false;
|
|
40
44
|
this[_hooks] = {
|
|
41
45
|
create: {
|
|
42
46
|
before: [],
|
|
@@ -611,10 +615,12 @@ export default class SpiceModel {
|
|
|
611
615
|
|
|
612
616
|
async run_hook(data, op, when, old_data) {
|
|
613
617
|
try {
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
+
if (this[_disable_lifecycle_events] == false) {
|
|
619
|
+
let resourceLifecycleTriggered = new ResourceLifecycleTriggered({
|
|
620
|
+
data: { data, operation: op, when, old_data, resource: this.type },
|
|
621
|
+
});
|
|
622
|
+
resourceLifecycleTriggered.dispatch();
|
|
623
|
+
}
|
|
618
624
|
if (this[_hooks] && this[_hooks][op] && this[_hooks][op][when]) {
|
|
619
625
|
for (let i of this[_hooks][op][when]) {
|
|
620
626
|
data = await i(data, old_data);
|
|
@@ -661,7 +667,7 @@ export default class SpiceModel {
|
|
|
661
667
|
|
|
662
668
|
var returned_all = await Promise.allSettled(
|
|
663
669
|
_.map(classes, (obj) => {
|
|
664
|
-
return new obj().getMulti({
|
|
670
|
+
return new obj(this[_args]).getMulti({
|
|
665
671
|
ids: ids,
|
|
666
672
|
});
|
|
667
673
|
})
|
|
@@ -712,7 +718,7 @@ export default class SpiceModel {
|
|
|
712
718
|
let classes = _.isArray(Class) ? Class : [Class];
|
|
713
719
|
var returned_all = await Promise.allSettled(
|
|
714
720
|
_.map(classes, (obj) => {
|
|
715
|
-
return new obj().getMulti({
|
|
721
|
+
return new obj(this[_args]).getMulti({
|
|
716
722
|
ids: ids,
|
|
717
723
|
});
|
|
718
724
|
})
|