@tramvai/module-server 2.132.1 → 2.133.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.
@@ -1,10 +1,12 @@
1
1
  import type { FastifyInstance } from 'fastify';
2
2
  import type { Papi } from '@tramvai/papi';
3
- import type { DI_TOKEN } from '@tramvai/core';
3
+ import type { DI_TOKEN, ExtractDependencyType } from '@tramvai/core';
4
4
  import type { LOGGER_TOKEN } from '@tramvai/tokens-common';
5
+ import type { PAPI_FASTIFY_INIT_TOKEN } from '@tramvai/tokens-server-private';
5
6
  export interface CreateOptions {
6
7
  baseUrl: string;
7
8
  di: typeof DI_TOKEN;
8
9
  logger: typeof LOGGER_TOKEN;
10
+ papiInitHandlers: ExtractDependencyType<typeof PAPI_FASTIFY_INIT_TOKEN>;
9
11
  }
10
- export declare function createApi(rootApp: FastifyInstance, papiList: Papi[], { baseUrl, di, logger }: CreateOptions): void;
12
+ export declare function createApi(rootApp: FastifyInstance, papiList: Papi[], { baseUrl, di, logger, papiInitHandlers }: CreateOptions): void;
@@ -6,12 +6,16 @@ import { FASTIFY_REQUEST, FASTIFY_RESPONSE, PAPI_EXECUTOR } from '@tramvai/token
6
6
  import { createChildContainer, Scope } from '@tinkoff/dippy';
7
7
  import { HttpError } from '@tinkoff/errors';
8
8
 
