@sima-land/isomorph 11.0.0-alpha.48 → 11.0.0-alpha.49

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,7 +1,7 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "@sima-land/isomorph",
4
- "version": "11.0.0-alpha.48",
4
+ "version": "11.0.0-alpha.49",
5
5
  "dependencies": {
6
6
  "@humanwhocodes/env": "^3.0.2",
7
7
  "@krutoo/fetch-tools": "^0.0.16",
@@ -33,12 +33,24 @@ function provideMainExpressApp(resolve) {
33
33
  throw new Error('Currently function is not supported for proxy "filter"');
34
34
  }
35
35
  const proxyPaths = Array.isArray(filter) ? filter : [filter];
36
- app.use((0, _httpProxyMiddleware.createProxyMiddleware)({
36
+ const proxyMiddleware = (0, _httpProxyMiddleware.createProxyMiddleware)({
37
37
  target,
38
38
  changeOrigin: true,
39
- pathRewrite,
40
- pathFilter: inputPath => proxyPaths.some(proxyPath => inputPath.startsWith(proxyPath))
41
- }));
39
+ pathRewrite
40
+
41
+ // ВАЖНО: не используем pathFilter тк если в проекте есть webpack-dev-server,
42
+ // он тащит за собой http-proxy-middleware@2 который не поддерживает pathFilter
43
+ // pathFilter: inputPath => proxyPaths.some(proxyPath => inputPath.startsWith(proxyPath)),
44
+ });
45
+
46
+ app.use((req, res, next) => {
47
+ // ВАЖНО: поскольку не используем pathFilter - фильтруем запросы проверкой
48
+ if (proxyPaths.some(proxyPath => req.path.startsWith(proxyPath))) {
49
+ proxyMiddleware(req, res, next);
50
+ } else {
51
+ next();
52
+ }
53
+ });
42
54
  }
43
55
  }
44
56
 
