@webresto/graphql 1.3.0 → 1.3.3

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.
Files changed (70) hide show
  1. package/package.json +25 -8
  2. package/src/additionalResolvers.js +1 -1
  3. package/src/additionalResolvers.ts +1 -1
  4. package/src/graphql.js +40 -22
  5. package/src/graphql.ts +42 -25
  6. package/src/resolvers/cart.d.ts +229 -9
  7. package/src/resolvers/cart.js +27 -7
  8. package/src/resolvers/cart.ts +29 -8
  9. package/src/resolvers/checkout.ts +1 -0
  10. package/test/{_bootstrap.js → bootstrap.js} +6 -7
  11. package/test/bootstrap.ts +36 -0
  12. package/test/fixture/.sailsrc +14 -0
  13. package/test/{fixtures/v0.12-app → fixture}/api/controllers/.gitkeep +0 -0
  14. package/test/{fixtures/v0.12-app → fixture}/api/models/.gitkeep +0 -0
  15. package/test/{fixtures/v0.12-app → fixture}/api/services/.gitkeep +0 -0
  16. package/test/{fixtures/v0.12-app/app.js → fixture/app-export.js} +2 -2
  17. package/test/fixture/app.js +56 -0
  18. package/test/fixture/config/adminpanel.js +25 -0
  19. package/test/fixture/config/bootstrap.js +161 -0
  20. package/test/fixture/config/connections.js +9 -0
  21. package/test/fixture/config/env/development.js +10 -0
  22. package/test/{fixtures/v0.12-app → fixture}/config/env/production.js +5 -5
  23. package/test/fixture/config/globals.js +16 -0
  24. package/test/{fixtures/v0.12-app → fixture}/config/hookTimeout.js +0 -0
  25. package/test/{fixtures/v0.12-app → fixture}/config/http.js +0 -0
  26. package/test/{fixtures/v0.12-app → fixture}/config/i18n.js +0 -0
  27. package/test/{fixtures/v0.12-app → fixture}/config/log.js +1 -1
  28. package/test/fixture/config/models.js +9 -0
  29. package/test/fixture/config/modulemanager.js +22 -0
  30. package/test/{fixtures/v0.12-app → fixture}/config/policies.js +0 -0
  31. package/test/{fixtures/v0.12-app → fixture}/config/routes.js +0 -0
  32. package/test/{fixtures/v0.12-app → fixture}/config/session.js +0 -0
  33. package/test/{fixtures/v0.12-app → fixture}/config/sockets.js +0 -0
  34. package/test/{fixtures/v0.12-app → fixture}/config/views.js +0 -0
  35. package/test/fixture/hacks/waterline.js +39 -0
  36. package/test/fixture/package.json +33 -0
  37. package/test/fixture/seeds/dish.json +37042 -0
  38. package/test/fixture/seeds/group.json +1418 -0
  39. package/test/fixture/seeds/iikoDiscount.json +365 -0
  40. package/test/{fixtures/v0.12-app → fixture}/views/403.ejs +0 -0
  41. package/test/{fixtures/v0.12-app → fixture}/views/404.ejs +0 -0
  42. package/test/{fixtures/v0.12-app → fixture}/views/500.ejs +0 -0
  43. package/test/{fixtures/v0.12-app → fixture}/views/homepage.ejs +0 -0
  44. package/test/{fixtures/v0.12-app → fixture}/views/layout.ejs +0 -0
  45. package/test/integration/graphql.test.js +11 -0
  46. package/test/integration/graphql.test.ts +15 -0
  47. package/test/{unit → integration}/sails_not_crash.test.js +0 -0
  48. package/test/integration/sails_not_crash.test.ts +3 -0
  49. package/test/unit/first.test.js +6 -8
  50. package/test/unit/first.test.ts +11 -0
  51. package/test/fixtures/v0.12-app/.gitignore +0 -11
  52. package/test/fixtures/v0.12-app/.sailsrc +0 -11
  53. package/test/fixtures/v0.12-app/api/models/TestModel.js +0 -22
  54. package/test/fixtures/v0.12-app/api/responses/badRequest.js +0 -76
  55. package/test/fixtures/v0.12-app/api/responses/created.js +0 -60
  56. package/test/fixtures/v0.12-app/api/responses/forbidden.js +0 -89
  57. package/test/fixtures/v0.12-app/api/responses/notFound.js +0 -94
  58. package/test/fixtures/v0.12-app/api/responses/ok.js +0 -60
  59. package/test/fixtures/v0.12-app/api/responses/serverError.js +0 -89
  60. package/test/fixtures/v0.12-app/config/bootstrap.js +0 -6
  61. package/test/fixtures/v0.12-app/config/connections.js +0 -5
  62. package/test/fixtures/v0.12-app/config/cors.js +0 -78
  63. package/test/fixtures/v0.12-app/config/csrf.js +0 -64
  64. package/test/fixtures/v0.12-app/config/env/development.js +0 -10
  65. package/test/fixtures/v0.12-app/config/globals.js +0 -63
  66. package/test/fixtures/v0.12-app/config/models.js +0 -3
  67. package/test/fixtures/v0.12-app/config/restoapi.js +0 -3
  68. package/test/fixtures/v0.12-app/config/restocore.js +0 -39
  69. package/test/fixtures/v0.12-app/config/stateflow.js +0 -4
  70. package/test/fixtures/v0.12-app/package.json +0 -34
