@webresto/graphql 1.3.0

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 (105) hide show
  1. package/.editorconfig +10 -0
  2. package/index.d.ts +3 -0
  3. package/index.js +22 -0
  4. package/index.ts +14 -0
  5. package/lib/afterHook.d.ts +1 -0
  6. package/lib/afterHook.js +24 -0
  7. package/lib/afterHook.ts +26 -0
  8. package/lib/afterHook.ts___graphql-transport-ws +138 -0
  9. package/lib/afterHook.ts___graphql-ws +133 -0
  10. package/lib/defaults.js +12 -0
  11. package/lib/errorWrapper.d.ts +4 -0
  12. package/lib/errorWrapper.js +13 -0
  13. package/lib/errorWrapper.ts +12 -0
  14. package/lib/eventHelper.d.ts +21 -0
  15. package/lib/eventHelper.js +32 -0
  16. package/lib/eventHelper.ts +35 -0
  17. package/lib/graphqlHelper.d.ts +115 -0
  18. package/lib/graphqlHelper.js +596 -0
  19. package/lib/graphqlHelper.ts +692 -0
  20. package/lib/initialize.d.ts +1 -0
  21. package/lib/initialize.js +22 -0
  22. package/lib/initialize.ts +21 -0
  23. package/notes.md +1976 -0
  24. package/package.json +47 -0
  25. package/readme.md +258 -0
  26. package/restApi.http +11 -0
  27. package/src/additionalResolvers.d.ts +19 -0
  28. package/src/additionalResolvers.js +114 -0
  29. package/src/additionalResolvers.ts +111 -0
  30. package/src/graphql.d.ts +7 -0
  31. package/src/graphql.js +144 -0
  32. package/src/graphql.ts +160 -0
  33. package/src/resolvers/cart.d.ts +123 -0
  34. package/src/resolvers/cart.js +176 -0
  35. package/src/resolvers/cart.ts +256 -0
  36. package/src/resolvers/checkout.d.ts +30 -0
  37. package/src/resolvers/checkout.js +226 -0
  38. package/src/resolvers/checkout.ts +242 -0
  39. package/src/resolvers/dishAndModifier.d.ts +2 -0
  40. package/src/resolvers/dishAndModifier.js +35 -0
  41. package/src/resolvers/dishAndModifier.ts +38 -0
  42. package/src/resolvers/maintenance.d.ts +9 -0
  43. package/src/resolvers/maintenance.js +12 -0
  44. package/src/resolvers/maintenance.ts +11 -0
  45. package/src/resolvers/paymentMethod.d.ts +9 -0
  46. package/src/resolvers/paymentMethod.js +22 -0
  47. package/src/resolvers/paymentMethod.ts +20 -0
  48. package/src/resolvers/restrictions.d.ts +9 -0
  49. package/src/resolvers/restrictions.js +24 -0
  50. package/src/resolvers/restrictions.ts +22 -0
  51. package/src/resolvers/streets.d.ts +9 -0
  52. package/src/resolvers/streets.js +16 -0
  53. package/src/resolvers/streets.ts +13 -0
  54. package/src/resolvers/subscriptions.d.ts +33 -0
  55. package/src/resolvers/subscriptions.js +52 -0
  56. package/src/resolvers/subscriptions.ts +63 -0
  57. package/test/.eslintrc +8 -0
  58. package/test/_bootstrap.js +29 -0
  59. package/test/fixtures/v0.12-app/.gitignore +11 -0
  60. package/test/fixtures/v0.12-app/.sailsrc +11 -0
  61. package/test/fixtures/v0.12-app/api/controllers/.gitkeep +0 -0
  62. package/test/fixtures/v0.12-app/api/models/.gitkeep +0 -0
  63. package/test/fixtures/v0.12-app/api/models/TestModel.js +22 -0
  64. package/test/fixtures/v0.12-app/api/responses/badRequest.js +76 -0
  65. package/test/fixtures/v0.12-app/api/responses/created.js +60 -0
  66. package/test/fixtures/v0.12-app/api/responses/forbidden.js +89 -0
  67. package/test/fixtures/v0.12-app/api/responses/notFound.js +94 -0
  68. package/test/fixtures/v0.12-app/api/responses/ok.js +60 -0
  69. package/test/fixtures/v0.12-app/api/responses/serverError.js +89 -0
  70. package/test/fixtures/v0.12-app/api/services/.gitkeep +0 -0
  71. package/test/fixtures/v0.12-app/app.js +73 -0
  72. package/test/fixtures/v0.12-app/config/bootstrap.js +6 -0
  73. package/test/fixtures/v0.12-app/config/connections.js +5 -0
  74. package/test/fixtures/v0.12-app/config/cors.js +78 -0
  75. package/test/fixtures/v0.12-app/config/csrf.js +64 -0
  76. package/test/fixtures/v0.12-app/config/env/development.js +10 -0
  77. package/test/fixtures/v0.12-app/config/env/production.js +16 -0
  78. package/test/fixtures/v0.12-app/config/globals.js +63 -0
  79. package/test/fixtures/v0.12-app/config/hookTimeout.js +8 -0
  80. package/test/fixtures/v0.12-app/config/http.js +93 -0
  81. package/test/fixtures/v0.12-app/config/i18n.js +57 -0
  82. package/test/fixtures/v0.12-app/config/log.js +29 -0
  83. package/test/fixtures/v0.12-app/config/models.js +3 -0
  84. package/test/fixtures/v0.12-app/config/policies.js +51 -0
  85. package/test/fixtures/v0.12-app/config/restoapi.js +3 -0
  86. package/test/fixtures/v0.12-app/config/restocore.js +39 -0
  87. package/test/fixtures/v0.12-app/config/routes.js +49 -0
  88. package/test/fixtures/v0.12-app/config/session.js +100 -0
  89. package/test/fixtures/v0.12-app/config/sockets.js +141 -0
  90. package/test/fixtures/v0.12-app/config/stateflow.js +4 -0
  91. package/test/fixtures/v0.12-app/config/views.js +95 -0
  92. package/test/fixtures/v0.12-app/package.json +34 -0
  93. package/test/fixtures/v0.12-app/views/403.ejs +68 -0
  94. package/test/fixtures/v0.12-app/views/404.ejs +68 -0
  95. package/test/fixtures/v0.12-app/views/500.ejs +73 -0
  96. package/test/fixtures/v0.12-app/views/homepage.ejs +74 -0
  97. package/test/fixtures/v0.12-app/views/layout.ejs +91 -0
  98. package/test/mocha.opts +2 -0
  99. package/test/readme.md +0 -0
  100. package/test/todo +0 -0
  101. package/test/tslint.json +18 -0
  102. package/test/unit/first.test.js +11 -0
  103. package/test/unit/sails_not_crash.test.js +3 -0
  104. package/todo.md +1 -0
  105. package/tsconfig.json +10 -0
