spice-js 2.5.12 → 2.5.15

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.
@@ -1,4 +1,4 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  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); } }
4
4
 
@@ -7,6 +7,8 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
7
7
  spice.database = {};
8
8
  spice.database.connections = {};
9
9
  spice.database.clusters = {};
10
+ spice.database.scopes = {};
11
+ spice.database.buckets = {};
10
12
 
11
13
  function connect() {
12
14
  return _connect.apply(this, arguments);
@@ -25,6 +27,8 @@ function _connect() {
25
27
  var result = yield connection.connect(key, value);
26
28
  spice.database.connections[result.connection] = result.collection;
27
29
  spice.database.clusters[result.connection] = result.cluster;
30
+ spice.database.scopes[result.connection] = result.scope;
31
+ spice.database.buckets[result.connection] = result.bucket;
28
32
  }
29
33
  }
30
34
  } catch (e) {
@@ -35,5 +39,4 @@ function _connect() {
35
39
  return _connect.apply(this, arguments);
36
40
  }
37
41
 
38
- module.exports = connect;
39
- ;
42
+ module.exports = connect;
@@ -23,7 +23,13 @@ try {
23
23
  /*#__PURE__*/
24
24
  function () {
25
25
  var _ref = _asyncToGenerator(function* (file) {
26
- spice[resource][file.split(".")[0].toLowerCase()] = (yield Promise.resolve("" + _path.default.join(paths, file)).then(s => _interopRequireWildcard(require(s)))).default;
26
+ var file_name = file.split(".")[0];
27
+ spice[resource][file_name.toLowerCase()] = (yield Promise.resolve("" + _path.default.join(paths, file)).then(s => _interopRequireWildcard(require(s)))).default;
28
+ spice[resource][file_name] = (yield Promise.resolve("" + _path.default.join(paths, file)).then(s => _interopRequireWildcard(require(s)))).default;
29
+
30
+ if (resource == "models") {
31
+ new spice[resource][file_name]({});
32
+ }
27
33
  });
28
34
 
29
35
  return function (_x) {
@@ -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 = ["map", "logger", "error", "database"];
18
+ var ordered_modules = ["database", "map", "logger", "error"];
19
19
  var last_modules = ["views", "routes"];
20
20
 
21
21
  function load() {
@@ -85,7 +85,10 @@ class SpiceModel {
85
85
  delete args.args["ctx"];
86
86
  }
87
87
 
88
- this[_database] = new Database(args.connection || "default");
88
+ this[_database] = new Database(args.connection || "default", {
89
+ collection: args.collection,
90
+ scope: args.scope
91
+ });
89
92
  this[_props] = args.props;
90
93
 
91
94
  for (var i in args.props) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spice-js",
3
- "version": "2.5.12",
3
+ "version": "2.5.15",
4
4
  "description": "spice",
5
5
  "main": "build/index.js",
6
6
  "repository": {
@@ -1,20 +1,23 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  spice.database = {};
4
4
  spice.database.connections = {};
5
- spice.database.clusters = {}
5
+ spice.database.clusters = {};
6
+ spice.database.scopes = {};
7
+ spice.database.buckets = {};
6
8
 
7
9
  async function connect() {
8
10
  try {
9
11
  for (let key in spice.config.database.connections) {
10
12
  let value = spice.config.database.connections[key];
11
-
12
13
  if (value.enabled) {
13
14
  let Database = require(`spice-${value.type}`);
14
15
  let connection = new Database();
15
16
  let result = await connection.connect(key, value);
16
17
  spice.database.connections[result.connection] = result.collection;
17
18
  spice.database.clusters[result.connection] = result.cluster;
19
+ spice.database.scopes[result.connection] = result.scope;
20
+ spice.database.buckets[result.connection] = result.bucket;
18
21
  }
19
22
  }
20
23
  } catch (e) {
@@ -23,4 +26,3 @@ async function connect() {
23
26
  }
24
27
  }
25
28
  module.exports = connect;
26
- ;
@@ -8,9 +8,16 @@ try {
8
8
  require("fs")
9
9
  .readdirSync(paths)
10
10
  .forEach(async function (file) {
11
- spice[resource][file.split(".")[0].toLowerCase()] = (
11
+ let file_name = file.split(".")[0];
12
+ spice[resource][file_name.toLowerCase()] = (
12
13
  await import(path.join(paths, file))
13
14
  ).default;
15
+ spice[resource][file_name] = (
16
+ await import(path.join(paths, file))
17
+ ).default;
18
+ if (resource == "models") {
19
+ new spice[resource][file_name]({});
20
+ }
14
21
  });
15
22
  });
16
23
  } catch (error) {
@@ -0,0 +1,14 @@
1
+ import Event from "../Event";
2
+ let driver = "";
3
+
4
+ export default class ResourceLifecycleTriggered extends Event {
5
+ constructor(args = {}) {
6
+ if (!args.driver) {
7
+ args.driver = driver;
8
+ }
9
+ args.topic = "ResourceLifecycleTriggered";
10
+ super(args);
11
+ this.topic = args.topic;
12
+ this.driver = args.driver;
13
+ }
14
+ }
package/src/index.js CHANGED
@@ -15,6 +15,7 @@ export { default as Event } from "./events/Event";
15
15
  export { default as EventDebugger } from "./events/providers/EventDebugger";
16
16
  export { default as SpiceEventDriver } from "./events/providers/SpiceEventDriver";
17
17
  export { default as SocketEventDriver } from "./events/providers/SocketEventDriver";
18
+ export { default as ResourceLifecycleTriggered } from "./events/events/ResourceLifecycleTriggered";
18
19
 
19
20
  export { default as SpiceModel } from "./models/SpiceModel";
20
21
 
@@ -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 = ["map", "logger", "error", "database"];
5
+ let ordered_modules = ["database", "map", "logger", "error"];
6
6
  let last_modules = ["views", "routes"];
7
7
  export async function load() {
8
8
  try {
@@ -3,6 +3,7 @@
3
3
  import { MapType, DataType } from "..";
4
4
  let co = require("co");
5
5
  var regeneratorRuntime = require("regenerator-runtime");
6
+ import ResourceLifecycleTriggered from "../events/events/ResourceLifecycleTriggered";
6
7
 
7
8
  var SDate = require("sonover-date"),
8
9
  UUID = require("uuid"),
@@ -72,7 +73,10 @@ export default class SpiceModel {
72
73
  if (args.args) {
73
74
  delete args.args["ctx"];
74
75
  }
75
- this[_database] = new Database(args.connection || "default");
76
+ this[_database] = new Database(args.connection || "default", {
77
+ collection: args.collection,
78
+ scope: args.scope,
79
+ });
76
80
  this[_props] = args.props;
77
81
  for (let i in args.props) {
78
82
  if (args.args != undefined) {
@@ -591,6 +595,10 @@ export default class SpiceModel {
591
595
 
592
596
  async run_hook(data, op, when, old_data) {
593
597
  try {
598
+ let resourceLifecycleTriggered = new ResourceLifecycleTriggered({
599
+ data: { data, operation: op, when, old_data, resource: this.type },
600
+ });
601
+ resourceLifecycleTriggered.dispatch();
594
602
  if (this[_hooks] && this[_hooks][op] && this[_hooks][op][when]) {
595
603
  for (let i of this[_hooks][op][when]) {
596
604
  data = await i(data, old_data);