@@ -32,7 +32,10 @@ export default {
32
32
  );
33
33
  order = await getNewCart(args.orderId);
34
34
  }
35
- return await Order.populate(order.id);
35
+
36
+ let fullOrder = await Order.populate(order.id);
37
+ getEmitter().emit("http-api:before-response-order", fullOrder);
38
+ return fullOrder
36
39
  },
37
40
  },
38
41
  },
@@ -95,7 +98,11 @@ export default {
95
98
  args.replace,
96
99
  args.orderDishId
97
100
  );
98
- return await Order.countCart(order);
101
+ await Order.countCart(order);
102
+
103
+ let fullOrder = await Order.populate(order.id);
104
+ getEmitter().emit("http-api:before-response-order-add-dish", fullOrder);
105
+ return fullOrder
99
106
  },
100
107
  },
101
108
  orderReplaceDish: {
@@ -126,7 +133,10 @@ export default {
126
133
  args.replace,
127
134
  args.orderDishId
128
135
  );
129
- return await Order.countCart(order);
136
+ await Order.countCart(order);
137
+ let fullOrder = await Order.populate(order.id);
138
+ getEmitter().emit("http-api:before-response-order-replace-dish", fullOrder);
139
+ return fullOrder
130
140
  },
131
141
  },
132
142
  orderRemoveDish: {
@@ -150,7 +160,10 @@ export default {
150
160
  const orderDish = await OrderDish.findOne({ id: args.orderDishId });
151
161
 
152
162
  await Order.removeDish(order.id, orderDish, args.amount, false);
153
- return await Order.countCart(order);
163
+ await Order.countCart(order);
164
+ let fullOrder = await Order.populate(order.id);
165
+ getEmitter().emit("http-api:before-response-order-remove-dish", fullOrder);
166
+ return fullOrder
154
167
  },
155
168
  },
156
169
  orderSetDishAmount: {
@@ -187,7 +200,10 @@ export default {
187
200
  );
188
201
 
189
202
  await Order.setCount(order.id, dish, args.amount);
190
- return await Order.countCart(order);
203
+ await Order.countCart(order);
204
+ let fullOrder = await Order.populate(order.id);
205
+ getEmitter().emit("http-api:before-response-order-set-dish-amount", fullOrder);
206
+ return fullOrder
191
207
  },
192
208
  },
