spice-js 2.5.2 → 2.5.6
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/bootstrap/event.js +4 -3
- package/build/bootstrap/map.js +38 -0
- package/build/events/providers/SocketEventDriver.js +7 -16
- package/build/events/providers/SpiceEventDriver.js +2 -2
- package/build/index.js +8 -0
- package/build/loaders/index.js +3 -1
- package/build/models/SpiceModel.js +4 -3
- package/gulpfile.js +29 -26
- package/package.json +1 -1
- package/src/bootstrap/event.js +3 -4
- package/src/bootstrap/map.js +20 -0
- package/src/events/providers/SocketEventDriver.js +4 -4
- package/src/events/providers/SpiceEventDriver.js +1 -1
- package/src/index.js +6 -0
- package/src/loaders/index.js +3 -3
- package/src/models/SpiceModel.js +27 -10
package/build/bootstrap/event.js
CHANGED
|
@@ -6,9 +6,11 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
6
6
|
|
|
7
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
8
|
|
|
9
|
-
var EventEmitter = require("events")
|
|
9
|
+
var EventEmitter = require("events");
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
class MyEmitter extends EventEmitter {}
|
|
12
|
+
|
|
13
|
+
var myEmitter = new MyEmitter();
|
|
12
14
|
spice.EventEmitter = myEmitter;
|
|
13
15
|
|
|
14
16
|
var eventingManifest = require(_path.default.resolve(_path.default.join(spice.root_path, "/eventing/manifest.js")));
|
|
@@ -17,7 +19,6 @@ _lodash.default.each(eventingManifest.default, entry => {
|
|
|
17
19
|
var topic = new entry.event().topic;
|
|
18
20
|
var Processor = spice.config.event.providers[new entry.event().driver || spice.config.event.default_driver];
|
|
19
21
|
var processor = new Processor();
|
|
20
|
-
console.log(processor);
|
|
21
22
|
|
|
22
23
|
_lodash.default.each(entry.handlers, handler => {
|
|
23
24
|
processor.on(topic, new handler().handle);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _path = _interopRequireDefault(require("path"));
|
|
4
|
+
|
|
5
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
|
+
|
|
7
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
|
8
|
+
|
|
9
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
10
|
+
|
|
11
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
12
|
+
|
|
13
|
+
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); }); }; }
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
var resources = ["models", "controllers"];
|
|
17
|
+
console.log(":::::::::::::STARTING MAP:::::::::::::");
|
|
18
|
+
resources.every(resource => {
|
|
19
|
+
var paths = _path.default.join(spice.root_path, resource);
|
|
20
|
+
|
|
21
|
+
spice[resource] = {};
|
|
22
|
+
|
|
23
|
+
require("fs").readdirSync(paths).forEach(
|
|
24
|
+
/*#__PURE__*/
|
|
25
|
+
function () {
|
|
26
|
+
var _ref = _asyncToGenerator(function* (file) {
|
|
27
|
+
console.log("Loading:", file);
|
|
28
|
+
spice[resource][file.split(".")[0]] = (yield Promise.resolve("".concat(_path.default.join(paths, file))).then(s => _interopRequireWildcard(require(s)))).default;
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
return function (_x) {
|
|
32
|
+
return _ref.apply(this, arguments);
|
|
33
|
+
};
|
|
34
|
+
}());
|
|
35
|
+
});
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.log(error);
|
|
38
|
+
}
|
|
@@ -5,24 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class SpiceEventDriver {
|
|
13
|
-
dispatch() {
|
|
14
|
-
var {
|
|
15
|
-
topic,
|
|
16
|
-
data
|
|
17
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
8
|
+
//import io from "socket.io-client";
|
|
9
|
+
class SocketEventDriver {
|
|
10
|
+
/*dispatch({ topic, data } = {}) {
|
|
18
11
|
spice.io.broadcast(topic, data);
|
|
19
12
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
var socket = (0, _socket.default)("http://localhost:3005");
|
|
13
|
+
on(topic, callback) {
|
|
14
|
+
var socket = io("http://localhost:3005");
|
|
23
15
|
socket.on(topic, callback);
|
|
24
|
-
}
|
|
25
|
-
|
|
16
|
+
}*/
|
|
26
17
|
}
|
|
27
18
|
|
|
28
|
-
exports.default =
|
|
19
|
+
exports.default = SocketEventDriver;
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
class
|
|
8
|
+
class SpiceEventDriver {
|
|
9
9
|
dispatch() {
|
|
10
10
|
var {
|
|
11
11
|
topic,
|
|
@@ -20,4 +20,4 @@ class SocketEventDriver {
|
|
|
20
20
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
exports.default =
|
|
23
|
+
exports.default = SpiceEventDriver;
|
package/build/index.js
CHANGED
|
@@ -210,6 +210,14 @@ class Spice {
|
|
|
210
210
|
spice.config = yield require("./loaders/config")();
|
|
211
211
|
io.attach(app);
|
|
212
212
|
spice.io = io;
|
|
213
|
+
io.on("message", (ctx, data) => {
|
|
214
|
+
console.log("client sent data to message endpoint", data);
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
app._io.on("connection", sock => {
|
|
218
|
+
console.log("Connection Up", sock);
|
|
219
|
+
});
|
|
220
|
+
|
|
213
221
|
app.use(koaSwagger({
|
|
214
222
|
hideTopbar: true,
|
|
215
223
|
title: "Spice JS",
|
package/build/loaders/index.js
CHANGED
|
@@ -17,7 +17,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
|
|
|
17
17
|
|
|
18
18
|
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); }); }; }
|
|
19
19
|
|
|
20
|
-
var ordered_modules = ["logger", "error", "database", "views", "routes"];
|
|
20
|
+
var ordered_modules = ["map", "logger", "error", "database", "views", "routes"];
|
|
21
21
|
|
|
22
22
|
function load() {
|
|
23
23
|
return _load.apply(this, arguments);
|
|
@@ -35,6 +35,8 @@ function _load() {
|
|
|
35
35
|
console.log('APP Bootstrap directory', app_bootstrap_path); */
|
|
36
36
|
|
|
37
37
|
|
|
38
|
+
console.log("Loading Ordered Files", ordered_modules);
|
|
39
|
+
|
|
38
40
|
for (var file of ordered_modules) {
|
|
39
41
|
var mod = require(_path.default.join(bootstrap_path, file));
|
|
40
42
|
|
|
@@ -314,7 +314,7 @@ class SpiceModel {
|
|
|
314
314
|
}
|
|
315
315
|
|
|
316
316
|
if (omit.length > 0) {
|
|
317
|
-
working_properties = _.omit(this.props,
|
|
317
|
+
working_properties = _.omit(this.props, omit);
|
|
318
318
|
}
|
|
319
319
|
|
|
320
320
|
for (var i in working_properties) {
|
|
@@ -857,7 +857,7 @@ class SpiceModel {
|
|
|
857
857
|
when: properties[i].map.when || "read",
|
|
858
858
|
execute: function () {
|
|
859
859
|
var _execute = _asyncToGenerator(function* (data) {
|
|
860
|
-
return yield _this10.mapToObject(data, properties[i].map.reference, i, properties[i].map.destination || i, properties[i]);
|
|
860
|
+
return yield _this10.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]);
|
|
861
861
|
});
|
|
862
862
|
|
|
863
863
|
function execute(_x) {
|
|
@@ -878,7 +878,8 @@ class SpiceModel {
|
|
|
878
878
|
when: properties[i].map.when || "read",
|
|
879
879
|
execute: function () {
|
|
880
880
|
var _execute2 = _asyncToGenerator(function* (data) {
|
|
881
|
-
|
|
881
|
+
console.log(_.isString(properties[i].map.reference), _.isString(properties[i].map.reference) ? spice.models[properties[i].map.reference] : properties[i].map.reference, spice.models, properties[i].map.reference);
|
|
882
|
+
return yield _this10.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]);
|
|
882
883
|
});
|
|
883
884
|
|
|
884
885
|
function execute(_x2) {
|
package/gulpfile.js
CHANGED
|
@@ -1,34 +1,37 @@
|
|
|
1
|
-
var gulp = require(
|
|
2
|
-
var babel = require(
|
|
1
|
+
var gulp = require("gulp");
|
|
2
|
+
var babel = require("gulp-babel");
|
|
3
3
|
var paths = {};
|
|
4
|
-
paths.src =
|
|
4
|
+
paths.src = "./src/**/*.js";
|
|
5
5
|
|
|
6
|
-
gulp.task(
|
|
7
|
-
gulp
|
|
8
|
-
.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
gulp.task("build_spice", () =>
|
|
7
|
+
gulp
|
|
8
|
+
.src(paths.src)
|
|
9
|
+
.pipe(
|
|
10
|
+
babel({
|
|
11
|
+
presets: [
|
|
12
|
+
[
|
|
13
|
+
"@babel/preset-env",
|
|
14
|
+
{
|
|
15
|
+
loose: true,
|
|
16
|
+
targets: {
|
|
17
|
+
esmodules: true,
|
|
18
|
+
node: "current",
|
|
19
|
+
},
|
|
16
20
|
},
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
],
|
|
22
|
+
],
|
|
23
|
+
plugins: [
|
|
24
|
+
["@babel/plugin-proposal-class-properties", { loose: true }],
|
|
25
|
+
["@babel/plugin-proposal-export-namespace-from", { loose: true }],
|
|
26
|
+
["@babel/plugin-proposal-export-default-from", { loose: true }],
|
|
19
27
|
],
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"@babel/plugin-proposal-export-namespace-from",
|
|
24
|
-
"@babel/plugin-proposal-export-default-from",
|
|
25
|
-
],
|
|
26
|
-
}))
|
|
27
|
-
.pipe(gulp.dest('build'))
|
|
28
|
+
})
|
|
29
|
+
)
|
|
30
|
+
.pipe(gulp.dest("build"))
|
|
28
31
|
);
|
|
29
32
|
|
|
30
33
|
// Default task
|
|
31
|
-
gulp.task(
|
|
32
|
-
gulp.task(
|
|
33
|
-
gulp.watch(paths.src, gulp.series(
|
|
34
|
+
gulp.task("default", gulp.series("build_spice"));
|
|
35
|
+
gulp.task("watch", function () {
|
|
36
|
+
gulp.watch(paths.src, gulp.series("build_spice"));
|
|
34
37
|
});
|
package/package.json
CHANGED
package/src/bootstrap/event.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import _ from "lodash";
|
|
3
|
-
const EventEmitter = require("events")
|
|
4
|
-
|
|
3
|
+
const EventEmitter = require("events");
|
|
4
|
+
class MyEmitter extends EventEmitter { }
|
|
5
|
+
const myEmitter = new MyEmitter();
|
|
5
6
|
spice.EventEmitter = myEmitter;
|
|
6
|
-
|
|
7
7
|
let eventingManifest = require(path.resolve(
|
|
8
8
|
path.join(spice.root_path, "/eventing/manifest.js")
|
|
9
9
|
));
|
|
@@ -16,7 +16,6 @@ _.each(eventingManifest.default, (entry) => {
|
|
|
16
16
|
new entry.event().driver || spice.config.event.default_driver
|
|
17
17
|
];
|
|
18
18
|
let processor = new Processor();
|
|
19
|
-
console.log(processor);
|
|
20
19
|
_.each(entry.handlers, (handler) => {
|
|
21
20
|
processor.on(topic, new handler().handle);
|
|
22
21
|
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
|
|
3
|
+
try {
|
|
4
|
+
let resources = ["models", "controllers"];
|
|
5
|
+
console.log(":::::::::::::STARTING MAP:::::::::::::");
|
|
6
|
+
resources.every((resource) => {
|
|
7
|
+
let paths = path.join(spice.root_path, resource);
|
|
8
|
+
spice[resource] = {};
|
|
9
|
+
require("fs")
|
|
10
|
+
.readdirSync(paths)
|
|
11
|
+
.forEach(async function (file) {
|
|
12
|
+
console.log("Loading:", file);
|
|
13
|
+
spice[resource][file.split(".")[0]] = (
|
|
14
|
+
await import(path.join(paths, file))
|
|
15
|
+
).default;
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
} catch (error) {
|
|
19
|
+
console.log(error);
|
|
20
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import io from "socket.io-client";
|
|
2
|
-
export default class
|
|
3
|
-
dispatch({ topic, data } = {}) {
|
|
1
|
+
//import io from "socket.io-client";
|
|
2
|
+
export default class SocketEventDriver {
|
|
3
|
+
/*dispatch({ topic, data } = {}) {
|
|
4
4
|
spice.io.broadcast(topic, data);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
on(topic, callback) {
|
|
8
8
|
var socket = io("http://localhost:3005");
|
|
9
9
|
socket.on(topic, callback);
|
|
10
|
-
}
|
|
10
|
+
}*/
|
|
11
11
|
}
|
package/src/index.js
CHANGED
|
@@ -74,6 +74,12 @@ export default class Spice {
|
|
|
74
74
|
|
|
75
75
|
io.attach(app);
|
|
76
76
|
spice.io = io;
|
|
77
|
+
io.on("message", (ctx, data) => {
|
|
78
|
+
console.log("client sent data to message endpoint", data);
|
|
79
|
+
});
|
|
80
|
+
app._io.on("connection", (sock) => {
|
|
81
|
+
console.log("Connection Up", sock);
|
|
82
|
+
});
|
|
77
83
|
app.use(
|
|
78
84
|
koaSwagger({
|
|
79
85
|
hideTopbar: true,
|
package/src/loaders/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import path from "path";
|
|
|
2
2
|
import fs from "fs";
|
|
3
3
|
import _ from "lodash";
|
|
4
4
|
|
|
5
|
-
let ordered_modules = ["logger", "error", "database", "views", "routes"];
|
|
5
|
+
let ordered_modules = ["map", "logger", "error", "database", "views", "routes"];
|
|
6
6
|
export async function load() {
|
|
7
7
|
try {
|
|
8
8
|
/* console.log('loading from array')*/
|
|
@@ -10,14 +10,14 @@ export async function load() {
|
|
|
10
10
|
let bootstrap_path = path.resolve(
|
|
11
11
|
path.join(spice.module_root_path, "/bootstrap")
|
|
12
12
|
);
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
let app_bootstrap_path = path.resolve(
|
|
15
15
|
path.join(spice.root_path, "/bootstrap")
|
|
16
16
|
);
|
|
17
17
|
|
|
18
18
|
/* console.log('MODULE Bootstrap directory', bootstrap_path);
|
|
19
19
|
console.log('APP Bootstrap directory', app_bootstrap_path); */
|
|
20
|
-
|
|
20
|
+
console.log("Loading Ordered Files", ordered_modules);
|
|
21
21
|
for (let file of ordered_modules) {
|
|
22
22
|
let mod = require(path.join(bootstrap_path, file));
|
|
23
23
|
if (_.isFunction(mod)) {
|
package/src/models/SpiceModel.js
CHANGED
|
@@ -242,7 +242,10 @@ export default class SpiceModel {
|
|
|
242
242
|
return _.join(returnVal, "|");
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
getValidationRules(
|
|
245
|
+
getValidationRules(
|
|
246
|
+
method = "POST",
|
|
247
|
+
{ complete = false, pick = [], omit = [] } = {}
|
|
248
|
+
) {
|
|
246
249
|
let rules = {};
|
|
247
250
|
let filters = {};
|
|
248
251
|
let working_properties = this.props;
|
|
@@ -251,7 +254,7 @@ export default class SpiceModel {
|
|
|
251
254
|
}
|
|
252
255
|
|
|
253
256
|
if (omit.length > 0) {
|
|
254
|
-
working_properties = _.omit(this.props,
|
|
257
|
+
working_properties = _.omit(this.props, omit);
|
|
255
258
|
}
|
|
256
259
|
|
|
257
260
|
for (let i in working_properties) {
|
|
@@ -743,14 +746,17 @@ export default class SpiceModel {
|
|
|
743
746
|
case "string": {
|
|
744
747
|
this.addModifier({
|
|
745
748
|
when: properties[i].map.when || "read",
|
|
746
|
-
execute: async (data) =>
|
|
747
|
-
await this.mapToObject(
|
|
749
|
+
execute: async (data) => {
|
|
750
|
+
return await this.mapToObject(
|
|
748
751
|
data,
|
|
749
|
-
properties[i].map.reference
|
|
752
|
+
_.isString(properties[i].map.reference)
|
|
753
|
+
? spice.models[properties[i].map.reference]
|
|
754
|
+
: properties[i].map.reference,
|
|
750
755
|
i,
|
|
751
756
|
properties[i].map.destination || i,
|
|
752
757
|
properties[i]
|
|
753
|
-
)
|
|
758
|
+
);
|
|
759
|
+
},
|
|
754
760
|
});
|
|
755
761
|
break;
|
|
756
762
|
}
|
|
@@ -758,14 +764,25 @@ export default class SpiceModel {
|
|
|
758
764
|
case "array": {
|
|
759
765
|
this.addModifier({
|
|
760
766
|
when: properties[i].map.when || "read",
|
|
761
|
-
execute: async (data) =>
|
|
762
|
-
|
|
767
|
+
execute: async (data) => {
|
|
768
|
+
console.log(
|
|
769
|
+
_.isString(properties[i].map.reference),
|
|
770
|
+
_.isString(properties[i].map.reference)
|
|
771
|
+
? spice.models[properties[i].map.reference]
|
|
772
|
+
: properties[i].map.reference,
|
|
773
|
+
spice.models,
|
|
774
|
+
properties[i].map.reference
|
|
775
|
+
);
|
|
776
|
+
return await this.mapToObjectArray(
|
|
763
777
|
data,
|
|
764
|
-
properties[i].map.reference
|
|
778
|
+
_.isString(properties[i].map.reference)
|
|
779
|
+
? spice.models[properties[i].map.reference]
|
|
780
|
+
: properties[i].map.reference,
|
|
765
781
|
i,
|
|
766
782
|
properties[i].map.destination || i,
|
|
767
783
|
properties[i]
|
|
768
|
-
)
|
|
784
|
+
);
|
|
785
|
+
},
|
|
769
786
|
});
|
|
770
787
|
break;
|
|
771
788
|
}
|