@volcanicminds/backend 0.1.4 → 0.1.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/NPM.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # NPM
2
2
 
3
+ [more info](https://zellwk.com/blog/publish-to-npm/)
4
+
3
5
  ## how to publish
4
6
 
5
7
  ```ruby
package/README.md CHANGED
@@ -144,3 +144,73 @@ SRV_HELMET=false
144
144
  SRV_RATELIMIT=false
145
145
  SRV_COMPRESS=false
146
146
  ```
147
+
148
+ # Routes
149
+
150
+ Minimal setup (routes.ts):
151
+
152
+ ```js
153
+ module.exports = {
154
+ routes: [
155
+ {
156
+ method: 'GET',
157
+ path: '/',
158
+ handler: 'myController.test'
159
+ }
160
+ ]
161
+ }
162
+ ```
163
+
164
+ Some notes:
165
+
166
+ - It's possible define a generic **config** (optional).
167
+ - It's possible define a **config** for a specific route (optional).
168
+ - It's possible define a list of **roles** (optional).
169
+ - It's possible define a list of **middleware** (optional).
170
+
171
+ ```js
172
+ module.exports = {
173
+ config: {
174
+ title: 'Example of routes.ts',
175
+ description: 'Example of routes.ts',
176
+ controller: 'controller',
177
+ tags: ['user', 'code'], // swagger
178
+ enable: true,
179
+ deprecated: false, // swagger
180
+ version: false // swagger
181
+ },
182
+ routes: [
183
+ {
184
+ method: 'GET',
185
+ path: '/',
186
+ roles: [],
187
+ handler: 'demo.user',
188
+ middlewares: ['global.isAuthenticated'],
189
+ config: {
190
+ enable: true,
191
+ title: 'Demo title', // swagger summary
192
+ description: 'Demo description', // swagger
193
+ tags: ['user', 'code'], // swagger
194
+ deprecated: false, // swagger
195
+ version: false, // swagger
196
+ response: {
197
+ 403: {
198
+ description: 'Unsuccessful response',
199
+ type: 'object',
200
+ properties: {
201
+ hello: { type: 'string' }
202
+ }
203
+ },
204
+ 200: {
205
+ description: 'Successful response',
206
+ type: 'object',
207
+ properties: {
208
+ id: { type: 'number' }
209
+ }
210
+ }
211
+ } // swagger
212
+ }
213
+ }
214
+ ]
215
+ }
216
+ ```
package/TODO.md CHANGED
@@ -1,12 +1,16 @@
1
1
  # TODO
2
2
 
3
+ https://tutorialjavascript.altervista.org/moduli-typescript
4
+ https://swagger.io/specification/v2/#swaggerObject
5
+ https://github.com/fastify/fastify-swagger
6
+ https://www.fastify.io/docs/latest/Reference/Validation-and-Serialization/
7
+ https://json-schema.org/draft/2020-12/json-schema-validation.html#name-pattern
8
+
3
9
  - roles
4
10
  - database psql
11
+ - hooks (esposti, es come middlewares ma per nome file specifico es onReady ecc)
5
12
  - models
6
13
  - validations
7
14
  - authentication
8
- - hooks (come middlewares esposti)
9
15
  - testare middlewares
10
- - usare progetto come modulo
11
- - creare modulo npm
12
16
  - metrics (plugin?)
@@ -1,16 +1,32 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.demo = exports.isAdmin = exports.user = void 0;
4
- async function user(req, reply) {
5
- reply.send(req.user || {});
13
+ function user(req, reply) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ reply.send(req.user || {});
16
+ });
6
17
  }
7
18
  exports.user = user;
8
- async function isAdmin(req, reply) {
9
- reply.send({ isAdmin: (req.user?.roles || []).includes('admin') || false });
19
+ function isAdmin(req, reply) {
20
+ var _a;
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ reply.send({ isAdmin: (((_a = req.user) === null || _a === void 0 ? void 0 : _a.roles) || []).includes('admin') || false });
23
+ });
10
24
  }
11
25
  exports.isAdmin = isAdmin;
