@sima-land/isomorph 11.0.0-alpha.43 → 11.0.0-alpha.44

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,10 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "@sima-land/isomorph",
4
- "version": "11.0.0-alpha.43",
4
+ "version": "11.0.0-alpha.44",
5
5
  "dependencies": {
6
6
  "@humanwhocodes/env": "^2.2.2",
7
- "@krutoo/fetch-tools": "^0.0.10",
7
+ "@krutoo/fetch-tools": "^0.0.11",
8
8
  "@opentelemetry/api": "^1.4.1",
9
9
  "@opentelemetry/exporter-prometheus": "^0.38.0",
10
10
  "@opentelemetry/exporter-trace-otlp-http": "^0.39.1",
@@ -115,9 +115,9 @@ function getResponseFormat(req) {
115
115
  * @return Обработчик.
116
116
  */
117
117
  function HandlerProvider(getApp) {
118
- return function provider(resolve) {
118
+ return resolve => {
119
119
  const parent = resolve(_di.CURRENT_APP);
120
- return function handler(req, res, next) {
120
+ return (req, res, next) => {
121
121
  const app = getApp();
122
122
  app.attach(parent);
123
123
  app.bind(_tokens.KnownToken.Http.Handler.context).toValue({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","require","_di","_tokens","_jsxRuntime","HelmetContext","exports","createContext","resetCSS","RegularHelmet","children","title","assets","useContext","jsxs","jsx","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js","SpecificExtras","setMeta","meta","_meta","getMeta","getResponseFormat","req","result","header","toLowerCase","includes","HandlerProvider","getApp","provider","resolve","parent","CURRENT_APP","handler","res","next","app","attach","bind","KnownToken","Http","Handler","context","toValue","get","main"],"sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../../isomorphic/types';\nimport { Handler, Request } from 'express';\nimport { Application, CURRENT_APP, Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент.\n * Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&amp;display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n\n/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n */\nexport function getResponseFormat(req: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application) {\n return function provider(resolve: Resolve): Handler {\n const parent = resolve(CURRENT_APP);\n\n return function handler(req, res, next) {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ req, res, next });\n app.get(KnownToken.Http.Handler.main)();\n };\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_react","require","_di","_tokens","_jsxRuntime","HelmetContext","exports","createContext","resetCSS","RegularHelmet","children","title","assets","useContext","jsxs","jsx","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js","SpecificExtras","setMeta","meta","_meta","getMeta","getResponseFormat","req","result","header","toLowerCase","includes","HandlerProvider","getApp","resolve","parent","CURRENT_APP","res","next","app","attach","bind","KnownToken","Http","Handler","context","toValue","get","main"],"sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../../isomorphic/types';\nimport { Handler, Request } from 'express';\nimport { Application, CURRENT_APP, Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент.\n * Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&amp;display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n\n/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n */\nexport function getResponseFormat(req: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application) {\n return (resolve: Resolve): Handler => {\n const parent = resolve(CURRENT_APP);\n\n return (req, res, next) => {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ req, res, next });\n app.get(KnownToken.Http.Handler.main)();\n };\n };\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sima-land/isomorph",
4
- "version": "11.0.0-alpha.43",
4
+ "version": "11.0.0-alpha.44",
5
5
  "dependencies": {
6
6
  "@humanwhocodes/env": "^2.2.2",
7
- "@krutoo/fetch-tools": "^0.0.10",
7
+ "@krutoo/fetch-tools": "^0.0.11",
8
8
  "@opentelemetry/api": "^1.4.1",
9
9
  "@opentelemetry/exporter-prometheus": "^0.38.0",
10
10
  "@opentelemetry/exporter-trace-otlp-http": "^0.39.1",
@@ -96,9 +96,9 @@ export function getResponseFormat(req) {
96
96
  * @return Обработчик.
97
97
  */
98
98
  export function HandlerProvider(getApp) {
99
- return function provider(resolve) {
99
+ return resolve => {
100
100
  const parent = resolve(CURRENT_APP);
101
- return function handler(req, res, next) {
101
+ return (req, res, next) => {
102
102
  const app = getApp();
103
103
  app.attach(parent);
104
104
  app.bind(KnownToken.Http.Handler.context).toValue({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createContext","useContext","CURRENT_APP","KnownToken","HelmetContext","resetCSS","RegularHelmet","children","title","assets","React","createElement","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js","SpecificExtras","setMeta","meta","_meta","getMeta","getResponseFormat","req","result","header","toLowerCase","includes","HandlerProvider","getApp","provider","resolve","parent","handler","res","next","app","attach","bind","Http","Handler","context","toValue","get","main"],"sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../../isomorphic/types';\nimport { Handler, Request } from 'express';\nimport { Application, CURRENT_APP, Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент.\n * Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&amp;display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n\n/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n */\nexport function getResponseFormat(req: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application) {\n return function provider(resolve: Resolve): Handler {\n const parent = resolve(CURRENT_APP);\n\n return function handler(req, res, next) {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ req, res, next });\n app.get(KnownToken.Http.Handler.main)();\n };\n };\n}\n"],"mappings":"AAAA,SAAoBA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAG5D,SAAsBC,WAAW,QAAiB,2BAAgB;AAClE,SAASC,UAAU,QAAQ,uBAAoB;AAE/C,OAAO,MAAMC,aAAa,gBAAGJ,aAAa,CAA0C,CAAC,CAAC,CAAC;AAEvF,MAAMK,QAAQ,GAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAC;EAAEC;AAAmC,CAAC,EAAE;EACpE,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGR,UAAU,CAACG,aAAa,CAAC;EAEnD,oBACEM,KAAA,CAAAC,aAAA,4BACED,KAAA,CAAAC,aAAA,4BACED,KAAA,CAAAC,aAAA;IAAMC,OAAO,EAAC;EAAO,CAAE,CAAC,eACxBF,KAAA,CAAAC,aAAA;IAAME,SAAS,EAAC,iBAAiB;IAACC,OAAO,EAAC;EAAS,CAAE,CAAC,eACtDJ,KAAA,CAAAC,aAAA;IAAMI,IAAI,EAAC,UAAU;IAACD,OAAO,EAAC;EAAqC,CAAE,CAAC,eACtEJ,KAAA,CAAAC,aAAA,gBAAQH,KAAK,IAAI,UAAkB,CAAC,eACpCE,KAAA,CAAAC,aAAA;IACEK,IAAI,EAAC,yJAA6J;IAClKC,GAAG,EAAC;EAAY,CACjB,CAAC,eACFP,KAAA,CAAAC,aAAA;IAAOO,uBAAuB,EAAE;MAAEC,MAAM,EAAEd;IAAS;EAAE,CAAE,CAAC,EAEvDI,MAAM,EAAEW,WAAW,iBAAIV,KAAA,CAAAC,aAAA;IAAMM,GAAG,EAAC,YAAY;IAACD,IAAI,EAAEP,MAAM,CAACW;EAAY,CAAE,CAAC,EAC1EX,MAAM,EAAEY,GAAG,iBAAIX,KAAA,CAAAC,aAAA;IAAMM,GAAG,EAAC,YAAY;IAACD,IAAI,EAAEP,MAAM,CAACY;EAAI,CAAE,CAAC,EAC1DZ,MAAM,EAAEa,UAAU,iBAAIZ,KAAA,CAAAC,aAAA;IAAQY,GAAG,EAAEd,MAAM,CAACa;EAAW,CAAE,CACpD,CAAC,eACPZ,KAAA,CAAAC,aAAA,eACGJ,QAAQ,EACRE,MAAM,EAAEe,EAAE,iBAAId,KAAA,CAAAC,aAAA;IAAQY,GAAG,EAAEd,MAAM,CAACe;EAAG,CAAE,CACpC,CACF,CAAC;AAEX;;AAEA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,CAAC;EAG1B;AACF;AACA;AACA;AACA;EACEC,OAAOA,CAACC,IAAS,EAAQ;IACvB,IAAI,CAACC,KAAK,GAAGD,IAAI;IACjB,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;EACEE,OAAOA,CAAA,EAAY;IACjB,OAAO,IAAI,CAACD,KAAK;EACnB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,iBAAiBA,CAACC,GAAY,EAAmB;EAC/D,IAAIC,MAAuB,GAAG,MAAM;EAEpC,IAAI,CAACD,GAAG,CAACE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;IAC3EH,MAAM,GAAG,MAAM;EACjB;EAEA,OAAOA,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,eAAeA,CAACC,MAAyB,EAAE;EACzD,OAAO,SAASC,QAAQA,CAACC,OAAgB,EAAW;IAClD,MAAMC,MAAM,GAAGD,OAAO,CAACrC,WAAW,CAAC;IAEnC,OAAO,SAASuC,OAAOA,CAACV,GAAG,EAAEW,GAAG,EAAEC,IAAI,EAAE;MACtC,MAAMC,GAAG,GAAGP,MAAM,CAAC,CAAC;MAEpBO,GAAG,CAACC,MAAM,CAACL,MAAM,CAAC;MAClBI,GAAG,CAACE,IAAI,CAAC3C,UAAU,CAAC4C,IAAI,CAACC,OAAO,CAACC,OAAO,CAAC,CAACC,OAAO,CAAC;QAAEnB,GAAG;QAAEW,GAAG;QAAEC;MAAK,CAAC,CAAC;MACrEC,GAAG,CAACO,GAAG,CAAChD,UAAU,CAAC4C,IAAI,CAACC,OAAO,CAACI,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;EACH,CAAC;AACH"}
1
+ {"version":3,"file":"index.js","names":["createContext","useContext","CURRENT_APP","KnownToken","HelmetContext","resetCSS","RegularHelmet","children","title","assets","React","createElement","charSet","httpEquiv","content","name","href","rel","dangerouslySetInnerHTML","__html","criticalCss","css","criticalJs","src","js","SpecificExtras","setMeta","meta","_meta","getMeta","getResponseFormat","req","result","header","toLowerCase","includes","HandlerProvider","getApp","resolve","parent","res","next","app","attach","bind","Http","Handler","context","toValue","get","main"],"sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"sourcesContent":["import { ReactNode, createContext, useContext } from 'react';\nimport { PageAssets } from '../../../isomorphic/types';\nimport { Handler, Request } from 'express';\nimport { Application, CURRENT_APP, Resolve } from '../../../../di';\nimport { KnownToken } from '../../../../tokens';\n\nexport const HelmetContext = createContext<{ title?: string; assets?: PageAssets }>({});\n\nconst resetCSS = `\n* {\n box-sizing: border-box;\n}\nbody {\n font-family: -apple-system,BlinkMacSystemFont,'Source Sans Pro',\"Segoe UI\",Roboto,\"Helvetica Neue\",Ubuntu,Arial,sans-serif;\n margin: 0;\n}\n`;\n\n/**\n * Простой Helmet-компонент.\n * Выведет html, head и body.\n * @param props Свойства.\n * @return Элемент.\n */\nexport function RegularHelmet({ children }: { children?: ReactNode }) {\n const { title, assets } = useContext(HelmetContext);\n\n return (\n <html>\n <head>\n <meta charSet='UTF-8' />\n <meta httpEquiv='X-UA-Compatible' content='IE=edge' />\n <meta name='viewport' content='width=device-width, initial-scale=1' />\n <title>{title ?? 'Document'}</title>\n <link\n href='https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&amp;display=swap'\n rel='stylesheet'\n />\n <style dangerouslySetInnerHTML={{ __html: resetCSS }} />\n\n {assets?.criticalCss && <link rel='stylesheet' href={assets.criticalCss} />}\n {assets?.css && <link rel='stylesheet' href={assets.css} />}\n {assets?.criticalJs && <script src={assets.criticalJs} />}\n </head>\n <body>\n {children}\n {assets?.js && <script src={assets.js} />}\n </body>\n </html>\n );\n}\n\n/**\n * Специфичные для наших микросервисов дополнительные данные ответа.\n */\nexport class SpecificExtras {\n private _meta: any;\n\n /**\n * Установит мета-данные.\n * @param meta Данные.\n * @return Контекст.\n */\n setMeta(meta: any): this {\n this._meta = meta;\n return this;\n }\n\n /**\n * Вернет установленные мета-данные.\n * @return Данные.\n */\n getMeta(): unknown {\n return this._meta;\n }\n}\n\n/**\n * Определит формат ответа.\n * @param req Запрос.\n * @return Формат.\n */\nexport function getResponseFormat(req: Request): 'html' | 'json' {\n let result: 'html' | 'json' = 'html';\n\n if ((req.header('accept') || '').toLowerCase().includes('application/json')) {\n result = 'json';\n }\n\n return result;\n}\n\n/**\n * Возвращает express-handler, создающий дочернее di-приложение при запросе.\n * @param getApp Должна вернуть di-приложения запроса.\n * @return Обработчик.\n */\nexport function HandlerProvider(getApp: () => Application) {\n return (resolve: Resolve): Handler => {\n const parent = resolve(CURRENT_APP);\n\n return (req, res, next) => {\n const app = getApp();\n\n app.attach(parent);\n app.bind(KnownToken.Http.Handler.context).toValue({ req, res, next });\n app.get(KnownToken.Http.Handler.main)();\n };\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA6B,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAe,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGnE,eAAO,MAAM,aAAa;;;EAA6D,CAAC;AAYxF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,2CA0BnE;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAM;IAEnB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAKxB;;;OAGG;IACH,OAAO,IAAI,OAAO;CAGnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAQ/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,WAAW,aACrB,OAAO,KAAG,OAAO,CAWpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/preset/node/handler/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA6B,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAe,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGnE,eAAO,MAAM,aAAa;;;EAA6D,CAAC;AAYxF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,2CA0BnE;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAM;IAEnB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAKxB;;;OAGG;IACH,OAAO,IAAI,OAAO;CAGnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAQ/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,WAAW,aACtC,OAAO,KAAG,OAAO,CAWnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sima-land/isomorph",
3
- "version": "11.0.0-alpha.43",
3
+ "version": "11.0.0-alpha.44",
4
4
  "description": "Tiny framework for fast start frontend microservices",
5
5
  "author": "www.sima-land.ru team",
6
6
  "license": "Apache-2.0",
@@ -288,7 +288,7 @@
288
288
  },
289
289
  "dependencies": {
290
290
  "@humanwhocodes/env": "^2.2.2",
291
- "@krutoo/fetch-tools": "^0.0.10",
291
+ "@krutoo/fetch-tools": "^0.0.11",
292
292
  "@opentelemetry/api": "^1.4.1",
293
293
  "@opentelemetry/exporter-prometheus": "^0.38.0",
294
294
  "@opentelemetry/exporter-trace-otlp-http": "^0.39.1",
@@ -96,10 +96,10 @@ export function getResponseFormat(req: Request): 'html' | 'json' {
96
96
  * @return Обработчик.
97
97
  */
98
98
  export function HandlerProvider(getApp: () => Application) {
99
- return function provider(resolve: Resolve): Handler {
99
+ return (resolve: Resolve): Handler => {
100
100
  const parent = resolve(CURRENT_APP);
101
101
 
102
- return function handler(req, res, next) {
102
+ return (req, res, next) => {
103
103
  const app = getApp();
104
104
 
105
105
  app.attach(parent);