193
209
  orderSetDishComment: {
@@ -223,8 +239,10 @@ export default {
223
239
  }
224
240
 
225
241
  await order.setComment(dish, comment);
226
- return await Order.countCart(order);
227
- },
242
+ await Order.countCart(order);
243
+ let fullOrder = await Order.populate(order.id);
244
+ getEmitter().emit("http-api:before-response-order-set-dish-comment", fullOrder);
245
+ return fullOrder },
228
246
  },
229
247
 
230
248
  orderUpdate: {
@@ -234,7 +252,10 @@ export default {
234
252
  let order = args.order;
235
253
  if (!order.id) throw "order.id field is required"
236
254
  await Order.update({id: order.id}, {trifleFrom: order.trifleFrom})
237
- return await Order.populate(order.id);
255
+ await Order.populate(order.id);
256
+ let fullOrder = await Order.populate(order.id);
257
+ getEmitter().emit("http-api:before-response-order-update", fullOrder);
258
+ return fullOrder
238
259
  },
239
260
  },
240
261
  },
@@ -90,6 +90,7 @@ export default {
90
90
  ? order.message
91
91
  : "Заказ готов к оформлению",
92
92
  };
93
+
93
94
  } else {
94
95
  if (order.message) {
95
96
  return eventHelper.sendMessage(args.orderId, {
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  require("mocha");
4
- var Sails = require('./fixtures/v0.12-app/node_modules/sails').Sails;
4
+ require("dotenv").config();
5
+ var Sails = require("./fixture/node_modules/sails").Sails;
6
+ process.env.DEV = "TRUE";
7
+ process.env.LOG_LEVEL = 'silent';
5
8
  before(function (done) {
6
- let rc = require('./fixtures/v0.12-app/app').rc;
9
+ require("./fixture/app-export");
7
10
  this.timeout(50000);
8
- Sails().lift(rc, function (err, _sails) {
11
+ Sails().lift({}, function (err, _sails) {
9
12
  if (err)
10
13
  return done(err);
11
14
  global.sails = _sails;
12
- // console.log(_sails);
13
15
  return done();
14
16
  });
15
17
  });
@@ -18,12 +20,9 @@ after(function (done) {
18
20
  return global.sails.lower(function (err) {
19
21
  if (err) {
20
22
  done();
21
- return process.exit(2);
22
23
  }
23
24
  done();
24
- return process.exit(0);
25
25
  });
26
26
  }
27
27
  done();
28
- return process.exit(2);
29
28
  });
@@ -0,0 +1,36 @@
1
+ import "mocha";
2
+ require("dotenv").config();
3
+ var Sails = require("./fixture/node_modules/sails").Sails;
4
+
5
+ process.env.DEV = "TRUE"
6
+ process.env.LOG_LEVEL= 'silent'
7
+
8
+ before(function (done) {
9
+ require("./fixture/app-export");
10
+ this.timeout(50000);
11
+ Sails().lift({}, function (err: any, _sails: any) {
12
+ if (err) return done(err);
13
+ global.sails = _sails;
14
+ return done();
15
+ });
16
+ });
17
+
18
+ after(function (done) {
19
+ if (global.sails) {
20
+ return global.sails.lower(function (err) {
21
+ if (err) {
22
+ done();
23
+ }
24
+ done();
25
+ });
26
+ }
27
+ done();
28
+ });
29
+
30
+ declare global {
31
+ namespace NodeJS {
32
+ interface Global {
33
+ sails: any;
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "generators": {
3
+ "modules": {}
4
+ },
5
+ "hooks": {
6
+ "grunt": false,
7
+ ".ci": false,
8
+ "sockets":false,
9
+ "pubsub": false
10
+ },
11
+ "paths": {
12
+ "hooks": "modules"
13
+ }
14
+ }
@@ -45,7 +45,7 @@ try {
45
45
  rc = require('rc');
46
46
  } catch (e0) {
47
47
  try {
48
- rc = require('sails/node_modules/rc');
48
+ rc = require('sails/accessible/rc');
49
49
  } catch (e1) {
50
50
  console.error('Could not find dependency: `rc`.');
51
51
  console.error('Your `.sailsrc` file(s) will be ignored.');
@@ -70,4 +70,4 @@ try {
70
70
  module.exports = {
71
71
  sails: sails,
72
72
  rc: rc('sails')
73
- }
73
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * app.js
3
+ *
4
+ * Use `app.js` to run your app without `sails lift`.
5
+ * To start the server, run: `node app.js`.
6
+ *
7
+ * This is handy in situations where the sails CLI is not relevant or useful,
8
+ * such as when you deploy to a server, or a PaaS like Heroku.
9
+ *
10
+ * For example:
11
+ * => `node app.js`
12
+ * => `npm start`
13
+ * => `forever start app.js`
14
+ * => `node debug app.js`
15
+ *
16
+ * The same command-line arguments and env vars are supported, e.g.:
17
+ * `NODE_ENV=production node app.js --port=80 --verbose`
18
+ *
19
+ * For more information see:
20
+ * https://sailsjs.com/anatomy/app.js
21
+ */
22
+
23
+
24
+ // Ensure we're in the project directory, so cwd-relative paths work as expected
25
+ // no matter where we actually lift from.
26
+ // > Note: This is not required in order to lift, but it is a convenient default.
27
+ process.chdir(__dirname);
28
+
29
+ process.env.DEV = "TRUE";
30
+
31
+
32
+ // Attempt to import `sails` dependency, as well as `rc` (for loading `.sailsrc` files).
33
+ var sails;
34
+ var rc;
35
+ try {
36
+ sails = require('sails');
37
+ rc = require('sails/accessible/rc');
38
+ } catch (err) {
39
+ console.error('Encountered an error when attempting to require(\'sails\'):');
40
+ console.error(err.stack);
41
+ console.error('--');
42
+ console.error('To run an app using `node app.js`, you need to have Sails installed');
43
+ console.error('locally (`./node_modules/sails`). To do that, just make sure you\'re');
44
+ console.error('in the same directory as your app and run `npm install`.');
45
+ console.error();
46
+ console.error('If Sails is installed globally (i.e. `npm install -g sails`) you can');
47
+ console.error('also run this app with `sails lift`. Running with `sails lift` will');
48
+ console.error('not run this file (`app.js`), but it will do exactly the same thing.');
49
+ console.error('(It even uses your app directory\'s local Sails install, if possible.)');
50
+ return;
51
+ }//-•
52
+
53
+ console.log(rc('sails'))
54
+
55
+ // Start server
56
+ sails.lift(rc('sails'));
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+
4
+ setTimeout(() => {
5
+ sails.after(["hook:orm:loaded"], () => {
6
+ Object.keys(sails.models).forEach((modelname) => {
7
+ let modelName = sails.models[modelname].globalId;
8
+ sails.config.adminpanel.instances["dev" + modelName] = {
9
+ title: "dev" + modelName,
10
+ icon: 'cube',
11
+ model: modelName,
12
+ fields: {
13
+ createdAt: false,
14
+ updatedAt: false
15
+ }
16
+ };
17
+ });
18
+ });
19
+ }, 5000);
20
+
21
+
22
+ module.exports.adminpanel = {
23
+ instances: {
24
+ }
25
+ };
@@ -0,0 +1,161 @@
1
+ maintenanceSeed = [
2
+ {
3
+ id: "maintenance1",
4
+ title: "Сайт временно не работает",
5
+ description: "<div>\r\n<p>По техническим причинам доставка сейчас не осуществляется</p>\r\n</div>",
6
+ enable: false,
7
+ startDate: "2019-12-31T21:00:00.000Z",
8
+ stopDate: "2020-12-31T21:00:00.000Z",
9
+ },
10
+ ];
11
+
12
+ const fs = require("fs");
13
+ const path = require("path");
14
+
15
+ module.exports.bootstrap = async function () {
16
+ sails.config.paths.app = process.cwd();
17
+
18
+ /**
19
+ * # Bootsrap seeds from seeds folder
20
+ * Magic: filename.json where filename is model name
21
+ */
22
+
23
+ if (sails.config.models.migrate === "drop" || process.env.FORCE_SEED === "TRUE") {
24
+ sails.log.info("Seeding 🌱 process start")
25
+ try {
26
+ let seedsDir = process.env.SEED_PATH ? process.env.SEED_PATH : __dirname + "/../seeds/";
27
+ // load JSON data
28
+ let seeds = fs.readdirSync(seedsDir).filter(function (file) {
29
+ return path.extname(file).toLowerCase() === ".json";
30
+ });
31
+
32
+ for await (let seed of seeds) {
33
+ try {
34
+ let seedFile = seedsDir + seed;
35
+ let model = seed.split(".")[0].toLowerCase();
36
+ let json_seed_data = require(seedFile);
37
+
38
+ sails.log.info("🌱 Bootstrap > Seed for model: ", model);
39
+
40
+ if (sails.models[model]) {
41
+ await sails.models[model].destroy({}).fetch();
42
+ if (Array.isArray(json_seed_data)) {
43
+ for await (seed_item of json_seed_data) {
44
+ cleanSeedItem(seed_item);
45
+ await sails.models[model].create(seed_item).fetch();
46
+ }
47
+ sails.log.debug(`🌱 Bootstrap seed ${model}: > count: ${json_seed_data.length}`);
48
+ } else {
49
+ sails.log.debug(`🌱 Bootstrap seed ${model}: > one item`);
50
+ cleanSeedItem(seed_item);
51
+ await sails.models[model].create(json_seed_data).fetch();
52
+ }
53
+ sails.log.info(`Bootstrap seed model: > ${model} was seeded, count: ${json_seed_data.length}`);
54
+ } else {
55
+ sails.log.warn(`Bootstrap seed model: > ${model} SKIPED (model not present in sails)`);
56
+ }
57
+ } catch (error) {
58
+ sails.log.error(`🌱 Seeding error: ${error}`);
59
+ }
60
+ }
61
+
62
+ // Load JS files
63
+ seeds = fs.readdirSync(seedsDir).filter(function (file) {
64
+ return path.extname(file).toLowerCase() === ".js";
65
+ });
66
+
67
+ /**
68
+ * If file .queue exist then sort seedqueue by this file
69
+ */
70
+
71
+ if (fs.existsSync(seedsDir + ".queue")) {
72
+ var queuelist = fs
73
+ .readFileSync(seedsDir + ".queue")
74
+ .toString()
75
+ .split("\n");
76
+ let _seeds = [...seeds];
77
+ seeds = [];
78
+
79
+ // Build head loadlist of js seeds files
80
+ queuelist.forEach((qItem) => {
81
+ _seeds.forEach((sItem) => {
82
+ if (sItem.includes(qItem) && !isCommented(qItem)) {
83
+ seeds.push(sItem);
84
+ }
85
+ });
86
+ });
87
+
88
+ // Build foot
89
+ seeds = [...seeds, ..._seeds.filter((n) => !seeds.includes(n))];
90
+ }
91
+
92
+ for await (let seed of seeds) {
93
+ let seedFile = seedsDir + seed;
94
+ if (fs.existsSync(seedFile)) {
95
+ let bootstrap_model_seed = require(seedFile);
96
+ await bootstrap_model_seed.default(sails);
97
+ }
98
+ }
99
+ } catch (error) {
100
+ console.error("Bootstrap seeds error: > ", error);
101
+ }
102
+ }
103
+
104
+ await Settings.set("enableIikoSimpleDiscounts", true);
105
+ //////////////////////////////////////////////////////////
106
+
107
+ setTimeout(() => {
108
+ console.log("ADMINPANEL", sails.config.adminpanel.instances.discount)
109
+ }, 10000)
110
+
111
+ if (sails.config.models.migrate === "drop") {
112
+ // create init params for webresto
113
+ try {
114
+ if ((await Maintenance.count()) === 0) {
115
+ sails.log.verbose("BOOTSTRAP > Start Import Maintenance SEED");
116
+ await Maintenance.createEach(maintenanceSeed).fetch();
117
+ }
118
+
119
+ process.env.TZ = (await Settings.use("timezone")) ? await Settings.use("timezone") : process.env.TZ;
120
+
121
+ return
122
+ } catch (error) {
123
+ console.log(error);
124
+ }
125
+ } else {
126
+ process.env.TZ = (await Settings.use("timezone")) ? await Settings.use("timezone") : process.env.TZ;
127
+ return
128
+ }
129
+ return
130
+ };
131
+
132
+ function isCommented(str) {
133
+ return (Boolean(str) && (
134
+ str
135
+ .split(" ")
136
+ .filter((a) => {
137
+ return Boolean(a);
138
+ })[0]
139
+ .charAt(0) === "#"
140
+ ));
141
+ }
142
+
143
+
144
+ function cleanSeedItem(item) {
145
+
146
+ if(item.createdAt) delete(item.createdAt)
147
+ if(item.updatedAt) delete(item.updatedAt)
148
+ if(typeof item.id === "number") delete(item.id)
149
+
150
+ for (const [key, value] of Object.entries(item)) {
151
+ if (value === null || value === undefined) {
152
+ delete(item[key])
153
+ } else {
154
+ try {
155
+ let json_value = JSON.parse(value);
156
+ item[key] = json_value
157
+ } catch (e) {
158
+ }
159
+ }
160
+ }
161
+ }
@@ -0,0 +1,9 @@
1
+ module.exports.connections = {
2
+ // postgres: {
3
+ // adapter: 'sails-postgresql',
4
+ // host: process.env.PG_HOST === undefined ? '127.0.0.1' : process.env.PG_HOST,
5
+ // user: process.env.PG_USER === undefined ? 'postgres' : process.env.PG_USER,
6
+ // password: process.env.PG_PASSWORD === undefined ? 'postgres' : process.env.PG_PASSWORD,
7
+ // database: process.env.PG_DATABASE === undefined ? 'testdb' : process.env.PG_DATABASE
8
+ // }
9
+ };
@@ -0,0 +1,10 @@
1
+ module.exports = {
2
+ // models: {
3
+ // connection: 'postgres'
4
+
5
+ // },
6
+ port: process.env.PORT === undefined ? 42772 : process.env.PORT,
7
+ log: {
8
+ level: process.env.LOG_LEVEL === undefined ? 'verbose' : process.env.PORT
9
+ }
10
+ };
@@ -1,8 +1,8 @@
1
1
  module.exports = {
2
- models: {
3
- connection: 'memory',
4
- migrate: 'safe'
5
- },
2
+ // models: {
3
+ // connection: 'postgres',
4
+ // migrate: 'safe'
5
+ // },
6
6
  adminpanel:{
7
7
  auth: true
8
8
  },
@@ -11,6 +11,6 @@ module.exports = {
11
11
  },
12
12
  port: process.env.PORT === undefined ? 42772 : process.env.PORT,
13
13
  log: {
14
- level: "silent"
14
+ level: "verbose"
15
15
  }
16
16
  };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * THIS FILE WAS ADDED AUTOMATICALLY by the Sails 1.0 app migration tool.
3
+ * The original file was backed up as `config/globals-old.js.txt`
4
+ */
5
+
6
+ module.exports.globals = {
7
+
8
+ _: require('lodash'),
9
+
10
+ async: require('async'),
11
+
12
+ models: true,
13
+
14
+ sails: true
15
+
16
+ };
@@ -24,6 +24,6 @@ module.exports.log = {
24
24
  * *
25
25
  ***************************************************************************/
26
26
 
27
- level: 'verbose'
27
+ level: 'debug'
28
28
 
29
29
  };
@@ -0,0 +1,9 @@
1
+ module.exports.models = {
2
+ migrate: 'drop',
3
+ attributes: {
4
+ id: { type: 'number', autoIncrement: true, },
5
+ createdAt: { type: 'number', autoCreatedAt: true, },
6
+ updatedAt: { type: 'number', autoUpdatedAt: true, }
7
+ },
8
+
9
+ };
@@ -0,0 +1,22 @@
1
+ module.exports.modulemanager = {
2
+ navbar: [
3
+ {
4
+ id: "1",
5
+ name: "Мои модули",
6
+ link: `/admin/modules/my`,
7
+ icon: "home"
8
+ },
9
+ {
10
+ id: "2",
11
+ name: "Обновления",
12
+ link: `/admin/modules/updates`,
13
+ icon: "cloud-download-alt"
14
+ },
15
+ {
16
+ id: "3",
17
+ name: "Маркетплейс",
18
+ link: `/admin/modules/market`,
19
+ icon: "shopping-order"
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * WRONG SAILS HACK
3
+ */
4
+
5
+ console.warn("WRONG SAILS HACK v0.2");
6
+ let PWD = process.cwd()
7
+ const replace = require("replace-in-file");
8
+
9
+ /**
10
+ * 1.
11
+ * Patch for allow unknow types
12
+ * bash equals: find $PWD/node_modules/waterline-schema/ -type f -print0 | xargs -0 sed -i 's|if (_.indexOf(validProperties, propertyName) < 0) {|if (false) {|g'
13
+ */
14
+ console.log(PWD + "/../**/sails-hook-orm/lib/validate-model-def.js",);
15
+ const results = replace.sync({
16
+ files: [
17
+ //for test system
18
+ PWD + "/../**/sails-hook-orm/lib/validate-model-def.js",
19
+ PWD + "/../**/waterline-schema/schema.js",
20
+ PWD + "/../**/sails-disk/index.js",
21
+ PWD + "/../**/query/private/normalize-value-to-set.js",
22
+
23
+ ],
24
+ from: [
25
+ "(_.isFunction(val.defaultsTo))",
26
+ "(_.indexOf(validProperties, propertyName) < 0)",
27
+ "(_.has(attribute, 'defaultsTo') && _.isNull(attribute.defaultsTo))",
28
+ "(_.has(primaryKeyAttribute, 'defaultsTo') && !_.isUndefined(primaryKeyAttribute, 'defaultsTo'))",
29
+ "(attribute.required && _.has(attribute, 'defaultsTo') && !_.isUndefined(attribute, 'defaultsTo'))",
30
+ "(_.has(attribute, 'defaultsTo'))",
31
+ "(isProvidingNullForIncompatibleOptionalAttr)",
32
+ "(primaryKeyAttr.required !== true && (!primaryKeyAttr.autoMigrations || primaryKeyAttr.autoMigrations.autoIncrement !== true))"
33
+ ],
34
+ to: "(false)",
35
+ });
36
+
37
+ console.log(results);
38
+
39
+ // Stranger things
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "test-app",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "description": "Sails test application",
6
+ "keywords": [],
7
+ "dependencies": {
8
+ "@webresto/core": "file:../../node_modules/@webresto/core",
9
+ "@webresto/graphql": "file:../..",
10
+ "@webresto/worktime": "file:../../node_modules/@webresto/worktime",
11
+ "replace-in-file": "^6.3.2",
12
+ "include-all": "^1.0.8",
13
+ "rc": "^1.0.1",
14
+ "request": "^2.88.2",
15
+ "sails": "^1.5.0",
16
+ "sails-hook-orm": "^2.1.1",
17
+ "sails-hook-stateflow": "^1.0.6",
18
+ "connect-flash": "^0.1.1",
19
+ "sails-memory": "^0.10.7"
20
+ },
21
+ "scripts": {
22
+ "debug": "node debug app.js",
23
+ "start": "node app.js",
24
+ "postinstall": "node ./hacks/waterline.js"
25
+ },
26
+ "main": "app.js",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git://github.com/webresto/app.git"
30
+ },
31
+ "author": "webresto",
32
+ "license": "MIT"
33
+ }