12
- async function demo(req, reply) {
13
- reply.send({ demo: true });
26
+ function demo(req, reply) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ reply.send({ demo: true });
29
+ });
14
30
  }
15
31
  exports.demo = demo;
16
32
  //# sourceMappingURL=me.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"me.js","sourceRoot":"","sources":["../../../../lib/api/me/controller/me.ts"],"names":[],"mappings":";;;AAEO,KAAK,UAAU,IAAI,CAAC,GAAmB,EAAE,KAAmB;IACjE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;AAC5B,CAAC;AAFD,oBAEC;AAEM,KAAK,UAAU,OAAO,CAAC,GAAmB,EAAE,KAAmB;IACpE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;AAC7E,CAAC;AAFD,0BAEC;AAEM,KAAK,UAAU,IAAI,CAAC,GAAmB,EAAE,KAAmB;IACjE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAC5B,CAAC;AAFD,oBAEC"}
1
+ {"version":3,"file":"me.js","sourceRoot":"","sources":["../../../../lib/api/me/controller/me.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,SAAsB,IAAI,CAAC,GAAmB,EAAE,KAAmB;;QACjE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC5B,CAAC;CAAA;AAFD,oBAEC;AAED,SAAsB,OAAO,CAAC,GAAmB,EAAE,KAAmB;;;QACpE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,KAAK,KAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;;CAC5E;AAFD,0BAEC;AAED,SAAsB,IAAI,CAAC,GAAmB,EAAE,KAAmB;;QACjE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5B,CAAC;CAAA;AAFD,oBAEC"}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = {
2
+ module.exports = {
4
3
  config: {
5
4
  title: 'Useful functions',
6
5
  description: 'Useful functions',
@@ -8,7 +7,7 @@ exports.default = {
8
7
  tags: ['user', 'code'],
9
8
  enable: true,
10
9
  deprecated: false,
11
- version: false // swagger
10
+ version: false
12
11
  },
13
12
  routes: [
14
13
  {
@@ -39,7 +38,7 @@ exports.default = {
39
38
  id: { type: 'number' }
40
39
  }
41
40
  }
42
- } // swagger
41
+ }
43
42
  }
44
43
  },
45
44
  {
@@ -93,7 +92,7 @@ exports.default = {
93
92
  foo: { type: 'string' }
94
93
  }
95
94
  }
96
- } // swagger
95
+ }
97
96
  }
98
97
  }