@@ -1 +1 @@
1
- {"version":3,"file":"main-express-app.js","names":["_tokens","require","_express","_interopRequireDefault","_httpProxyMiddleware","obj","__esModule","default","provideMainExpressApp","resolve","config","KnownToken","Config","base","pageRoutes","Express","serviceRoutes","middleware","endMiddleware","proxyConfig","Http","Serve","Proxy","app","express","env","proxyConfigs","Array","isArray","target","filter","pathRewrite","Error","proxyPaths","use","createProxyMiddleware","changeOrigin","pathFilter","inputPath","some","proxyPath","startsWith","routePath","routeHandler","path","method"],"sources":["../../../../../src/preset/node/providers/main-express-app.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport express from 'express';\nimport { createProxyMiddleware } from 'http-proxy-middleware';\n\n/**\n * Провайдер основного express-приложения.\n * @param resolve Функция для получения зависимости по токену.\n * @return Основное express-приложение.\n */\nexport function provideMainExpressApp(resolve: Resolve): express.Application {\n const config = resolve(KnownToken.Config.base);\n const pageRoutes = resolve(KnownToken.Express.pageRoutes);\n const serviceRoutes = resolve(KnownToken.Express.serviceRoutes);\n const middleware = resolve(KnownToken.Express.middleware);\n const endMiddleware = resolve(KnownToken.Express.endMiddleware);\n const proxyConfig = resolve(KnownToken.Http.Serve.Proxy.config);\n\n const app = express();\n\n if (config.env === 'development' && proxyConfig) {\n const proxyConfigs = Array.isArray(proxyConfig) ? proxyConfig : [proxyConfig];\n\n for (const { target, filter, pathRewrite } of proxyConfigs) {\n // ВАЖНО: так как не можем предоставить web-интерфейс Request бросаем ошибку\n if (typeof filter === 'function') {\n throw new Error('Currently function is not supported for proxy \"filter\"');\n }\n\n const proxyPaths = Array.isArray(filter) ? filter : [filter];\n\n app.use(\n createProxyMiddleware({\n target,\n changeOrigin: true,\n pathRewrite,\n pathFilter: inputPath => proxyPaths.some(proxyPath => inputPath.startsWith(proxyPath)),\n }),\n );\n }\n }\n\n // маршруты страниц\n for (const [routePath, routeHandler] of pageRoutes) {\n const path = typeof routePath === 'string' ? routePath : routePath.path;\n const method = typeof routePath === 'string' ? 'get' : routePath.method;\n\n app.use(path, middleware);\n app[method](path, routeHandler);\n app.use(path, endMiddleware);\n }\n\n // служебные маршруты (к ним не применяются промежуточные слои)\n for (const [routePath, routeHandler] of serviceRoutes) {\n const path = typeof routePath === 'string' ? routePath : routePath.path;\n const method = typeof routePath === 'string' ? 'get' : routePath.method;\n\n app[method](path, routeHandler);\n }\n\n // @todo также добавить apiRoutes?\n return app;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"main-express-app.js","names":["_tokens","require","_express","_interopRequireDefault","_httpProxyMiddleware","obj","__esModule","default","provideMainExpressApp","resolve","config","KnownToken","Config","base","pageRoutes","Express","serviceRoutes","middleware","endMiddleware","proxyConfig","Http","Serve","Proxy","app","express","env","proxyConfigs","Array","isArray","target","filter","pathRewrite","Error","proxyPaths","proxyMiddleware","createProxyMiddleware","changeOrigin","use","req","res","next","some","proxyPath","path","startsWith","routePath","routeHandler","method"],"sources":["../../../../../src/preset/node/providers/main-express-app.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport express from 'express';\nimport { createProxyMiddleware } from 'http-proxy-middleware';\n\n/**\n * Провайдер основного express-приложения.\n * @param resolve Функция для получения зависимости по токену.\n * @return Основное express-приложение.\n */\nexport function provideMainExpressApp(resolve: Resolve): express.Application {\n const config = resolve(KnownToken.Config.base);\n const pageRoutes = resolve(KnownToken.Express.pageRoutes);\n const serviceRoutes = resolve(KnownToken.Express.serviceRoutes);\n const middleware = resolve(KnownToken.Express.middleware);\n const endMiddleware = resolve(KnownToken.Express.endMiddleware);\n const proxyConfig = resolve(KnownToken.Http.Serve.Proxy.config);\n\n const app = express();\n\n if (config.env === 'development' && proxyConfig) {\n const proxyConfigs = Array.isArray(proxyConfig) ? proxyConfig : [proxyConfig];\n\n for (const { target, filter, pathRewrite } of proxyConfigs) {\n // ВАЖНО: так как не можем предоставить web-интерфейс Request бросаем ошибку\n if (typeof filter === 'function') {\n throw new Error('Currently function is not supported for proxy \"filter\"');\n }\n\n const proxyPaths = Array.isArray(filter) ? filter : [filter];\n\n const proxyMiddleware = createProxyMiddleware({\n target,\n changeOrigin: true,\n pathRewrite,\n\n // ВАЖНО: не используем pathFilter тк если в проекте есть webpack-dev-server,\n // он тащит за собой http-proxy-middleware@2 который не поддерживает pathFilter\n // pathFilter: inputPath => proxyPaths.some(proxyPath => inputPath.startsWith(proxyPath)),\n });\n\n app.use((req, res, next) => {\n // ВАЖНО: поскольку не используем pathFilter - фильтруем запросы проверкой\n if (proxyPaths.some(proxyPath => req.path.startsWith(proxyPath))) {\n proxyMiddleware(req, res, next);\n } else {\n next();\n }\n });\n }\n }\n\n // маршруты страниц\n for (const [routePath, routeHandler] of pageRoutes) {\n const path = typeof routePath === 'string' ? routePath : routePath.path;\n const method = typeof routePath === 'string' ? 'get' : routePath.method;\n\n app.use(path, middleware);\n app[method](path, routeHandler);\n app.use(path, endMiddleware);\n }\n\n // служебные маршруты (к ним не применяются промежуточные слои)\n for (const [routePath, routeHandler] of serviceRoutes) {\n const path = typeof routePath === 'string' ? routePath : routePath.path;\n const method = typeof routePath === 'string' ? 'get' : routePath.method;\n\n app[method](path, routeHandler);\n }\n\n // @todo также добавить apiRoutes?\n return app;\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sima-land/isomorph",
4
- "version": "11.0.0-alpha.48",
4
+ "version": "11.0.0-alpha.49",
5
5
  "dependencies": {
6
6
  "@humanwhocodes/env": "^3.0.2",
7
7
  "@krutoo/fetch-tools": "^0.0.16",
@@ -27,12 +27,24 @@ export function provideMainExpressApp(resolve) {
27
27
  throw new Error('Currently function is not supported for proxy "filter"');
28
28
  }
29
29
  const proxyPaths = Array.isArray(filter) ? filter : [filter];
30
- app.use(createProxyMiddleware({
30
+ const proxyMiddleware = createProxyMiddleware({
31
31
  target,
32
32
  changeOrigin: true,
33
- pathRewrite,
34
- pathFilter: inputPath => proxyPaths.some(proxyPath => inputPath.startsWith(proxyPath))
35
- }));
33
+ pathRewrite
34
+
35
+ // ВАЖНО: не используем pathFilter тк если в проекте есть webpack-dev-server,
36
+ // он тащит за собой http-proxy-middleware@2 который не поддерживает pathFilter
37
+ // pathFilter: inputPath => proxyPaths.some(proxyPath => inputPath.startsWith(proxyPath)),
38
+ });
39
+
40
+ app.use((req, res, next) => {
41
+ // ВАЖНО: поскольку не используем pathFilter - фильтруем запросы проверкой
42
+ if (proxyPaths.some(proxyPath => req.path.startsWith(proxyPath))) {
43
+ proxyMiddleware(req, res, next);
44
+ } else {
45
+ next();
46
+ }
47
+ });
36
48
  }
37
49
  }
38
50
 
@@ -1 +1 @@
1
- {"version":3,"file":"main-express-app.js","names":["KnownToken","express","createProxyMiddleware","provideMainExpressApp","resolve","config","Config","base","pageRoutes","Express","serviceRoutes","middleware","endMiddleware","proxyConfig","Http","Serve","Proxy","app","env","proxyConfigs","Array","isArray","target","filter","pathRewrite","Error","proxyPaths","use","changeOrigin","pathFilter","inputPath","some","proxyPath","startsWith","routePath","routeHandler","path","method"],"sources":["../../../../../src/preset/node/providers/main-express-app.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport express from 'express';\nimport { createProxyMiddleware } from 'http-proxy-middleware';\n\n/**\n * Провайдер основного express-приложения.\n * @param resolve Функция для получения зависимости по токену.\n * @return Основное express-приложение.\n */\nexport function provideMainExpressApp(resolve: Resolve): express.Application {\n const config = resolve(KnownToken.Config.base);\n const pageRoutes = resolve(KnownToken.Express.pageRoutes);\n const serviceRoutes = resolve(KnownToken.Express.serviceRoutes);\n const middleware = resolve(KnownToken.Express.middleware);\n const endMiddleware = resolve(KnownToken.Express.endMiddleware);\n const proxyConfig = resolve(KnownToken.Http.Serve.Proxy.config);\n\n const app = express();\n\n if (config.env === 'development' && proxyConfig) {\n const proxyConfigs = Array.isArray(proxyConfig) ? proxyConfig : [proxyConfig];\n\n for (const { target, filter, pathRewrite } of proxyConfigs) {\n // ВАЖНО: так как не можем предоставить web-интерфейс Request бросаем ошибку\n if (typeof filter === 'function') {\n throw new Error('Currently function is not supported for proxy \"filter\"');\n }\n\n const proxyPaths = Array.isArray(filter) ? filter : [filter];\n\n app.use(\n createProxyMiddleware({\n target,\n changeOrigin: true,\n pathRewrite,\n pathFilter: inputPath => proxyPaths.some(proxyPath => inputPath.startsWith(proxyPath)),\n }),\n );\n }\n }\n\n // маршруты страниц\n for (const [routePath, routeHandler] of pageRoutes) {\n const path = typeof routePath === 'string' ? routePath : routePath.path;\n const method = typeof routePath === 'string' ? 'get' : routePath.method;\n\n app.use(path, middleware);\n app[method](path, routeHandler);\n app.use(path, endMiddleware);\n }\n\n // служебные маршруты (к ним не применяются промежуточные слои)\n for (const [routePath, routeHandler] of serviceRoutes) {\n const path = typeof routePath === 'string' ? routePath : routePath.path;\n const method = typeof routePath === 'string' ? 'get' : routePath.method;\n\n app[method](path, routeHandler);\n }\n\n // @todo также добавить apiRoutes?\n return app;\n}\n"],"mappings":"AACA,SAASA,UAAU,QAAQ,oBAAiB;AAC5C,OAAOC,OAAO,MAAM,SAAS;AAC7B,SAASC,qBAAqB,QAAQ,uBAAuB;;AAE7D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACC,OAAgB,EAAuB;EAC3E,MAAMC,MAAM,GAAGD,OAAO,CAACJ,UAAU,CAACM,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,UAAU,GAAGJ,OAAO,CAACJ,UAAU,CAACS,OAAO,CAACD,UAAU,CAAC;EACzD,MAAME,aAAa,GAAGN,OAAO,CAACJ,UAAU,CAACS,OAAO,CAACC,aAAa,CAAC;EAC/D,MAAMC,UAAU,GAAGP,OAAO,CAACJ,UAAU,CAACS,OAAO,CAACE,UAAU,CAAC;EACzD,MAAMC,aAAa,GAAGR,OAAO,CAACJ,UAAU,CAACS,OAAO,CAACG,aAAa,CAAC;EAC/D,MAAMC,WAAW,GAAGT,OAAO,CAACJ,UAAU,CAACc,IAAI,CAACC,KAAK,CAACC,KAAK,CAACX,MAAM,CAAC;EAE/D,MAAMY,GAAG,GAAGhB,OAAO,CAAC,CAAC;EAErB,IAAII,MAAM,CAACa,GAAG,KAAK,aAAa,IAAIL,WAAW,EAAE;IAC/C,MAAMM,YAAY,GAAGC,KAAK,CAACC,OAAO,CAACR,WAAW,CAAC,GAAGA,WAAW,GAAG,CAACA,WAAW,CAAC;IAE7E,KAAK,MAAM;MAAES,MAAM;MAAEC,MAAM;MAAEC;IAAY,CAAC,IAAIL,YAAY,EAAE;MAC1D;MACA,IAAI,OAAOI,MAAM,KAAK,UAAU,EAAE;QAChC,MAAM,IAAIE,KAAK,CAAC,wDAAwD,CAAC;MAC3E;MAEA,MAAMC,UAAU,GAAGN,KAAK,CAACC,OAAO,CAACE,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAC;MAE5DN,GAAG,CAACU,GAAG,CACLzB,qBAAqB,CAAC;QACpBoB,MAAM;QACNM,YAAY,EAAE,IAAI;QAClBJ,WAAW;QACXK,UAAU,EAAEC,SAAS,IAAIJ,UAAU,CAACK,IAAI,CAACC,SAAS,IAAIF,SAAS,CAACG,UAAU,CAACD,SAAS,CAAC;MACvF,CAAC,CACH,CAAC;IACH;EACF;;EAEA;EACA,KAAK,MAAM,CAACE,SAAS,EAAEC,YAAY,CAAC,IAAI3B,UAAU,EAAE;IAClD,MAAM4B,IAAI,GAAG,OAAOF,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAGA,SAAS,CAACE,IAAI;IACvE,MAAMC,MAAM,GAAG,OAAOH,SAAS,KAAK,QAAQ,GAAG,KAAK,GAAGA,SAAS,CAACG,MAAM;IAEvEpB,GAAG,CAACU,GAAG,CAACS,IAAI,EAAEzB,UAAU,CAAC;IACzBM,GAAG,CAACoB,MAAM,CAAC,CAACD,IAAI,EAAED,YAAY,CAAC;IAC/BlB,GAAG,CAACU,GAAG,CAACS,IAAI,EAAExB,aAAa,CAAC;EAC9B;;EAEA;EACA,KAAK,MAAM,CAACsB,SAAS,EAAEC,YAAY,CAAC,IAAIzB,aAAa,EAAE;IACrD,MAAM0B,IAAI,GAAG,OAAOF,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAGA,SAAS,CAACE,IAAI;IACvE,MAAMC,MAAM,GAAG,OAAOH,SAAS,KAAK,QAAQ,GAAG,KAAK,GAAGA,SAAS,CAACG,MAAM;IAEvEpB,GAAG,CAACoB,MAAM,CAAC,CAACD,IAAI,EAAED,YAAY,CAAC;EACjC;;EAEA;EACA,OAAOlB,GAAG;AACZ"}
1
+ {"version":3,"file":"main-express-app.js","names":["KnownToken","express","createProxyMiddleware","provideMainExpressApp","resolve","config","Config","base","pageRoutes","Express","serviceRoutes","middleware","endMiddleware","proxyConfig","Http","Serve","Proxy","app","env","proxyConfigs","Array","isArray","target","filter","pathRewrite","Error","proxyPaths","proxyMiddleware","changeOrigin","use","req","res","next","some","proxyPath","path","startsWith","routePath","routeHandler","method"],"sources":["../../../../../src/preset/node/providers/main-express-app.ts"],"sourcesContent":["import type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport express from 'express';\nimport { createProxyMiddleware } from 'http-proxy-middleware';\n\n/**\n * Провайдер основного express-приложения.\n * @param resolve Функция для получения зависимости по токену.\n * @return Основное express-приложение.\n */\nexport function provideMainExpressApp(resolve: Resolve): express.Application {\n const config = resolve(KnownToken.Config.base);\n const pageRoutes = resolve(KnownToken.Express.pageRoutes);\n const serviceRoutes = resolve(KnownToken.Express.serviceRoutes);\n const middleware = resolve(KnownToken.Express.middleware);\n const endMiddleware = resolve(KnownToken.Express.endMiddleware);\n const proxyConfig = resolve(KnownToken.Http.Serve.Proxy.config);\n\n const app = express();\n\n if (config.env === 'development' && proxyConfig) {\n const proxyConfigs = Array.isArray(proxyConfig) ? proxyConfig : [proxyConfig];\n\n for (const { target, filter, pathRewrite } of proxyConfigs) {\n // ВАЖНО: так как не можем предоставить web-интерфейс Request бросаем ошибку\n if (typeof filter === 'function') {\n throw new Error('Currently function is not supported for proxy \"filter\"');\n }\n\n const proxyPaths = Array.isArray(filter) ? filter : [filter];\n\n const proxyMiddleware = createProxyMiddleware({\n target,\n changeOrigin: true,\n pathRewrite,\n\n // ВАЖНО: не используем pathFilter тк если в проекте есть webpack-dev-server,\n // он тащит за собой http-proxy-middleware@2 который не поддерживает pathFilter\n // pathFilter: inputPath => proxyPaths.some(proxyPath => inputPath.startsWith(proxyPath)),\n });\n\n app.use((req, res, next) => {\n // ВАЖНО: поскольку не используем pathFilter - фильтруем запросы проверкой\n if (proxyPaths.some(proxyPath => req.path.startsWith(proxyPath))) {\n proxyMiddleware(req, res, next);\n } else {\n next();\n }\n });\n }\n }\n\n // маршруты страниц\n for (const [routePath, routeHandler] of pageRoutes) {\n const path = typeof routePath === 'string' ? routePath : routePath.path;\n const method = typeof routePath === 'string' ? 'get' : routePath.method;\n\n app.use(path, middleware);\n app[method](path, routeHandler);\n app.use(path, endMiddleware);\n }\n\n // служебные маршруты (к ним не применяются промежуточные слои)\n for (const [routePath, routeHandler] of serviceRoutes) {\n const path = typeof routePath === 'string' ? routePath : routePath.path;\n const method = typeof routePath === 'string' ? 'get' : routePath.method;\n\n app[method](path, routeHandler);\n }\n\n // @todo также добавить apiRoutes?\n return app;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"main-express-app.d.ts","sourceRoot":"","sources":["../../../../../src/preset/node/providers/main-express-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAoD3E"}
1
+ {"version":3,"file":"main-express-app.d.ts","sourceRoot":"","sources":["../../../../../src/preset/node/providers/main-express-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CA8D3E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sima-land/isomorph",
3
- "version": "11.0.0-alpha.48",
3
+ "version": "11.0.0-alpha.49",
4
4
  "description": "Tiny framework for fast start frontend microservices",
5
5
  "author": "www.sima-land.ru team",
6
6
  "license": "Apache-2.0",