package/.editorconfig ADDED
@@ -0,0 +1,10 @@
1
+ # editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ indent_style = space
6
+ indent_size = 2
7
+ end_of_line = lf
8
+ charset = utf-8
9
+ trim_trailing_whitespace = true
10
+ insert_final_newline = true
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './lib/eventHelper';
2
+ export * from './lib/graphqlHelper';
3
+ export * from './lib/errorWrapper';
package/index.js ADDED
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ const helper = require('./lib/graphqlHelper').default;
14
+ module.exports = function (sails) {
15
+ return {
16
+ defaults: require('./lib/defaults'),
17
+ initialize: require('./lib/initialize').default(sails)
18
+ };
19
+ };
20
+ __exportStar(require("./lib/eventHelper"), exports);
21
+ __exportStar(require("./lib/graphqlHelper"), exports);
22
+ __exportStar(require("./lib/errorWrapper"), exports);
package/index.ts ADDED
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ const helper = require('./lib/graphqlHelper').default;
4
+
5
+ module.exports = function (sails) {
6
+ return {
7
+ defaults: require('./lib/defaults'),
8
+ initialize: require('./lib/initialize').default(sails)
9
+ };
10
+ };
11
+
12
+ export * from './lib/eventHelper';
13
+ export * from './lib/graphqlHelper';
14
+ export * from './lib/errorWrapper';
@@ -0,0 +1 @@
1
+ export default function (): Promise<void>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const graphql_1 = require("../src/graphql");
4
+ let cache = null;
5
+ async function default_1() {
6
+ try {
7
+ sails.log.verbose('>>> graphql hook starting');
8
+ sails.on('clear_cache', async function () {
9
+ cache = null;
10
+ });
11
+ sails.on('lifted', async function () {
12
+ const graphServer = await graphql_1.default.init();
13
+ // inject middleware into express app
14
+ sails.hooks.http.app.use(graphServer.getMiddleware());
15
+ let layer = sails.hooks.http.app._router.stack.slice(-1)[0];
16
+ sails.hooks.http.app._router.stack.splice(1, 0, layer);
17
+ graphServer.installSubscriptionHandlers(sails.hooks.http.server);
18
+ });
19
+ }
20
+ catch (e) {
21
+ sails.log.error('graphql > afterHook > error1', e);
22
+ }
23
+ }
24
+ exports.default = default_1;
@@ -0,0 +1,26 @@
1
+ import graphql from '../src/graphql';
2
+ let cache = null;
3
+
4
+ export default async function () {
5
+ try {
6
+
7
+ sails.log.verbose('>>> graphql hook starting');
8
+ sails.on('clear_cache', async function (){
9
+ cache = null;
10
+ });
11
+ sails.on('lifted', async function (){
12
+ const graphServer = await graphql.init();
13
+
14
+ // inject middleware into express app
15
+ sails.hooks.http.app.use(graphServer.getMiddleware());
16
+ let layer = sails.hooks.http.app._router.stack.slice(-1)[0]
17
+ sails.hooks.http.app._router.stack.splice(1, 0, layer)
18
+ graphServer.installSubscriptionHandlers(sails.hooks.http.server);
19
+ })
20
+
21
+
22
+ } catch (e) {
23
+ sails.log.error('graphql > afterHook > error1', e);
24
+ }
25
+ }
26
+
@@ -0,0 +1,138 @@
1
+ import graphql from "../src/graphql";
2
+ import * as helper from "./graphqlHelper";
3
+ import { useServer } from 'graphql-ws/lib/use/ws';
4
+ import { execute, subscribe } from "graphql";
5
+ import * as WebSocket from 'ws';
6
+
7
+
8
+ import { createServer } from 'graphql-transport-ws';
9
+
10
+ import * as url from "url";
11
+ import { formatApolloErrors } from "apollo-server-errors";
12
+
13
+ export default async function () {
14
+ try {
15
+ sails.log.verbose(">>> graphql hook starting");
16
+ sails.on("lifted", async function () {
17
+ const graphServer = await graphql.init();
18
+
19
+ // inject middleware into express app
20
+ sails.hooks.http.app.use(graphServer.getMiddleware());
21
+ let layer = sails.hooks.http.app._router.stack.slice(-1)[0];
22
+ sails.hooks.http.app._router.stack.splice(1, 0, layer);
23
+ // graphServer.installSubscriptionHandlers(sails.hooks.http.server);
24
+
25
+ // WebSocket
26
+
27
+ const schema = graphServer.schema;
28
+
29
+ const graphqlWS = new WebSocket.Server({ noServer: true });
30
+ console.log(graphqlWS)
31
+ // serve graphql
32
+ // useServer({ schema }, graphqlWS);
33
+
34
+ // const subscriptionServer = createServer(
35
+ // {
36
+ // schema,
37
+ // execute,
38
+ // subscribe,
39
+ // onConnect() {
40
+ // console.log("SubscriptionServer ready!");
41
+ // }
42
+ // },
43
+ // {
44
+ // noServer: true,
45
+ // }
46
+ // );
47
+
48
+
49
+ // const subscriptionServer = SubscriptionServer.create(
50
+ // {
51
+ // schema,
52
+ // execute,
53
+ // subscribe,
54
+ // onConnect:(connectionParams: Object) => ({ ...connectionParams }),
55
+ // // onDisconnect: onDisconnect,
56
+ // onOperation: async (
57
+ // message: { payload: any },
58
+ // connection: ExecutionParams,
59
+ // ) => {
60
+ // connection.formatResponse = (value: any) => ({
61
+ // ...value,
62
+ // // errors:
63
+ // // value.errors &&
64
+ // // formatApolloErrors([...value.errors], {
65
+ // // formatter: this.requestOptions.formatError,
66
+ // // debug: this.requestOptions.debug,
67
+ // // }),
68
+ // });
69
+
70
+ // // connection.formatError = this.requestOptions.formatError;
71
+ // console.log("<><><><",this.context, connection)
72
+ // let context: any = this.context ? this.context : { connection };
73
+
74
+ // try {
75
+ // context =
76
+ // typeof this.context === 'function'
77
+ // ? await this.context({ connection, payload: message.payload })
78
+ // : context;
79
+ // } catch (e) {
80
+ // // throw formatApolloErrors([e], {
81
+ // // formatter: this.requestOptions.formatError,
82
+ // // debug: this.requestOptions.debug,
83
+ // // })[0];
84
+ // }
85
+
86
+ // return { ...connection, context };
87
+ // },
88
+ // // keepAlive,
89
+ // // validationRules: this.requestOptions.validationRules,
90
+ // },
91
+ // {
92
+ // noServer: true,
93
+ // }
94
+ // );
95
+
96
+ //@ts-ignore we need to access the private field which typescript does not like
97
+ // const wsServer: WebSocket.Server = subscriptionServer.wsServer;
98
+ const upgradeHandler = (req, socket, head) => {
99
+ if (!req.url) return;
100
+ const pathname = url.parse(req.url).pathname;
101
+
102
+ if (!pathname) return;
103
+
104
+
105
+ // if (pathname === '/graphql') {
106
+ // return graphqlWS.handleUpgrade(request, socket, head, (client) => {
107
+ // graphqlWS.emit('connection', client, request);
108
+ // });
109
+ // }
110
+
111
+ console.log(pathname)
112
+ if (pathname.startsWith("/graphql")) {
113
+ console.log(">>>>>>>>>>>>>>>>>>>..")
114
+
115
+ graphqlWS.handleUpgrade(req, socket, head, (ws) => {
116
+ console.log(">>>>>>>>>>>>>>>>>>>..111")
117
+ graphqlWS.emit('connection', ws, req);
118
+ });
119
+ }
120
+ };
121
+
122
+ sails.hooks.http.server.on("upgrade", upgradeHandler);
123
+
124
+ createServer(
125
+ {
126
+ schema,
127
+ execute,
128
+ subscribe,
129
+ },
130
+ graphqlWS,
131
+ );
132
+
133
+
134
+ });
135
+ } catch (e) {
136
+ sails.log.error("graphql > afterHook > error1", e);
137
+ }
138
+ }
@@ -0,0 +1,133 @@
1
+ import graphql from "../src/graphql";
2
+ import * as helper from "./graphqlHelper";
3
+ import { useServer } from 'graphql-ws/lib/use/ws';
4
+ import { execute, subscribe } from "graphql";
5
+ import * as ws from "ws";
6
+ const WebSocketServer = ws.Server
7
+
8
+ import * as url from "url";
9
+ import { formatApolloErrors } from "apollo-server-errors";
10
+
11
+ export default async function () {
12
+ try {
13
+ sails.log.verbose(">>> graphql hook starting");
14
+ sails.on("lifted", async function () {
15
+ const graphServer = await graphql.init();
16
+
17
+ // inject middleware into express app
18
+ sails.hooks.http.app.use(graphServer.getMiddleware());
19
+ let layer = sails.hooks.http.app._router.stack.slice(-1)[0];
20
+ sails.hooks.http.app._router.stack.splice(1, 0, layer);
21
+ // graphServer.installSubscriptionHandlers(sails.hooks.http.server);
22
+
23
+ // WebSocket
24
+
25
+ const schema = graphServer.schema;
26
+
27
+ const graphqlWS = new WebSocketServer({ noServer: true });
28
+
29
+ // serve graphql
30
+ useServer({ schema }, graphqlWS);
31
+
32
+ // const subscriptionServer = SubscriptionServer.create(
33
+ // {
34
+ // schema,
35
+ // execute,
36
+ // subscribe,
37
+ // onConnect() {
38
+ // console.log("SubscriptionServer ready!");
39
+ // },
40
+ // onOperation: async (
41
+ // message: { payload: any },
42
+ // connection: ExecutionParams
43
+ // ) => {
44
+ // connection.formatResponse = (value: any) => ({
45
+ // ...value
46
+ // });
47
+ // console.log("<><><><",this.context)
48
+ // let context: any = this.context ? this.context : { connection };
49
+
50
+ // try {
51
+ // context =
52
+ // typeof this.context === "function"
53
+ // ? await this.context({ connection, payload: message.payload })
54
+ // : context;
55
+ // } catch (e) {
56
+ // console.log(e)
57
+ // }
58
+
59
+ // return { ...connection, context };
60
+ // },
61
+ // },
62
+ // {
63
+ // noServer: true,
64
+ // }
65
+ // );
66
+
67
+ // const subscriptionServer = SubscriptionServer.create(
68
+ // {
69
+ // schema,
70
+ // execute,
71
+ // subscribe,
72
+ // onConnect:(connectionParams: Object) => ({ ...connectionParams }),
73
+ // // onDisconnect: onDisconnect,
74
+ // onOperation: async (
75
+ // message: { payload: any },
76
+ // connection: ExecutionParams,
77
+ // ) => {
78
+ // connection.formatResponse = (value: any) => ({
79
+ // ...value,
80
+ // // errors:
81
+ // // value.errors &&
82
+ // // formatApolloErrors([...value.errors], {
83
+ // // formatter: this.requestOptions.formatError,
84
+ // // debug: this.requestOptions.debug,
85
+ // // }),
86
+ // });
87
+
88
+ // // connection.formatError = this.requestOptions.formatError;
89
+ // console.log("<><><><",this.context, connection)
90
+ // let context: any = this.context ? this.context : { connection };
91
+
92
+ // try {
93
+ // context =
94
+ // typeof this.context === 'function'
95
+ // ? await this.context({ connection, payload: message.payload })
96
+ // : context;
97
+ // } catch (e) {
98
+ // // throw formatApolloErrors([e], {
99
+ // // formatter: this.requestOptions.formatError,
100
+ // // debug: this.requestOptions.debug,
101
+ // // })[0];
102
+ // }
103
+
104
+ // return { ...connection, context };
105
+ // },
106
+ // // keepAlive,
107
+ // // validationRules: this.requestOptions.validationRules,
108
+ // },
109
+ // {
110
+ // noServer: true,
111
+ // }
112
+ // );
113
+
114
+ //@ts-ignore we need to access the private field which typescript does not like
115
+ // const wsServer: WebSocket.Server = subscriptionServer.wsServer;
116
+ const upgradeHandler = (req, socket, head) => {
117
+ if (!req.url) return;
118
+ const pathname = url.parse(req.url).pathname;
119
+
120
+ if (!pathname) return;
121
+
122
+ if (pathname.startsWith("/graphql")) {
123
+ graphqlWS.handleUpgrade(req, socket, head, (ws) => {
124
+ graphqlWS.emit("connection", ws, req);
125
+ });
126
+ }
127
+ };
128
+ sails.hooks.http.server.on("upgrade", upgradeHandler);
129
+ });
130
+ } catch (e) {
131
+ sails.log.error("graphql > afterHook > error1", e);
132
+ }
133
+ }
@@ -0,0 +1,12 @@
1
+ module.exports.restographql = {
2
+ whiteListAutoGen: {
3
+ group: ['query', 'subscription'],
4
+ dish: ['query', 'subscription']
5
+ },
6
+ blackList: [
7
+ 'Order.groupModifiers',
8
+ 'isDeleted',
9
+ 'createdAt',
10
+ 'updatedAt'
11
+ ]
12
+ };
@@ -0,0 +1,4 @@
1
+ import { ApolloError } from 'apollo-server-errors';
2
+ export declare class Error extends ApolloError {
3
+ constructor(code?: string, message?: string);
4
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Error = void 0;
4
+ const apollo_server_errors_1 = require("apollo-server-errors");
5
+ class Error extends apollo_server_errors_1.ApolloError {
6
+ constructor(code, message) {
7
+ if (process.env.NODE_ENV == "production" && code === "INTERNAL_ERROR")
8
+ message = 'Что-то пошло не так';
9
+ super(message, code);
10
+ Object.defineProperty(this, 'name', { value: '' });
11
+ }
12
+ }
13
+ exports.Error = Error;
@@ -0,0 +1,12 @@
1
+ import { ApolloError } from 'apollo-server-errors';
2
+
3
+ export class Error extends ApolloError {
4
+ constructor(code?: string, message?: string) {
5
+ if (process.env.NODE_ENV == "production" && code === "INTERNAL_ERROR")
6
+ message = 'Что-то пошло не так';
7
+ super(message, code);
8
+
9
+
10
+ Object.defineProperty(this, 'name', { value: '' });
11
+ }
12
+ }
@@ -0,0 +1,21 @@
1
+ declare const _default: {
2
+ sendMessage: typeof sendMessage;
3
+ sendAction: typeof sendAction;
4
+ };
5
+ export default _default;
6
+ export { sendMessage, sendAction };
7
+ declare function sendMessage(orderId: String, message: any): void;
8
+ /**
9
+ *
10
+ * @param orderId
11
+ * @param action - obj {type: String, data: Json}
12
+ *
13
+ * @example
14
+ * {
15
+ * type: "PaymentRedirect",
16
+ * data: {
17
+ * url: "somelink.com/"
18
+ * }
19
+ * }
20
+ */
21
+ declare function sendAction(orderId: String, action: any): void;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendAction = exports.sendMessage = void 0;
4
+ const graphql_1 = require("../src/graphql");
5
+ // import * as gql from '@webresto/graphql';
6
+ exports.default = {
7
+ sendMessage,
8
+ sendAction
9
+ };
10
+ function sendMessage(orderId, message) {
11
+ const pubsub = graphql_1.default.getPubsub();
12
+ pubsub.publish("message", { orderId, message });
13
+ }
14
+ exports.sendMessage = sendMessage;
15
+ /**
16
+ *
17
+ * @param orderId
18
+ * @param action - obj {type: String, data: Json}
19
+ *
20
+ * @example
21
+ * {
22
+ * type: "PaymentRedirect",
23
+ * data: {
24
+ * url: "somelink.com/"
25
+ * }
26
+ * }
27
+ */
28
+ function sendAction(orderId, action) {
29
+ const pubsub = graphql_1.default.getPubsub();
30
+ pubsub.publish("action", { orderId, action });
31
+ }
32
+ exports.sendAction = sendAction;
@@ -0,0 +1,35 @@
1
+ import graphql from '../src/graphql';
2
+ // import * as gql from '@webresto/graphql';
3
+
4
+ export default {
5
+ sendMessage,
6
+ sendAction
7
+ }
8
+ export {
9
+ sendMessage,
10
+ sendAction
11
+ }
12
+
13
+ function sendMessage(orderId: String, message: any) {
14
+ const pubsub = graphql.getPubsub();
15
+ pubsub.publish("message", {orderId, message});
16
+ }
17
+
18
+ /**
19
+ *
20
+ * @param orderId
21
+ * @param action - obj {type: String, data: Json}
22
+ *
23
+ * @example
24
+ * {
25
+ * type: "PaymentRedirect",
26
+ * data: {
27
+ * url: "somelink.com/"
28
+ * }
29
+ * }
30
+ */
31
+
32
+ function sendAction(orderId: String, action: any) {
33
+ const pubsub = graphql.getPubsub();
34
+ pubsub.publish("action", {orderId, action});
35
+ }
@@ -0,0 +1,115 @@
1
+ /// <reference types="@webresto/core/libs/globalTypes" />
2
+ /**
3
+ * Добавляет модель в список моделей для создания типов схемы graphql
4
+ *
5
+ *
6
+ * @param modelName string
7
+ * @returns void
8
+ */
9
+ declare function addModel(modelName: string): void;
10
+ declare function addType(typeString: String): void;
11
+ /**
12
+ * Мержит новый резолвер с объектом резолверов. Новый резолвер заменит старый при совпадении имен
13
+ *
14
+ * @param resolvers
15
+ * resolverExample = {
16
+ * def: "user(id: String)",
17
+ * fn: function (parent, args, context) {
18
+ * return User.find({id: args.id})
19
+ * }
20
+ * }
21
+ */
22
+ declare function addResolvers(resolvers: Object): void;
23
+ /**
24
+ * Сканирует все модели sails и добавляет их в список моделей для создания типов схемы graphql
25
+ */
26
+ declare function addAllSailsModels(): void;
27
+ /**
28
+ * Добавляет массив с исключениями к текущему списку
29
+ * Варианты:
30
+ * 1. ["Order.field"] - исключает поле field в модели Order
31
+ * 2. ["Order"] - исключает модель Order полностью
32
+ * 3. ["field] - исключает поле field из всех моделей
33
+ *
34
+ * @param list array<string>
35
+ */
36
+ declare function addToBlackList(list: Array<string>): void;
37
+ /**
38
+ * Добавляет в указаную модель новое поле
39
+ * Пример: addCustomField("Order", "customField: String")
40
+ *
41
+ * @param model string
42
+ * @param field string
43
+ */
44
+ declare function addCustomField(model: any, field: any): void;
45
+ /**
46
+ * Добавляет в список автозамены поле.
47
+ * Пример: addToReplaceList("Dish.image", "image: [Image]");
48
+ *
49
+ * @param model string
50
+ * @param field string
51
+ */
52
+ declare function addToReplaceList(model: any, field: any): void;
53
+ /**
54
+ * Сканирует указанную директорию и добавляет найденные резолверсы в схему graphql
55
+ *
56
+ * @param dir
57
+ */
58
+ declare function addDirResolvers(dir: any): void;
59
+ /**
60
+ * Запускает генерацию схемы и резолверсов
61
+ * Возвращает готовые данные для использования при инициализации apollo server
62
+ *
63
+ * @returns {schemaTypes, schemaResolvers}
64
+ */
65
+ declare function getSchema(): {
66
+ typeDefs: string;
67
+ resolvers: Resolvers;
68
+ };
69
+ /**
70
+ * Добавляет whiteList
71
+ * Пример: setWhiteList({
72
+ page: ['query'],
73
+ promotion: ['query'],
74
+ maintenance: ['query', 'subscription']
75
+ })
76
+ *
77
+ * @param list
78
+ */
79
+ declare function setWhiteList(list: Object): void;
80
+ /**
81
+ * Генерирует резолвер для модели. Учитывает список исключений и whiteList
82
+ *
83
+ * @param modelname string
84
+ * @returns void
85
+ */
86
+ declare function addModelResolver(modelname: any): void;
87
+ declare const _default: {
88
+ addModel: typeof addModel;
89
+ addType: typeof addType;
90
+ addResolvers: typeof addResolvers;
91
+ getSchema: typeof getSchema;
92
+ addToBlackList: typeof addToBlackList;
93
+ addCustomField: typeof addCustomField;
94
+ addToReplaceList: typeof addToReplaceList;
95
+ addAllSailsModels: typeof addAllSailsModels;
96
+ addDirResolvers: typeof addDirResolvers;
97
+ addModelResolver: typeof addModelResolver;
98
+ setWhiteList: typeof setWhiteList;
99
+ };
100
+ export default _default;
101
+ export { addModel, addType, addResolvers, getSchema, addToBlackList, addCustomField, addToReplaceList, addAllSailsModels, addDirResolvers, addModelResolver, setWhiteList };
102
+ interface Resolvers {
103
+ Query?: Resolver;
104
+ Mutation?: Resolver;
105
+ Subscription?: Resolver;
106
+ }
107
+ interface Resolver {
108
+ [name: string]: {
109
+ def?: string;
110
+ fn?: Object;
111
+ subscribe?: Object;
112
+ resolve?: Object;
113
+ [x: string]: Object;
114
+ };
115
+ }