99
98
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../lib/api/me/routes.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACb,MAAM,EAAE;QACN,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kBAAkB;QAC/B,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK,CAAC,UAAU;KAC1B;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACtB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,qBAAqB;wBAClC,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;qBACF;oBACD,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACvB;qBACF;iBACF,CAAC,UAAU;aACb;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,OAAO;gBACpB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,KAAK;aACf;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,CAAC,gBAAgB,CAAC;YAC/B,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACtB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE;4BACF,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,SAAS;yBACvB;qBACF;iBACF;gBACD,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,qBAAqB;wBAClC,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;qBACF;oBACD,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;qBACF;iBACF,CAAC,UAAU;aACb;SACF;KACF;CACF,CAAA"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../lib/api/me/routes.ts"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE;QACN,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,kBAAkB;QAC/B,UAAU,EAAE,YAAY;QACxB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,KAAK;KACf;IACD,MAAM,EAAE;QACN;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACtB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,qBAAqB;wBAClC,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;qBACF;oBACD,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACvB;qBACF;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,YAAY;YACrB,WAAW,EAAE,CAAC,wBAAwB,CAAC;YACvC,MAAM,EAAE;gBACN,KAAK,EAAE,OAAO;gBACd,WAAW,EAAE,OAAO;gBACpB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,KAAK;aACf;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,CAAC,gBAAgB,CAAC;YAC/B,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;gBACtB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE;4BACF,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,SAAS;yBACvB;qBACF;iBACF;gBACD,QAAQ,EAAE;oBACR,GAAG,EAAE;wBACH,WAAW,EAAE,qBAAqB;wBAClC,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;qBACF;oBACD,GAAG,EAAE;wBACH,WAAW,EAAE,kBAAkB;wBAC/B,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACxB;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAA"}
@@ -1,8 +1,19 @@
1
1
  'use strict';
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.myContextFunction = void 0;
4
- const myContextFunction = async () => ({
5
- greeting: 'Hello World!! ' + new Date().getTime()
13
+ const myContextFunction = () => __awaiter(void 0, void 0, void 0, function* () {
14
+ return ({
15
+ greeting: 'Hello World!! ' + new Date().getTime()
16
+ });
6
17
  });
7
18
  exports.myContextFunction = myContextFunction;
8
19
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../lib/apollo/context.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;AAQL,MAAM,iBAAiB,GAA4C,KAAK,IAAI,EAAE,CAAC,CAAC;IACrF,QAAQ,EAAE,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;CAClD,CAAC,CAAA;AAFW,QAAA,iBAAiB,qBAE5B"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../lib/apollo/context.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;AAQL,MAAM,iBAAiB,GAA4C,GAAS,EAAE;IAAC,OAAA,CAAC;QACrF,QAAQ,EAAE,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;KAClD,CAAC,CAAA;EAAA,CAAA;AAFW,QAAA,iBAAiB,qBAE5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../lib/config/roles.ts"],"names":[],"mappings":";;;AAQa,QAAA,KAAK,GAAW;IAC3B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,YAAY;KAC1B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iBAAiB;KAC/B;CACF,CAAA"}
1
+ {"version":3,"file":"roles.js","sourceRoot":"","sources":["../../lib/config/roles.ts"],"names":[],"mappings":";;;AASa,QAAA,KAAK,GAAW;IAC3B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,aAAa;KAC3B;IACD;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,YAAY;KAC1B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iBAAiB;KAC/B;CACF,CAAA"}
package/dist/index.js CHANGED
@@ -22,6 +22,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
25
34
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
36
  };
@@ -45,157 +54,159 @@ const fastify_2 = __importStar(require("@as-integrations/fastify"));
45
54
  const context_1 = require("./apollo/context");
46
55
  const resolvers_1 = __importDefault(require("./apollo/resolvers"));
47
56
  const type_defs_1 = __importDefault(require("./apollo/type-defs"));