9
- function createApi(rootApp, papiList, { baseUrl, di, logger }) {
9
+ const runHandlers = (instance, handlers) => {
10
+ return Promise.all([handlers && Promise.all(handlers.map((handler) => handler(instance)))]);
11
+ };
12
+ function createApi(rootApp, papiList, { baseUrl, di, logger, papiInitHandlers }) {
10
13
  const paths = new Set();
11
14
  const papiLog = logger('papi');
12
15
  rootApp.register(async (app) => {
13
16
  await app.register(fastifyCookie);
14
17
  await app.register(fastifyFormBody, { bodyLimit: 2097152 }); // 2mb
18
+ await runHandlers(app, papiInitHandlers);
15
19
  for (const papi of papiList) {
16
20
  const papiParams = getPapiParameters(papi);
17
21
  if (!papiParams) {
@@ -14,12 +14,16 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
14
14
 
15
15
  var fastifyFormBody__default = /*#__PURE__*/_interopDefaultLegacy(fastifyFormBody);
16
16
 
17
- function createApi(rootApp, papiList, { baseUrl, di, logger }) {
17
+ const runHandlers = (instance, handlers) => {
18
+ return Promise.all([handlers && Promise.all(handlers.map((handler) => handler(instance)))]);
19
+ };
20
+ function createApi(rootApp, papiList, { baseUrl, di, logger, papiInitHandlers }) {
18
21
  const paths = new Set();
19
22
  const papiLog = logger('papi');
20
23
  rootApp.register(async (app) => {
21
24
  await app.register(cookie.fastifyCookie);
22
25
  await app.register(fastifyFormBody__default["default"], { bodyLimit: 2097152 }); // 2mb
26
+ await runHandlers(app, papiInitHandlers);
23
27
  for (const papi$1 of papiList) {
24
28
  const papiParams = papi.getPapiParameters(papi$1);
25
29
  if (!papiParams) {
@@ -1,10 +1,10 @@
1
1
  import { __decorate } from 'tslib';
2
2
  import flatten from '@tinkoff/utils/array/flatten';
3
- import { Module, provide, DI_TOKEN } from '@tramvai/core';
3
+ import { Module, provide, DI_TOKEN, optional } from '@tramvai/core';
4
4
  import toArray from '@tinkoff/utils/array/toArray';
5
5
  import { LOGGER_TOKEN, ENV_MANAGER_TOKEN } from '@tramvai/tokens-common';
6
6
  import { SERVER_MODULE_PAPI_PRIVATE_ROUTE, SERVER_MODULE_PAPI_PUBLIC_ROUTE, SERVER_MODULE_PAPI_PRIVATE_URL, SERVER_MODULE_PAPI_PUBLIC_URL } from '@tramvai/tokens-server';
7
- import { WEB_FASTIFY_APP_BEFORE_INIT_TOKEN } from '@tramvai/tokens-server-private';
7
+ import { WEB_FASTIFY_APP_BEFORE_INIT_TOKEN, PAPI_FASTIFY_INIT_TOKEN } from '@tramvai/tokens-server-private';
8
8
  import { createPapiMethod, getPapiParameters } from '@tramvai/papi';
9
9
  import { createApi } from './api/index.es.js';
10
10
  import { fileApiProvider } from './server/fileApi.es.js';
@@ -21,7 +21,7 @@ ServerPapiModule = __decorate([
21
21
  ...sharedProviders,
22
22
  provide({
23
23
  provide: WEB_FASTIFY_APP_BEFORE_INIT_TOKEN,
24
- useFactory: ({ di, logger, privateRoutes, publicRoutes, publicBaseUrl, privateBaseUrl }) => (app) => {
24
+ useFactory: ({ di, logger, privateRoutes, publicRoutes, publicBaseUrl, privateBaseUrl, papiInitHandlers, }) => (app) => {
25
25
  if (process.env.NODE_ENV === 'development') {
26
26
  const papiListRoute = createPapiMethod({
27
27
  method: 'get',
@@ -59,6 +59,7 @@ ServerPapiModule = __decorate([
59
59
  baseUrl: privateBaseUrl,
60
60
  di,
61
61
  logger,
62
+ papiInitHandlers,
62
63
  });
63
64
  }
64
65
  if (publicRoutes) {
@@ -66,6 +67,7 @@ ServerPapiModule = __decorate([
66
67
  baseUrl: publicBaseUrl,
67
68
  di,
68
69
  logger,
70
+ papiInitHandlers,
69
71
  });
70
72
  }
71
73
  },
@@ -84,6 +86,7 @@ ServerPapiModule = __decorate([
84
86
  },
85
87
  privateBaseUrl: SERVER_MODULE_PAPI_PRIVATE_URL,
86
88
  publicBaseUrl: SERVER_MODULE_PAPI_PUBLIC_URL,
89
+ papiInitHandlers: optional(PAPI_FASTIFY_INIT_TOKEN),
87
90
  },
88
91
  multi: true,
89
92
  }),
@@ -30,7 +30,7 @@ exports.ServerPapiModule = tslib.__decorate([
30
30
  ...shared.sharedProviders,
31
31
  core.provide({
32
32
  provide: tokensServerPrivate.WEB_FASTIFY_APP_BEFORE_INIT_TOKEN,
33
- useFactory: ({ di, logger, privateRoutes, publicRoutes, publicBaseUrl, privateBaseUrl }) => (app) => {
33
+ useFactory: ({ di, logger, privateRoutes, publicRoutes, publicBaseUrl, privateBaseUrl, papiInitHandlers, }) => (app) => {
34
34
  if (process.env.NODE_ENV === 'development') {
35
35
  const papiListRoute = papi.createPapiMethod({
36
36
  method: 'get',
@@ -68,6 +68,7 @@ exports.ServerPapiModule = tslib.__decorate([
68
68
  baseUrl: privateBaseUrl,
69
69
  di,
70
70
  logger,
71
+ papiInitHandlers,
71
72
  });
72
73
  }
73
74
  if (publicRoutes) {
@@ -75,6 +76,7 @@ exports.ServerPapiModule = tslib.__decorate([
75
76
  baseUrl: publicBaseUrl,
76
77
  di,
77
78
  logger,
79
+ papiInitHandlers,
78
80
  });
79
81
  }
80
82
  },
@@ -93,6 +95,7 @@ exports.ServerPapiModule = tslib.__decorate([
93
95
  },
94
96
  privateBaseUrl: tokensServer.SERVER_MODULE_PAPI_PRIVATE_URL,
95
97
  publicBaseUrl: tokensServer.SERVER_MODULE_PAPI_PUBLIC_URL,
98
+ papiInitHandlers: core.optional(tokensServerPrivate.PAPI_FASTIFY_INIT_TOKEN),
96
99
  },
97
100
  multi: true,
98
101
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-server",
3
- "version": "2.132.1",
3
+ "version": "2.133.0",
4
4
  "description": "",
5
5
  "browser": "lib/browser.js",
6
6
  "main": "lib/server.js",
@@ -25,11 +25,11 @@
25
25
  "@tinkoff/monkeypatch": "2.0.5",
26
26
  "@tinkoff/terminus": "0.1.9",
27
27
  "@tinkoff/url": "0.8.6",
28
- "@tramvai/module-cache-warmup": "2.132.1",
29
- "@tramvai/module-metrics": "2.132.1",
30
- "@tramvai/papi": "2.132.1",
31
- "@tramvai/tokens-server": "2.132.1",
32
- "@tramvai/tokens-server-private": "2.132.1",
28
+ "@tramvai/module-cache-warmup": "2.133.0",
29
+ "@tramvai/module-metrics": "2.133.0",
30
+ "@tramvai/papi": "2.133.0",
31
+ "@tramvai/tokens-server": "2.133.0",
32
+ "@tramvai/tokens-server-private": "2.133.0",
33
33
  "@tramvai/safe-strings": "0.5.11",
34
34
  "fastify": "^4.14.1",
35
35
  "@fastify/cookie": "^8.3.0",
@@ -42,14 +42,14 @@
42
42
  "peerDependencies": {
43
43
  "@tinkoff/dippy": "0.8.15",
44
44
  "@tinkoff/utils": "^2.1.2",
45
- "@tramvai/cli": "2.132.1",
46
- "@tramvai/core": "2.132.1",
47
- "@tramvai/react": "2.132.1",
48
- "@tramvai/module-common": "2.132.1",
49
- "@tramvai/module-environment": "2.132.1",
50
- "@tramvai/tokens-common": "2.132.1",
51
- "@tramvai/tokens-core-private": "2.132.1",
52
- "@tramvai/tokens-render": "2.132.1",
45
+ "@tramvai/cli": "2.133.0",
46
+ "@tramvai/core": "2.133.0",
47
+ "@tramvai/react": "2.133.0",
48
+ "@tramvai/module-common": "2.133.0",
49
+ "@tramvai/module-environment": "2.133.0",
50
+ "@tramvai/tokens-common": "2.133.0",
51
+ "@tramvai/tokens-core-private": "2.133.0",
52
+ "@tramvai/tokens-render": "2.133.0",
53
53
  "react": ">=16.14.0",
54
54
  "react-dom": ">=16.14.0",
55
55
  "tslib": "^2.4.0"