@volcanicminds/backend 2.1.0 → 2.1.2

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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAWtD,OAAO,OAA4B,MAAM,SAAS,CAAA;AAuIlD,QAAA,MAAM,KAAK,GAAU,eAAe,6NA2NnC,CAAA;AAED,YAAY,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAWtD,OAAO,OAA4B,MAAM,SAAS,CAAA;AAqIlD,QAAA,MAAM,KAAK,GAAU,eAAe,6NA2NnC,CAAA;AAED,YAAY,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA"}
package/dist/index.js CHANGED
@@ -52,10 +52,9 @@ async function addApolloRouting(server, apollo) {
52
52
  }
53
53
  async function addFastifyRouting(server) {
54
54
  log.trace('Add server routes');
55
- loaderHooks.apply(server);
56
- loaderSchemas.apply(server);
57
- const routes = loaderRouter.load();
58
- routes && loaderRouter.apply(server, routes);
55
+ await loaderHooks.apply(server);
56
+ await loaderSchemas.apply(server);
57
+ await loaderRouter.apply(server);
59
58
  }
60
59
  async function addFastifySwagger(server) {
61
60
  const { SWAGGER, SWAGGER_TITLE, SWAGGER_DESCRIPTION, SWAGGER_VERSION, SWAGGER_PREFIX_URL, SWAGGER_HOST } = process.env;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- declare const _default: (req: any, reply: any, error: any) => Promise<void>;
1
+ import { FastifyRequest, FastifyReply } from 'fastify';
2
+ declare const _default: (req: FastifyRequest, reply: FastifyReply, error: any) => Promise<never>;
2
3
  export default _default;
3
4
  //# sourceMappingURL=onError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"onError.d.ts","sourceRoot":"","sources":["../../../lib/hooks/onError.ts"],"names":[],"mappings":"yBAAsB,QAAG,EAAE,UAAK,EAAE,UAAK;AAAvC,wBAGC"}
1
+ {"version":3,"file":"onError.d.ts","sourceRoot":"","sources":["../../../lib/hooks/onError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;yBAEhC,KAAK,cAAc,EAAE,OAAO,YAAY,EAAE,OAAO,GAAG;AAA1E,wBA6BC"}
@@ -1,5 +1,27 @@
1
1
  export default async (req, reply, error) => {
2
- log.e && log.error(`${error}`);
2
+ log.e && log.error(`${error?.message || error}`);
3
3
  log.t && log.trace(error);
4
+ if (error.statusCode && error.statusCode >= 400) {
5
+ return reply.code(error.statusCode).send(error);
6
+ }
7
+ if (error.message === 'Wrong credentials' || error.message === 'Unauthorized') {
8
+ return reply.code(403).send({
9
+ statusCode: 403,
10
+ error: 'Forbidden',
11
+ message: error.message
12
+ });
13
+ }
14
+ if (error.message.includes('not found')) {
15
+ return reply.code(404).send({
16
+ statusCode: 404,
17
+ error: 'Not Found',
18
+ message: error.message
19
+ });
20
+ }
21
+ return reply.code(500).send({
22
+ statusCode: 500,
23
+ error: 'Internal Server Error',
24
+ message: error.message
25
+ });
4
26
  };
5
27
  //# sourceMappingURL=onError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onError.js","sourceRoot":"","sources":["../../../lib/hooks/onError.ts"],"names":[],"mappings":"AAAA,eAAe,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACzC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;IAC9B,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA"}
1
+ {"version":3,"file":"onError.js","sourceRoot":"","sources":["../../../lib/hooks/onError.ts"],"names":[],"mappings":"AAEA,eAAe,KAAK,EAAE,GAAmB,EAAE,KAAmB,EAAE,KAAU,EAAE,EAAE;IAC5E,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAA;IAChD,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAEzB,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,mBAAmB,IAAI,KAAK,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QAC1B,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare function apply(server: any): void;
1
+ export declare function apply(server: any): Promise<void>;
2
2
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../lib/loader/hooks.ts"],"names":[],"mappings":"AAqBA,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CA0BvC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../lib/loader/hooks.ts"],"names":[],"mappings":"AAoBA,wBAAsB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BtD"}
@@ -1,7 +1,6 @@
1
1
  import { normalizePatterns } from '../util/path.js';
2
2
  import { globSync } from 'glob';
3
3
  import path from 'path';
4
- import require from '../util/require.js';
5
4
  const hooks = [
6
5
  'onRequest',
7
6
  'onError',
@@ -17,22 +16,26 @@ const hooks = [
17
16
  'preSerialization',
18
17
  'preHandler'
19
18
  ];
20
- export function apply(server) {
19
+ export async function apply(server) {
21
20
  const patterns = normalizePatterns(['..', 'hooks', '*.{ts,js}'], ['src', 'hooks', '*.{ts,js}']);
22
21
  const allHooks = hooks.reduce((acc, v) => ({ ...acc, [v]: [] }), {});
23
- patterns.forEach((pattern) => {
22
+ for (const pattern of patterns) {
24
23
  log.t && log.trace('Looking for ' + pattern);
25
- globSync(pattern, { windowsPathsNoEscape: true }).forEach((f) => {
24
+ const files = globSync(pattern, { windowsPathsNoEscape: true });
25
+ for (const f of files) {
26
+ if (f.endsWith('.d.ts'))
27
+ continue;
26
28
  const hookName = path.basename(f, path.extname(f));
27
- const fn = require(f);
28
- if (fn != null) {
29
+ const module = await import(f);
30
+ const fn = module.default || module;
31
+ if (fn != null && typeof fn === 'function') {
29
32
  if (allHooks[hookName] == null) {
30
33
  allHooks[hookName] = [];
31
34
  }
32
35
  allHooks[hookName].push((...args) => fn(...args));
33
36
  }
34
- });
35
- });
37
+ }
38
+ }
36
39
  hooks.map((hookName) => {
37
40
  const fns = allHooks[hookName];
38
41
  log.t && log.trace(`* Add ${fns?.length || 0} hooks for ${hookName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../lib/loader/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,OAAO,MAAM,oBAAoB,CAAA;AAExC,MAAM,KAAK,GAAG;IACZ,WAAW;IACX,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,YAAY;CACb,CAAA;AAED,MAAM,UAAU,KAAK,CAAC,MAAW;IAC/B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;IAC/F,MAAM,QAAQ,GAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEvF,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAA;QAC5C,QAAQ,CAAC,OAAO,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAClD,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAErB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBACf,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC/B,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAgB,CAAA;gBACvC,CAAC;gBACD,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACnD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrB,MAAM,GAAG,GAAe,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC1C,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,MAAM,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAA;QACrE,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAc,CAAC,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;AAC3D,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../lib/loader/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,KAAK,GAAG;IACZ,WAAW;IACX,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,YAAY;CACb,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAW;IACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;IAC/F,MAAM,QAAQ,GAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEvF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAA;QAE/D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,SAAQ;YAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAA;YAEnC,IAAI,EAAE,IAAI,IAAI,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC/B,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAgB,CAAA;gBACvC,CAAC;gBACD,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrB,MAAM,GAAG,GAAe,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC1C,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,MAAM,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAA;QACrE,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAc,CAAC,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAA;AAC3D,CAAC"}
@@ -1,4 +1,2 @@
1
- import type { ConfiguredRoute } from '../../types/global.js';
2
- export declare function load(): ConfiguredRoute[];
3
- export declare function apply(server: any, routes: ConfiguredRoute[]): void;
1
+ export declare function apply(server: any): Promise<void>;
4
2
  //# sourceMappingURL=router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,eAAe,EAAe,MAAM,uBAAuB,CAAA;AAStF,wBAAgB,IAAI,IAAI,eAAe,EAAE,CA0JxC;AAgDD,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAgClE"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"AAuQA,wBAAsB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtD"}
@@ -2,19 +2,72 @@ import yn from '../util/yn.js';
2
2
  import { normalizePatterns } from '../util/path.js';
3
3
  import { globSync } from 'glob';
4
4
  import path from 'path';
5
- import require from '../util/require.js';
5
+ import { fileURLToPath } from 'url';
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = path.dirname(__filename);
6
8
  const methods = ['GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'PATCH', 'OPTIONS'];
7
- export function load() {
9
+ async function tryToLoadFile(fileName) {
10
+ try {
11
+ const module = await import(fileName);
12
+ return module.default || module;
13
+ }
14
+ catch (err) {
15
+ return null;
16
+ }
17
+ }
18
+ async function loadMiddleware(base, middleware = '') {
19
+ const key = 'global.';
20
+ const isGlobal = middleware.indexOf(key) > -1;
21
+ let loadedModule = null;
22
+ if (isGlobal) {
23
+ const name = middleware.substring(key.length);
24
+ const localPath = path.resolve(process.cwd() + '/src/middleware/' + name + '.ts');
25
+ const localPathJs = path.resolve(process.cwd() + '/src/middleware/' + name + '.js');
26
+ loadedModule = await tryToLoadFile(localPath);
27
+ if (!loadedModule)
28
+ loadedModule = await tryToLoadFile(localPathJs);
29
+ if (!loadedModule) {
30
+ const libPath = path.resolve(__dirname + '/../middleware/' + name + '.js');
31
+ loadedModule = await tryToLoadFile(libPath);
32
+ }
33
+ }
34
+ else {
35
+ const routeMiddPath = path.resolve(base + '/middleware/' + middleware);
36
+ loadedModule = await tryToLoadFile(routeMiddPath + '.ts');
37
+ if (!loadedModule)
38
+ loadedModule = await tryToLoadFile(routeMiddPath + '.js');
39
+ if (!loadedModule)
40
+ loadedModule = await tryToLoadFile(routeMiddPath);
41
+ }
42
+ if (!loadedModule) {
43
+ log.error(`Middleware ${middleware} not loaded`);
44
+ throw new Error(`Middleware ${middleware} not loaded`);
45
+ }
46
+ return loadedModule;
47
+ }
48
+ async function loadMiddlewares(base, middlewares = []) {
49
+ const midds = {};
50
+ for (const m of middlewares) {
51
+ const middleware = await loadMiddleware(base, m);
52
+ Object.keys(middleware).map((name) => (midds[name] = [...(midds[name] || []), middleware[name]]));
53
+ }
54
+ return midds;
55
+ }
56
+ async function load() {
8
57
  const validRoutes = [];
9
58
  const patterns = normalizePatterns(['..', 'api', '**', 'routes.{ts,js}'], ['src', 'api', '**', 'routes.{ts,js}']);
10
59
  const authMiddlewares = ['global.isAuthenticated', 'global.isAdmin'];
11
- patterns.forEach((pattern) => {
60
+ for (const pattern of patterns) {
12
61
  log.t && log.trace('Looking for ' + pattern);
13
- globSync(pattern, { windowsPathsNoEscape: true }).forEach((f, index, values) => {
62
+ const files = globSync(pattern, { windowsPathsNoEscape: true });
63
+ for (const f of files) {
64
+ if (f.endsWith('.d.ts'))
65
+ continue;
14
66
  const base = path.dirname(f);
15
67
  const dir = path.basename(base);
16
68
  const file = path.join(dir, path.basename(f));
17
- const routesjs = require(f);
69
+ const module = await import(f);
70
+ const routesjs = module.default || module;
18
71
  const { routes = [], config: defaultConfig = {} } = routesjs || {};
19
72
  log.t && log.trace(`* Add ${routes.length} routes from ${file}`);
20
73
  routes.forEach((route, index) => {
@@ -41,15 +94,12 @@ export function load() {
41
94
  const num = index + 1;
42
95
  const handlerParts = handler.split('.');
43
96
  if (enable) {
44
- if (!pathName.startsWith('/')) {
97
+ if (!pathName.startsWith('/'))
45
98
  errors.push(`Error in [${file}] bad path [${pathName}] at route n. ${num}`);
46
- }
47
- if (!methods.includes(method)) {
99
+ if (!methods.includes(method))
48
100
  errors.push(`Error in [${file}] bad method [${method}] at route n. ${num}`);
49
- }
50
- if (handlerParts.length !== 2) {
101
+ if (handlerParts.length !== 2)
51
102
  errors.push(`Error in [${file}] bad handler [${handler}] at route n. ${num}`);
52
- }
53
103
  const key = method + endpoint + version;
54
104
  if (validRoutes.some((r) => `${r.method}${r.path}${r.doc?.version}` === key)) {
55
105
  errors.push(`Error in [${file}] duplicated path [${pathName}] at route n. ${num}`);
@@ -97,52 +147,18 @@ export function load() {
97
147
  });
98
148
  }
99
149
  });
100
- });
101
- });
150
+ }
151
+ }
102
152
  log.d && log.debug(`Routes loaded: ${validRoutes.length}`);
103
153
  return validRoutes;
104
154
  }
105
- async function tryToLoadFile(fileName) {
106
- return new Promise((resolve, reject) => {
107
- try {
108
- const required = fileName ? require(fileName) : null;
109
- resolve(required);
110
- }
111
- catch (err) {
112
- reject(err);
113
- }
114
- });
115
- }
116
- async function loadMiddleware(base, middleware = '') {
117
- const key = 'global.';
118
- const isGlobal = middleware.indexOf(key) > -1;
119
- let required = null;
120
- if (isGlobal) {
121
- const name = middleware.substring(key.length);
122
- required = await tryToLoadFile(path.resolve(process.cwd() + '/src/middleware/' + name)).catch(async () => {
123
- return await tryToLoadFile(path.resolve(__dirname + '/../middleware/' + name));
124
- });
125
- }
126
- else {
127
- required = await tryToLoadFile(path.resolve(base + '/middleware/' + middleware));
155
+ async function applyRoutes(server, routes) {
156
+ if (!routes || routes.length === 0) {
157
+ log.w && log.warn('No routes to apply to server');
158
+ return;
128
159
  }
129
- if (!required) {
130
- log.error(`Middleware ${middleware} not loaded`);
131
- throw new Error(`Middleware ${middleware} not loaded`);
132
- }
133
- return required;
134
- }
135
- async function loadMiddlewares(base, middlewares = []) {
136
- const midds = {};
137
- await Promise.all(middlewares.map(async (m) => {
138
- const middleware = await loadMiddleware(base, m);
139
- Object.keys(middleware).map((name) => (midds[name] = [...(midds[name] || []), middleware[name]]));
140
- }));
141
- return midds;
142
- }
143
- export function apply(server, routes) {
144
160
  log.t && log.trace(`Apply ${routes.length} routes to server with pid ${process.pid}`);
145
- routes.forEach(async (route) => {
161
+ for (const route of routes) {
146
162
  if (route?.enable) {
147
163
  const { handler, method, path, middlewares, roles, rawBody, rateLimit, base, file, func, doc } = route;
148
164
  log.t && log.trace(`* Add path ${method} ${path} on handle ${handler}`);
@@ -159,16 +175,35 @@ export function apply(server, routes) {
159
175
  },
160
176
  handler: async function (req, reply) {
161
177
  try {
162
- const module = await import(file);
163
- return await module[func](req, reply);
178
+ let module;
179
+ try {
180
+ module = await import(file + '.js');
181
+ }
182
+ catch {
183
+ try {
184
+ module = await import(file + '.ts');
185
+ }
186
+ catch {
187
+ module = await import(file);
188
+ }
189
+ }
164
190
  }
165
191
  catch (err) {
166
- log.e && log.error(`Cannot find ${file} or method ${func}: ${err}`);
167
- return reply.code(500).send(`Invalid handler ${handler}`);
192
+ log.e && log.error(`Cannot load module ${file}: ${err}`);
193
+ return reply.code(500).send(`Invalid handler module ${handler}`);
168
194
  }
195
+ if (!module || typeof module[func] !== 'function') {
196
+ log.e && log.error(`Method ${func} not found in ${file}`);
197
+ return reply.code(500).send(`Invalid handler method ${handler}`);
198
+ }
199
+ return await module[func](req, reply);
169
200
  }
170
201
  });
171
202
  }
172
- });
203
+ }
204
+ }
205
+ export async function apply(server) {
206
+ const routes = await load();
207
+ return await applyRoutes(server, routes);
173
208
  }
174
209
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../lib/loader/router.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function apply(server: any): void;
1
+ export declare function apply(server: any): Promise<void>;
2
2
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":"AAKA,wBAAgB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAgEvC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":"AAIA,wBAAsB,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAyEtD"}
@@ -1,20 +1,23 @@
1
1
  import { normalizePatterns } from '../util/path.js';
2
2
  import { globSync } from 'glob';
3
3
  import path from 'path';
4
- import require from '../util/require.js';
5
- export function apply(server) {
4
+ export async function apply(server) {
6
5
  const [baseSchemaPath, customSchemaPath] = normalizePatterns(['..', 'schemas', '*.{ts,js}'], ['src', 'schemas', '*.{ts,js}']);
7
6
  const customSchemas = [];
8
7
  const customSchemaIds = new Set();
9
8
  let schemaCount = 0;
10
9
  log.t && log.trace('Looking for custom schemas in ' + customSchemaPath);
11
- globSync(customSchemaPath, { windowsPathsNoEscape: true }).forEach((f) => {
10
+ const customFiles = globSync(customSchemaPath, { windowsPathsNoEscape: true });
11
+ for (const f of customFiles) {
12
+ if (f.endsWith('.d.ts'))
13
+ continue;
12
14
  try {
13
- const schemaClass = require(f);
14
- const schemaNames = Object.keys(schemaClass);
15
+ const schemaModule = await import(f);
16
+ const schemaClass = schemaModule.default || schemaModule;
17
+ const schemaNames = Object.keys(schemaModule);
15
18
  schemaNames.forEach((name) => {
16
- const schema = schemaClass[name];
17
- if (schema?.$id) {
19
+ const schema = schemaModule[name];
20
+ if (schema && typeof schema === 'object' && schema.$id) {
18
21
  customSchemas.push(schema);
19
22
  customSchemaIds.add(schema.$id);
20
23
  }
@@ -23,21 +26,24 @@ export function apply(server) {
23
26
  catch (e) {
24
27
  log.w && log.warn(`Could not load custom schema file: ${f}`, e);
25
28
  }
26
- });
29
+ }
27
30
  customSchemas.forEach((schema) => {
28
31
  log.trace(`* Registering custom schema [${schema.$id}]`);
29
32
  server.addSchema(schema);
30
33
  schemaCount++;
31
34
  });
32
35
  log.t && log.trace('Looking for base schemas in ' + baseSchemaPath);
33
- globSync(baseSchemaPath, { windowsPathsNoEscape: true }).forEach((f) => {
36
+ const baseFiles = globSync(baseSchemaPath, { windowsPathsNoEscape: true });
37
+ for (const f of baseFiles) {
38
+ if (f.endsWith('.d.ts'))
39
+ continue;
34
40
  try {
35
41
  const schemaFileName = path.basename(f);
36
- const schemaClass = require(f);
37
- const schemaNames = Object.keys(schemaClass);
42
+ const schemaModule = await import(f);
43
+ const schemaNames = Object.keys(schemaModule);
38
44
  schemaNames.forEach((name) => {
39
- const schema = schemaClass[name];
40
- if (schema?.$id) {
45
+ const schema = schemaModule[name];
46
+ if (schema && typeof schema === 'object' && schema.$id) {
41
47
  if (customSchemaIds.has(schema.$id)) {
42
48
  log.w &&
43
49
  log.warn(`* Base schema [${schema.$id}] from ${schemaFileName} is overridden by a custom schema and will be ignored.`);
@@ -48,15 +54,15 @@ export function apply(server) {
48
54
  schemaCount++;
49
55
  }
50
56
  }
51
- else {
52
- log.w && log.warn(`* Schema with no $id found in ${schemaFileName}, cannot be registered.`);
57
+ else if (name !== 'default') {
58
+ log.w && log.warn(`* Schema with no $id found in ${schemaFileName} (export ${name}), cannot be registered.`);
53
59
  }
54
60
  });
55
61
  }
56
62
  catch (e) {
57
63
  log.w && log.warn(`Could not load base schema file: ${f}`, e);
58
64
  }
59
- });
65
+ }
60
66
  log.d && log.debug(`Schemas loaded: ${schemaCount} referenceable by $ref`);
61
67
  }
62
68
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../lib/loader/schemas.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,32 @@
1
- export default async (req, reply, error) => {
2
- log.e && log.error(`${error}`)
1
+ import { FastifyRequest, FastifyReply } from 'fastify'
2
+
3
+ export default async (req: FastifyRequest, reply: FastifyReply, error: any) => {
4
+ log.e && log.error(`${error?.message || error}`)
3
5
  log.t && log.trace(error)
6
+
7
+ if (error.statusCode && error.statusCode >= 400) {
8
+ return reply.code(error.statusCode).send(error)
9
+ }
10
+
11
+ if (error.message === 'Wrong credentials' || error.message === 'Unauthorized') {
12
+ return reply.code(403).send({
13
+ statusCode: 403,
14
+ error: 'Forbidden',
15
+ message: error.message
16
+ })
17
+ }
18
+
19
+ if (error.message.includes('not found')) {
20
+ return reply.code(404).send({
21
+ statusCode: 404,
22
+ error: 'Not Found',
23
+ message: error.message
24
+ })
25
+ }
26
+
27
+ return reply.code(500).send({
28
+ statusCode: 500,
29
+ error: 'Internal Server Error',
30
+ message: error.message
31
+ })
4
32
  }
@@ -1,7 +1,6 @@
1
1
  import { normalizePatterns } from '../util/path.js'
2
2
  import { globSync } from 'glob'
3
3
  import path from 'path'
4
- import require from '../util/require.js'
5
4
 
6
5
  const hooks = [
7
6
  'onRequest',
@@ -19,24 +18,29 @@ const hooks = [
19
18
  'preHandler'
20
19
  ]
21
20
 
22
- export function apply(server: any): void {
21
+ export async function apply(server: any): Promise<void> {
23
22
  const patterns = normalizePatterns(['..', 'hooks', '*.{ts,js}'], ['src', 'hooks', '*.{ts,js}'])
24
23
  const allHooks: any = hooks.reduce((acc, v) => ({ ...acc, [v]: [] as Function[] }), {})
25
24
 
26
- patterns.forEach((pattern) => {
25
+ for (const pattern of patterns) {
27
26
  log.t && log.trace('Looking for ' + pattern)
28
- globSync(pattern, { windowsPathsNoEscape: true }).forEach((f: string) => {
27
+ const files = globSync(pattern, { windowsPathsNoEscape: true })
28
+
29
+ for (const f of files) {
30
+ if (f.endsWith('.d.ts')) continue
31
+
29
32
  const hookName = path.basename(f, path.extname(f))
30
- const fn = require(f)
33
+ const module = await import(f)
34
+ const fn = module.default || module
31
35
 
32
- if (fn != null) {
36
+ if (fn != null && typeof fn === 'function') {
33
37
  if (allHooks[hookName] == null) {
34
38
  allHooks[hookName] = [] as Function[]
35
39
  }
36
40
  allHooks[hookName].push((...args) => fn(...args))
37
41
  }
38
- })
39
- })
42
+ }
43
+ }
40
44
 
41
45
  hooks.map((hookName) => {
42
46
  const fns: Function[] = allHooks[hookName]
@@ -4,24 +4,86 @@ import { FastifyReply, FastifyRequest } from 'fastify'
4
4
  import { normalizePatterns } from '../util/path.js'
5
5
  import { globSync } from 'glob'
6
6
  import path from 'path'
7
+ import { fileURLToPath } from 'url'
7
8
  import require from '../util/require.js'
8
9
 
10
+ const __filename = fileURLToPath(import.meta.url)
11
+ const __dirname = path.dirname(__filename)
12
+
9
13
  const methods = ['GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'PATCH', 'OPTIONS']
10
14
 
11
- export function load(): ConfiguredRoute[] {
15
+ async function tryToLoadFile(fileName: string) {
16
+ try {
17
+ const module = await import(fileName)
18
+ return module.default || module
19
+ } catch (err) {
20
+ return null
21
+ }
22
+ }
23
+
24
+ async function loadMiddleware(base: string, middleware: string = '') {
25
+ const key = 'global.'
26
+ const isGlobal = middleware.indexOf(key) > -1
27
+ let loadedModule: any = null
28
+
29
+ if (isGlobal) {
30
+ const name = middleware.substring(key.length)
31
+ // Prova path locali (es. src/middleware/auth.ts)
32
+ const localPath = path.resolve(process.cwd() + '/src/middleware/' + name + '.ts') // Prova TS
33
+ const localPathJs = path.resolve(process.cwd() + '/src/middleware/' + name + '.js') // Prova JS (dist)
34
+
35
+ loadedModule = await tryToLoadFile(localPath)
36
+ if (!loadedModule) loadedModule = await tryToLoadFile(localPathJs)
37
+
38
+ // Se non trova locale, prova interno alla lib
39
+ if (!loadedModule) {
40
+ const libPath = path.resolve(__dirname + '/../middleware/' + name + '.js')
41
+ loadedModule = await tryToLoadFile(libPath)
42
+ }
43
+ } else {
44
+ // Middleware locale alla route
45
+ const routeMiddPath = path.resolve(base + '/middleware/' + middleware)
46
+ // Qui è difficile indovinare l'estensione se non fornita, assumiamo che il loader sappia cosa fa o proviamo entrambe
47
+ loadedModule = await tryToLoadFile(routeMiddPath + '.ts')
48
+ if (!loadedModule) loadedModule = await tryToLoadFile(routeMiddPath + '.js')
49
+ if (!loadedModule) loadedModule = await tryToLoadFile(routeMiddPath) // Magari ha già estensione
50
+ }
51
+
52
+ if (!loadedModule) {
53
+ log.error(`Middleware ${middleware} not loaded`)
54
+ throw new Error(`Middleware ${middleware} not loaded`)
55
+ }
56
+ return loadedModule
57
+ }
58
+
59
+ async function loadMiddlewares(base: string, middlewares: string[] = []) {
60
+ const midds = {}
61
+ for (const m of middlewares) {
62
+ const middleware = await loadMiddleware(base, m)
63
+ // I middleware possono esportare più funzioni (preHandler, preSerialization, ecc.)
64
+ Object.keys(middleware).map((name) => (midds[name] = [...(midds[name] || []), middleware[name]]))
65
+ }
66
+ return midds
67
+ }
68
+
69
+ async function load(): Promise<ConfiguredRoute[]> {
12
70
  const validRoutes: ConfiguredRoute[] = []
13
71
  const patterns = normalizePatterns(['..', 'api', '**', 'routes.{ts,js}'], ['src', 'api', '**', 'routes.{ts,js}'])
14
72
  const authMiddlewares = ['global.isAuthenticated', 'global.isAdmin']
15
73
 
16
- patterns.forEach((pattern) => {
74
+ for (const pattern of patterns) {
17
75
  log.t && log.trace('Looking for ' + pattern)
18
- globSync(pattern, { windowsPathsNoEscape: true }).forEach((f: string, index: number, values: string[]) => {
76
+ const files = globSync(pattern, { windowsPathsNoEscape: true })
77
+
78
+ for (const f of files) {
79
+ if (f.endsWith('.d.ts')) continue
80
+
19
81
  const base = path.dirname(f)
20
82
  const dir = path.basename(base)
21
83
  const file = path.join(dir, path.basename(f))
22
84
 
23
- // allow array or structure
24
- const routesjs = require(f)
85
+ const module = await import(f)
86
+ const routesjs = module.default || module
25
87
  const { routes = [], config: defaultConfig = {} } = routesjs || {}
26
88
 
27
89
  log.t && log.trace(`* Add ${routes.length} routes from ${file}`)
@@ -42,7 +104,7 @@ export function load(): ConfiguredRoute[] {
42
104
  let requiredRoles: Role[] = []
43
105
 
44
106
  try {
45
- requiredRoles = rsp.some((r) => r.code === roles.admin.code) ? rsp : [...rsp, roles.admin] // admin is always present
107
+ requiredRoles = rsp.some((r) => r.code === roles.admin.code) ? rsp : [...rsp, roles.admin]
46
108
  } catch (err) {
47
109
  log.e && log.error(`Error in loading roles for ${methodCase} ${pathName} (${handler})`)
48
110
  log.t && log.trace(err)
@@ -57,7 +119,6 @@ export function load(): ConfiguredRoute[] {
57
119
  config.security = 'bearer'
58
120
  }
59
121
 
60
- // specific route config
61
122
  const {
62
123
  title = '',
63
124
  description = '',
@@ -74,24 +135,15 @@ export function load(): ConfiguredRoute[] {
74
135
  rawBody = false
75
136
  } = config || {}
76
137
 
77
- // adjust something
78
138
  const endpoint = `${dir}${pathName.replace(/\/+$/, '')}`
79
139
  const method = methodCase.toUpperCase()
80
140
  const num = index + 1
81
141
  const handlerParts = handler.split('.')
82
142
 
83
143
  if (enable) {
84
- if (!pathName.startsWith('/')) {
85
- errors.push(`Error in [${file}] bad path [${pathName}] at route n. ${num}`)
86
- }
87
-
88
- if (!methods.includes(method)) {
89
- errors.push(`Error in [${file}] bad method [${method}] at route n. ${num}`)
90
- }
91
-
92
- if (handlerParts.length !== 2) {
93
- errors.push(`Error in [${file}] bad handler [${handler}] at route n. ${num}`)
94
- }
144
+ if (!pathName.startsWith('/')) errors.push(`Error in [${file}] bad path [${pathName}] at route n. ${num}`)
145
+ if (!methods.includes(method)) errors.push(`Error in [${file}] bad method [${method}] at route n. ${num}`)
146
+ if (handlerParts.length !== 2) errors.push(`Error in [${file}] bad handler [${handler}] at route n. ${num}`)
95
147
 
96
148
  const key = method + endpoint + version
97
149
  if (validRoutes.some((r) => `${r.method}${r.path}${r.doc?.version}` === key)) {
@@ -122,19 +174,7 @@ export function load(): ConfiguredRoute[] {
122
174
  version,
123
175
  security: security === 'bearer' ? [{ Bearer: [] }] : security,
124
176
  response
125
- } as {
126
- summary: string
127
- description: string
128
- deprecated: boolean
129
- tags: string[]
130
- version: string
131
- security: any
132
- response: any
133
- querystring: any | undefined
134
- params: any | undefined
135
- body: any | undefined
136
- consumes: any | undefined
137
- }
177
+ } as any
138
178
 
139
179
  if (query) doc.querystring = query
140
180
  if (params) doc.params = params
@@ -153,67 +193,26 @@ export function load(): ConfiguredRoute[] {
153
193
  base,
154
194
  file: path.join(base, defaultConfig.controller || 'controller', handlerParts[0]),
155
195
  func: handlerParts[1],
156
- doc: doc // swagger & schema validation
196
+ doc: doc
157
197
  })
158
198
  }
159
199
  })
160
- })
161
- })
200
+ }
201
+ }
162
202
 
163
203
  log.d && log.debug(`Routes loaded: ${validRoutes.length}`)
164
204
  return validRoutes
165
205
  }
166
206
 
167
- async function tryToLoadFile(fileName: string) {
168
- return new Promise((resolve, reject) => {
169
- try {
170
- const required = fileName ? require(fileName) : null
171
- resolve(required)
172
- } catch (err) {
173
- reject(err)
174
- }
175
- })
176
- }
177
-
178
- async function loadMiddleware(base: string, middleware: string = '') {
179
- const key = 'global.'
180
- const isGlobal = middleware.indexOf(key) > -1
181
- let required: any = null
182
-
183
- if (isGlobal) {
184
- const name = middleware.substring(key.length)
185
- required = await tryToLoadFile(path.resolve(process.cwd() + '/src/middleware/' + name)).catch(async () => {
186
- return await tryToLoadFile(path.resolve(__dirname + '/../middleware/' + name))
187
- })
188
- } else {
189
- required = await tryToLoadFile(path.resolve(base + '/middleware/' + middleware))
207
+ async function applyRoutes(server: any, routes: ConfiguredRoute[]): Promise<void> {
208
+ if (!routes || routes.length === 0) {
209
+ log.w && log.warn('No routes to apply to server')
210
+ return
190
211
  }
191
212
 
192
- if (!required) {
193
- log.error(`Middleware ${middleware} not loaded`)
194
- throw new Error(`Middleware ${middleware} not loaded`)
195
- }
196
- return required
197
- }
198
-
199
- async function loadMiddlewares(base: string, middlewares: string[] = []) {
200
- const midds = {}
201
- await Promise.all(
202
- middlewares.map(async (m) => {
203
- const middleware = await loadMiddleware(base, m)
204
- Object.keys(middleware).map((name) => (midds[name] = [...(midds[name] || []), middleware[name]]))
205
- })
206
- )
207
- // log.debug(base + ' middleware ' + middlewares.length + ' -> ' + Object.keys(midds))
208
- return midds
209
- }
210
-
211
- // preParsing, preValidation, preHandler, preSerialization, ..
212
-
213
- export function apply(server: any, routes: ConfiguredRoute[]): void {
214
213
  log.t && log.trace(`Apply ${routes.length} routes to server with pid ${process.pid}`)
215
214
 
216
- routes.forEach(async (route) => {
215
+ for (const route of routes) {
217
216
  if (route?.enable) {
218
217
  const { handler, method, path, middlewares, roles, rawBody, rateLimit, base, file, func, doc } = route
219
218
 
@@ -232,14 +231,37 @@ export function apply(server: any, routes: ConfiguredRoute[]): void {
232
231
  },
233
232
  handler: async function (req: FastifyRequest, reply: FastifyReply) {
234
233
  try {
235
- const module = await import(file)
236
- return await module[func](req, reply)
234
+ // Import dinamico del controller
235
+ // Dobbiamo assicurarci che 'file' abbia l'estensione corretta o che il resolver la trovi
236
+ // In ESM strict, meglio provare ad aggiungere .js se manca, o lasciare che Node risolva se è un path assoluto
237
+ let module
238
+ try {
239
+ module = await import(file + '.js')
240
+ } catch {
241
+ try {
242
+ module = await import(file + '.ts')
243
+ } catch {
244
+ module = await import(file)
245
+ }
246
+ }
237
247
  } catch (err) {
238
- log.e && log.error(`Cannot find ${file} or method ${func}: ${err}`)
239
- return reply.code(500).send(`Invalid handler ${handler}`)
248
+ log.e && log.error(`Cannot load module ${file}: ${err}`)
249
+ return reply.code(500).send(`Invalid handler module ${handler}`)
250
+ }
251
+
252
+ if (!module || typeof module[func] !== 'function') {
253
+ log.e && log.error(`Method ${func} not found in ${file}`)
254
+ return reply.code(500).send(`Invalid handler method ${handler}`)
240
255
  }
256
+
257
+ return await module[func](req, reply)
241
258
  }
242
259
  })
243
260
  }
244
- })
261
+ }
262
+ }
263
+
264
+ export async function apply(server: any): Promise<void> {
265
+ const routes = await load()
266
+ return await applyRoutes(server, routes)
245
267
  }
@@ -1,9 +1,8 @@
1
1
  import { normalizePatterns } from '../util/path.js'
2
2
  import { globSync } from 'glob'
3
3
  import path from 'path'
4
- import require from '../util/require.js'
5
4
 
6
- export function apply(server: any): void {
5
+ export async function apply(server: any): Promise<void> {
7
6
  const [baseSchemaPath, customSchemaPath] = normalizePatterns(
8
7
  ['..', 'schemas', '*.{ts,js}'],
9
8
  ['src', 'schemas', '*.{ts,js}']
@@ -14,14 +13,19 @@ export function apply(server: any): void {
14
13
  let schemaCount = 0
15
14
 
16
15
  log.t && log.trace('Looking for custom schemas in ' + customSchemaPath)
17
- globSync(customSchemaPath, { windowsPathsNoEscape: true }).forEach((f: string) => {
16
+ const customFiles = globSync(customSchemaPath, { windowsPathsNoEscape: true })
17
+
18
+ for (const f of customFiles) {
19
+ if (f.endsWith('.d.ts')) continue
20
+
18
21
  try {
19
- const schemaClass = require(f)
20
- const schemaNames = Object.keys(schemaClass)
22
+ const schemaModule = await import(f)
23
+ const schemaClass = schemaModule.default || schemaModule
24
+ const schemaNames = Object.keys(schemaModule)
21
25
 
22
26
  schemaNames.forEach((name) => {
23
- const schema = schemaClass[name]
24
- if (schema?.$id) {
27
+ const schema = schemaModule[name]
28
+ if (schema && typeof schema === 'object' && schema.$id) {
25
29
  customSchemas.push(schema)
26
30
  customSchemaIds.add(schema.$id)
27
31
  }
@@ -29,7 +33,7 @@ export function apply(server: any): void {
29
33
  } catch (e) {
30
34
  log.w && log.warn(`Could not load custom schema file: ${f}`, e)
31
35
  }
32
- })
36
+ }
33
37
 
34
38
  customSchemas.forEach((schema) => {
35
39
  log.trace(`* Registering custom schema [${schema.$id}]`)
@@ -38,15 +42,19 @@ export function apply(server: any): void {
38
42
  })
39
43
 
40
44
  log.t && log.trace('Looking for base schemas in ' + baseSchemaPath)
41
- globSync(baseSchemaPath, { windowsPathsNoEscape: true }).forEach((f: string) => {
45
+ const baseFiles = globSync(baseSchemaPath, { windowsPathsNoEscape: true })
46
+
47
+ for (const f of baseFiles) {
48
+ if (f.endsWith('.d.ts')) continue
49
+
42
50
  try {
43
51
  const schemaFileName = path.basename(f)
44
- const schemaClass = require(f)
45
- const schemaNames = Object.keys(schemaClass)
52
+ const schemaModule = await import(f)
53
+ const schemaNames = Object.keys(schemaModule)
46
54
 
47
55
  schemaNames.forEach((name) => {
48
- const schema = schemaClass[name]
49
- if (schema?.$id) {
56
+ const schema = schemaModule[name]
57
+ if (schema && typeof schema === 'object' && schema.$id) {
50
58
  if (customSchemaIds.has(schema.$id)) {
51
59
  log.w &&
52
60
  log.warn(
@@ -57,14 +65,14 @@ export function apply(server: any): void {
57
65
  server.addSchema(schema)
58
66
  schemaCount++
59
67
  }
60
- } else {
61
- log.w && log.warn(`* Schema with no $id found in ${schemaFileName}, cannot be registered.`)
68
+ } else if (name !== 'default') {
69
+ log.w && log.warn(`* Schema with no $id found in ${schemaFileName} (export ${name}), cannot be registered.`)
62
70
  }
63
71
  })
64
72
  } catch (e) {
65
73
  log.w && log.warn(`Could not load base schema file: ${f}`, e)
66
74
  }
67
- })
75
+ }
68
76
 
69
77
  log.d && log.debug(`Schemas loaded: ${schemaCount} referenceable by $ref`)
70
78
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volcanicminds/backend",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "type": "module",
5
5
  "codename": "rome",
6
6
  "license": "MIT",