spice-js 2.6.22 → 2.6.24
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.
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _path = _interopRequireDefault(require("path"));
|
|
4
|
+
|
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
|
|
7
|
+
spice.routers = {};
|
|
8
|
+
|
|
9
|
+
var paths = _path.default.join(spice.root_path, "schema_extenders");
|
|
10
|
+
|
|
11
|
+
spice.schemaExtenders = {};
|
|
12
|
+
|
|
13
|
+
require("fs").readdirSync(paths).forEach(function (file) {
|
|
14
|
+
if (file != "index.js") {
|
|
15
|
+
var extender = require(_path.default.join(paths, file));
|
|
16
|
+
|
|
17
|
+
spice.schemaExtenders[file.split(".")[0]] = extender;
|
|
18
|
+
spice.schema_extenders = spice.schemaExtenders;
|
|
19
|
+
}
|
|
20
|
+
});
|
package/build/loaders/index.js
CHANGED
|
@@ -15,7 +15,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
|
|
|
15
15
|
|
|
16
16
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
17
17
|
|
|
18
|
-
var ordered_modules = ["database", "map", "logger", "error"];
|
|
18
|
+
var ordered_modules = ["schema_extenders", "database", "map", "logger", "error"];
|
|
19
19
|
var last_modules = ["views", "routes"];
|
|
20
20
|
|
|
21
21
|
function load() {
|
|
@@ -117,7 +117,50 @@ class SpiceModel {
|
|
|
117
117
|
return returnVal;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
function applySchemaOverrides(props, resource) {
|
|
121
|
+
spice.schema_extenders = spice.schema_extenders || [];
|
|
122
|
+
|
|
123
|
+
function applyExtenderModifier(prop, resource, extender) {
|
|
124
|
+
if (extender.modifier) {
|
|
125
|
+
return extender.modifier(prop, resource);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return prop;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function hasExtender(resource, prop, extender) {
|
|
132
|
+
if (extender.selector(prop, resource)) {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function resourceHasExtender(resource, extender) {
|
|
140
|
+
return extender.resource.includes(resource) || extender.resource.includes("*");
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
for (var file_name in spice.schema_extenders) {
|
|
144
|
+
var extender = spice.schema_extenders[file_name];
|
|
145
|
+
|
|
146
|
+
if (resourceHasExtender(resource, extender)) {
|
|
147
|
+
for (var j in props) {
|
|
148
|
+
if (hasExtender(resource, props[j], extender)) {
|
|
149
|
+
props[j] = applyExtenderModifier(props[j], resource, extender);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (extender == null ? void 0 : extender.creator) {
|
|
154
|
+
props = _.merge(props, extender.creator(resource));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return props;
|
|
159
|
+
}
|
|
160
|
+
} //console.log("Applying Overrides to :", this.collection,'||', args.collection)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
args.props = applySchemaOverrides(removeDynamicProps(args.props), args.collection);
|
|
121
164
|
this[_props] = args.props;
|
|
122
165
|
|
|
123
166
|
for (var i in args.props) {
|
|
@@ -732,9 +775,16 @@ class SpiceModel {
|
|
|
732
775
|
var _this9 = this;
|
|
733
776
|
|
|
734
777
|
return _asyncToGenerator(function* () {
|
|
778
|
+
if (args === void 0) {
|
|
779
|
+
args = {};
|
|
780
|
+
}
|
|
781
|
+
|
|
735
782
|
try {
|
|
736
783
|
var form;
|
|
737
784
|
_this9.created_at = new SDate().now();
|
|
785
|
+
args = _.defaults(args, {
|
|
786
|
+
id_prefix: _this9.type
|
|
787
|
+
});
|
|
738
788
|
|
|
739
789
|
if (args.body) {
|
|
740
790
|
form = _.defaults({}, args.body);
|
package/package.json
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
|
|
3
|
+
spice.routers = {};
|
|
4
|
+
|
|
5
|
+
let paths = path.join(spice.root_path, "schema_extenders");
|
|
6
|
+
spice.schemaExtenders = {};
|
|
7
|
+
require("fs")
|
|
8
|
+
.readdirSync(paths)
|
|
9
|
+
.forEach(function (file) {
|
|
10
|
+
if (file != "index.js") {
|
|
11
|
+
let extender = require(path.join(paths, file));
|
|
12
|
+
spice.schemaExtenders[file.split(".")[0]] = extender;
|
|
13
|
+
spice.schema_extenders = spice.schemaExtenders;
|
|
14
|
+
}
|
|
15
|
+
});
|
package/src/loaders/index.js
CHANGED
|
@@ -2,7 +2,13 @@ import path from "path";
|
|
|
2
2
|
import fs from "fs";
|
|
3
3
|
import _ from "lodash";
|
|
4
4
|
|
|
5
|
-
let ordered_modules = [
|
|
5
|
+
let ordered_modules = [
|
|
6
|
+
"schema_extenders",
|
|
7
|
+
"database",
|
|
8
|
+
"map",
|
|
9
|
+
"logger",
|
|
10
|
+
"error",
|
|
11
|
+
];
|
|
6
12
|
let last_modules = ["views", "routes"];
|
|
7
13
|
export async function load() {
|
|
8
14
|
try {
|
package/src/models/SpiceModel.js
CHANGED
|
@@ -102,7 +102,55 @@ export default class SpiceModel {
|
|
|
102
102
|
}
|
|
103
103
|
return returnVal;
|
|
104
104
|
}
|
|
105
|
-
|
|
105
|
+
|
|
106
|
+
function applySchemaOverrides(props, resource) {
|
|
107
|
+
spice.schema_extenders = spice.schema_extenders || [];
|
|
108
|
+
|
|
109
|
+
function applyExtenderModifier(prop, resource, extender) {
|
|
110
|
+
if (extender.modifier) {
|
|
111
|
+
return extender.modifier(prop, resource);
|
|
112
|
+
}
|
|
113
|
+
return prop;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function hasExtender(resource, prop, extender) {
|
|
117
|
+
if (extender.selector(prop, resource)) {
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function resourceHasExtender(resource, extender) {
|
|
124
|
+
return (
|
|
125
|
+
extender.resource.includes(resource) ||
|
|
126
|
+
extender.resource.includes("*")
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
for (let file_name in spice.schema_extenders) {
|
|
131
|
+
let extender = spice.schema_extenders[file_name];
|
|
132
|
+
if (resourceHasExtender(resource, extender)) {
|
|
133
|
+
|
|
134
|
+
for (let j in props) {
|
|
135
|
+
if (hasExtender(resource, props[j], extender)) {
|
|
136
|
+
|
|
137
|
+
props[j] = applyExtenderModifier(props[j], resource, extender);
|
|
138
|
+
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (extender?.creator) {
|
|
142
|
+
|
|
143
|
+
props = _.merge(props, extender.creator(resource));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return props;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//console.log("Applying Overrides to :", this.collection,'||', args.collection)
|
|
150
|
+
args.props = applySchemaOverrides(
|
|
151
|
+
removeDynamicProps(args.props),
|
|
152
|
+
args.collection
|
|
153
|
+
);
|
|
106
154
|
this[_props] = args.props;
|
|
107
155
|
for (let i in args.props) {
|
|
108
156
|
if (args.args != undefined) {
|
|
@@ -649,10 +697,11 @@ export default class SpiceModel {
|
|
|
649
697
|
}
|
|
650
698
|
}
|
|
651
699
|
|
|
652
|
-
async create(args) {
|
|
700
|
+
async create(args = {}) {
|
|
653
701
|
try {
|
|
654
702
|
let form;
|
|
655
703
|
this.created_at = new SDate().now();
|
|
704
|
+
args = _.defaults(args, { id_prefix: this.type });
|
|
656
705
|
if (args.body) {
|
|
657
706
|
form = _.defaults({}, args.body);
|
|
658
707
|
form.created_at = this.created_at;
|