48
- const begin = new Date().getTime();
49
- mark.print(logger_1.default);
50
- global.log = logger_1.default;
51
- global.roles = loaderRoles.load();
52
- async function attachApollo(fastify) {
53
- log.info('Attach ApolloServer to Fastify');
54
- const apollo = new server_1.ApolloServer({
55
- typeDefs: type_defs_1.default,
56
- resolvers: resolvers_1.default,
57
- plugins: [(0, fastify_2.fastifyApolloDrainPlugin)(fastify)]
58
- });
59
- await apollo.start();
60
- return apollo;
61
- }
62
- async function addApolloRouting(fastify, apollo) {
63
- if (apollo) {
64
- log.info('Add graphql routes');
65
- await fastify.register((0, fastify_2.default)(apollo), {
66
- context: context_1.myContextFunction
57
+ function attachApollo(fastify) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ log.info('Attach ApolloServer to Fastify');
60
+ const apollo = new server_1.ApolloServer({
61
+ typeDefs: type_defs_1.default,
62
+ resolvers: resolvers_1.default,
63
+ plugins: [(0, fastify_2.fastifyApolloDrainPlugin)(fastify)]
67
64
  });
68
- // // OR
69
- // fastify.post(
70
- // '/graphql-alt',
71
- // fastifyApolloHandler(apollo, {
72
- // context: myContextFunction
73
- // })
74
- // )
75
- }
76
- }
77
- async function addFastifyRouting(fastify) {
78
- log.info('Add fastify routes');
79
- fastify.addHook('onSend', async (req, reply) => {
80
- log.debug('onSend');
81
- });
82
- fastify.addHook('onResponse', async (req, reply) => {
83
- log.debug('onResponse');
84
- });
85
- fastify.addHook('onTimeout', async (req, reply) => {
86
- log.debug('onTimeout');
87
- });
88
- fastify.addHook('onReady', async () => {
89
- log.debug('onReady');
90
- });
91
- fastify.addHook('onClose', async (instance) => {
92
- log.debug('onClose');
65
+ yield apollo.start();
66
+ return apollo;
93
67
  });
94
- fastify.addHook('onError', async (req, reply, error) => {
95
- log.debug(`onError ${error}`);
96
- });
97
- fastify.addHook('onRequest', async (req, reply) => {
98
- log.debug(`onRequest ${req.method} ${req.url}`);
99
- req.user = {
100
- id: 306,
101
- name: 'Huseyin',
102
- roles: ['admin', 'public']
103
- };
68
+ }
69
+ function addApolloRouting(fastify, apollo) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ if (apollo) {
72
+ log.info('Add graphql routes');
73
+ yield fastify.register((0, fastify_2.default)(apollo), {
74
+ context: context_1.myContextFunction
75
+ });
76
+ }
104
77
  });
105
- fastify.addHook('preParsing', async (req) => {
106
- log.debug(`preParsing ${req.method} ${req.url}`);
107
- req.user = {
108
- id: 42,
109
- name: 'Jane Doe',
110
- roles: ['admin', 'public']
111
- };
78
+ }
79
+ function addFastifyRouting(fastify) {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ log.info('Add fastify routes');
82
+ fastify.addHook('onSend', (req, reply) => __awaiter(this, void 0, void 0, function* () {
83
+ log.debug('onSend');
84
+ }));
85
+ fastify.addHook('onResponse', (req, reply) => __awaiter(this, void 0, void 0, function* () {
86
+ log.debug('onResponse');
87
+ }));
88
+ fastify.addHook('onTimeout', (req, reply) => __awaiter(this, void 0, void 0, function* () {
89
+ log.debug('onTimeout');
90
+ }));
91
+ fastify.addHook('onReady', () => __awaiter(this, void 0, void 0, function* () {
92
+ log.debug('onReady');
93
+ }));
94
+ fastify.addHook('onClose', (instance) => __awaiter(this, void 0, void 0, function* () {
95
+ log.debug('onClose');
96
+ }));
97
+ fastify.addHook('onError', (req, reply, error) => __awaiter(this, void 0, void 0, function* () {
98
+ log.debug(`onError ${error}`);
99
+ }));
100
+ fastify.addHook('onRequest', (req, reply) => __awaiter(this, void 0, void 0, function* () {
101
+ log.debug(`onRequest ${req.method} ${req.url}`);
102
+ req.user = {
103
+ id: 306,
104
+ name: 'Huseyin',
105
+ roles: ['admin', 'public']
106
+ };
107
+ }));
108
+ fastify.addHook('preParsing', (req) => __awaiter(this, void 0, void 0, function* () {
109
+ log.debug(`preParsing ${req.method} ${req.url}`);
110
+ req.user = {
111
+ id: 42,
112
+ name: 'Jane Doe',
113
+ roles: ['admin', 'public']
114
+ };
115
+ }));
116
+ const routes = loaderRouter.load();
117
+ routes && loaderRouter.apply(fastify, routes);
112
118
  });
113
- const routes = loaderRouter.load();
114
- routes && loaderRouter.apply(fastify, routes);
115
119
  }
116
- async function addFastifySwagger(fastify) {
117
- const { NODE_ENV, SWAGGER, SWAGGER_TITLE, SWAGGER_DESCRIPTION, SWAGGER_VERSION } = process.env;
118
- const loadSwagger = (0, yn_1.default)(SWAGGER, false);
119
- if (loadSwagger && NODE_ENV !== 'production') {
120
- log.info('Add swagger plugin');
121
- await fastify.register(swagger_1.default, {
122
- swagger: {
123
- info: {
124
- title: SWAGGER_TITLE || 'API Documentation',
125
- description: SWAGGER_DESCRIPTION || 'List of available APIs and schemes to use',
126
- version: SWAGGER_VERSION || '0.1.0'
127
- },
128
- consumes: ['application/json'],
129
- produces: ['application/json']
130
- }
131
- });
132
- await fastify.register(swagger_ui_1.default, {
133
- routePrefix: '/documentation',
134
- uiConfig: {
135
- docExpansion: 'list',
136
- deepLinking: true,
137
- defaultModelsExpandDepth: 1
138
- },
139
- uiHooks: {
140
- onRequest: function (request, reply, next) {
141
- next();
142
- },
143
- preHandler: function (request, reply, next) {
144
- next();
120
+ function addFastifySwagger(fastify) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ const { NODE_ENV, SWAGGER, SWAGGER_TITLE, SWAGGER_DESCRIPTION, SWAGGER_VERSION } = process.env;
123
+ const loadSwagger = (0, yn_1.default)(SWAGGER, false);
124
+ if (loadSwagger && NODE_ENV !== 'production') {
125
+ log.info('Add swagger plugin');
126
+ yield fastify.register(swagger_1.default, {
127
+ swagger: {
128
+ info: {
129
+ title: SWAGGER_TITLE || 'API Documentation',
130
+ description: SWAGGER_DESCRIPTION || 'List of available APIs and schemes to use',
131
+ version: SWAGGER_VERSION || '0.1.0'
132
+ },
133
+ consumes: ['application/json'],
134
+ produces: ['application/json']
145
135
  }
146
- },
147
- staticCSP: true,
148
- transformStaticCSP: (header) => header
149
- });
150
- await fastify.put('/some-route/:id', {
151
- schema: {
152
- description: 'post some data',
153
- tags: ['user', 'code'],
154
- deprecated: true,
155
- summary: 'qwerty',
156
- params: {
157
- type: 'object',
158
- properties: {
159
- id: {
160
- type: 'string',
161
- description: 'user id'
162
- }
163
- }
136
+ });
137
+ yield fastify.register(swagger_ui_1.default, {
138
+ routePrefix: '/documentation',
139
+ uiConfig: {
140
+ docExpansion: 'list',
141
+ deepLinking: true,
142
+ defaultModelsExpandDepth: 1
164
143
  },
165
- body: {
166
- type: 'object',
167
- properties: {
168
- hello: { type: 'string' },
169
- obj: {
170
- type: 'object',
171
- properties: {
172
- some: { type: 'string' }
173
- }
174
- }
144
+ uiHooks: {
145
+ onRequest: function (request, reply, next) {
146
+ next();
147
+ },
148
+ preHandler: function (request, reply, next) {
149
+ next();
175
150
  }
176
151
  },
177
- response: {
178
- 201: {
179
- description: 'Successful response',
152
+ staticCSP: true,
153
+ transformStaticCSP: (header) => header
154
+ });
155
+ yield fastify.put('/some-route/:id', {
156
+ schema: {
157
+ description: 'post some data',
158
+ tags: ['user', 'code'],
159
+ deprecated: true,
160
+ summary: 'qwerty',
161
+ params: {
180
162
  type: 'object',
181
163
  properties: {
182
- hello: { type: 'string' }
164
+ id: {
165
+ type: 'string',
166
+ description: 'user id'
167
+ }
183
168
  }
184
169
  },
185
- default: {
186
- description: 'Default response',
170
+ body: {
187
171
  type: 'object',
188
172
  properties: {
189
- foo: { type: 'string' }
173
+ hello: { type: 'string' },
174
+ obj: {
175
+ type: 'object',
176
+ properties: {
177
+ some: { type: 'string' }
178
+ }
179
+ }
180
+ }
181
+ },
182
+ response: {
183
+ 201: {
184
+ description: 'Successful response',
185
+ type: 'object',
186
+ properties: {
187
+ hello: { type: 'string' }
188
+ }
189
+ },
190
+ default: {
191
+ description: 'Default response',
192
+ type: 'object',
193
+ properties: {
194
+ foo: { type: 'string' }
195
+ }
190
196
  }
191
197
  }
192
198
  }
193
- }
194
- }, (req, reply) => { });
195
- }
199
+ }, (req, reply) => { });
200
+ }
201
+ });
196
202
  }
197
- const opts = (0, yn_1.default)(process.env.LOG_FASTIFY, false) ? { logger: logger_1.default } : {};
198
- (0, fastify_1.default)(opts).then(async (fastify) => {
203
+ const start = () => __awaiter(void 0, void 0, void 0, function* () {
204
+ const begin = new Date().getTime();
205
+ mark.print(logger_1.default);
206
+ global.log = logger_1.default;
207
+ global.roles = loaderRoles.load();
208
+ const opts = (0, yn_1.default)(process.env.LOG_FASTIFY, false) ? { logger: logger_1.default } : {};
209
+ const fastify = yield (0, fastify_1.default)(opts);
199
210
  const { HOST: host = '0.0.0.0', PORT: port = '2230', GRAPHQL } = process.env;
200
211
  const { SRV_CORS, SRV_HELMET, SRV_RATELIMIT, SRV_COMPRESS } = process.env;
201
212
  const loadApollo = (0, yn_1.default)(GRAPHQL, true);
@@ -208,17 +219,15 @@ const opts = (0, yn_1.default)(process.env.LOG_FASTIFY, false) ? { logger: logge
208
219
  log.t && log.trace(`Add plugin HELMET: ${!loadApollo ? addPluginHelmet : 'Not usable with Apollo'}`);
209
220
  log.t && log.trace(`Add plugin COMPRESS: ${addPluginCompress}`);
210
221
  log.t && log.trace(`Add plugin RATELIMIT: ${addPluginRateLimit}`);
211
- const apollo = loadApollo ? await attachApollo(fastify) : null;
212
- // Helmet is not usable with Apollo Server
213
- !loadApollo && addPluginHelmet && (await fastify.register(helmet_1.default));
214
- // Usable with Apollo Server
215
- addPluginRateLimit && (await fastify.register(rate_limit_1.default));
216
- addPluginCors && (await fastify.register(cors_1.default));
217
- addPluginCompress && (await fastify.register(compress_1.default));
218
- await addFastifySwagger(fastify);
219
- await addApolloRouting(fastify, apollo);
220
- await addFastifyRouting(fastify);
221
- fastify
222
+ const apollo = loadApollo ? yield attachApollo(fastify) : null;
223
+ !loadApollo && addPluginHelmet && (yield fastify.register(helmet_1.default));
224
+ addPluginRateLimit && (yield fastify.register(rate_limit_1.default));
225
+ addPluginCors && (yield fastify.register(cors_1.default));
226
+ addPluginCompress && (yield fastify.register(compress_1.default));
227
+ yield addFastifySwagger(fastify);
228
+ yield addApolloRouting(fastify, apollo);
229
+ yield addFastifyRouting(fastify);
230
+ yield fastify
222
231
  .listen({
223
232
  port: Number(port),
224
233
  host: host
@@ -228,19 +237,9 @@ const opts = (0, yn_1.default)(process.env.LOG_FASTIFY, false) ? { logger: logge
228
237
  log.info(`All stuff loaded in ${elapsed} sec`);
229
238
  log.info(`🚀 Server ready at ${address}`);
230
239
  });
240
+ return fastify;
231
241
  });
232
- /**
233
- * These export configurations enable JS and TS developers
234
- * to consumer BE in whatever way best suits their needs.
235
- * Some examples of supported import syntax includes:
236
- * - `const server = require('@volcanicminds/backend')`
237
- * - `const { server } = require('@volcanicminds/backend')`
238
- * - `import * as Server from '@volcanicminds/backend'`
239
- * - `import { server, TSC_definition } from '@volcanicminds/backend'`
240
- * - `import server from '@volcanicminds/backend'`
241
- * - `import server, { TSC_definition } from '@volcanicminds/backend'`
242
- */
243
- module.exports = this;
244
- module.exports.server = this;
245
- module.exports.default = this;
242
+ module.exports = start;
243
+ module.exports.server = start;
244
+ module.exports.default = start;
246
245
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}