@slangy/server
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/test-utils/routes.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,+BAA+B,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;iCAI5C,MAAM,QACR,MAAM,UACJ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,kBACrB,CAAC,MAAM,IAAI,CAAC,EAAE;AAJhC,wBAmDE"} | ||
| {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/test-utils/routes.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,+BAA+B,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;iCAQ5C,MAAM,QACR,MAAM,UACJ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,kBACrB,CAAC,MAAM,IAAI,CAAC,EAAE;AAJhC,wBA+DE"} |
@@ -0,1 +1,4 @@ | ||
| const areRegExpsEquivalent = (regexp1, regexp2) => { | ||
| return regexp1.source === regexp2.source && regexp1.flags === regexp2.flags; | ||
| }; | ||
| // eslint-disable-next-line jest/no-export | ||
@@ -11,6 +14,16 @@ export default (router, name, routes, ...extraChecks) => { | ||
| })); | ||
| let duplicateRoutes = 0; | ||
| const registeredRouters = router | ||
| .getExpressRouter() | ||
| .stack.filter((s) => !s.route) | ||
| .map((s) => s.regexp); | ||
| .map((s) => s.regexp) | ||
| // Remove duplicate regexps | ||
| .filter((regexp, index, self) => { | ||
| const isDuplicate = self.some((r, i) => i < index && areRegExpsEquivalent(regexp, r)); | ||
| if (isDuplicate) { | ||
| duplicateRoutes++; | ||
| } | ||
| return !isDuplicate; | ||
| }); | ||
| console.log(registeredRouters); | ||
| // Copy routes to avoid mutating the original array and add a catch-all route | ||
@@ -33,4 +46,4 @@ const routesCopy = [...routes, '/*']; | ||
| }); | ||
| it(`Should have exactly ${routesCopy.length} routes`, () => { | ||
| expect(router.getExpressRouter().stack).toHaveLength(routesCopy.length); | ||
| it(`Should have exactly ${routesCopy.length + duplicateRoutes} entry points`, () => { | ||
| expect(router.getExpressRouter().stack).toHaveLength(routesCopy.length + duplicateRoutes); | ||
| }); | ||
@@ -37,0 +50,0 @@ for (const check of extraChecks) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/test-utils/routes.ts"],"names":[],"mappings":"AAIA,0CAA0C;AAC1C,eAAe,CACb,MAAc,EACd,IAAY,EACZ,MAAqC,EACrC,GAAG,WAA2B,EAC9B,EAAE;IACF,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE,GAAG,EAAE;QAC9B,MAAM,gBAAgB,GAA+D,MAAM;aACxF,gBAAgB,EAAE;aAClB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;YAClB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;SACzB,CAAC,CAAC,CAAC;QAEN,MAAM,iBAAiB,GAAa,MAAM;aACvC,gBAAgB,EAAE;aAClB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAExB,6EAA6E;QAC7E,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;QAErC,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAa,CAAC;QACpF,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAuB,CAAC;QAE7F,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,EAAE,CAAC,6BAA6B,KAAK,EAAE,EAAE,GAAG,EAAE;gBAC5C,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;YAC7B,EAAE,CAAC,mBAAmB,MAAM,aAAa,IAAI,EAAE,EAAE,GAAG,EAAE;gBACpD,MAAM,CACJ,gBAAgB,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE;oBACxC,OAAO,eAAe,CAAC,IAAI,KAAK,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,MAAgB,CAAC,CAAC;gBACpF,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,UAAU,CAAC,MAAM,SAAS,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;YAC/B,KAAK,EAAE,CAAC;SACT;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"} | ||
| {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/test-utils/routes.ts"],"names":[],"mappings":"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"} |
+2
-2
| { | ||
| "name": "@slangy/server", | ||
| "version": "1.5.2", | ||
| "version": "1.5.3", | ||
| "author": { | ||
@@ -31,3 +31,3 @@ "name": "Dani Lupión", | ||
| "dependencies": { | ||
| "@slangy/common": "1.2.0", | ||
| "@slangy/common": "1.3.0", | ||
| "config": "^3.3.8", | ||
@@ -34,0 +34,0 @@ "express-validator": "^7.0.1", |
@@ -5,2 +5,6 @@ import Method from '@slangy/common/http/method.js'; | ||
| const areRegExpsEquivalent = (regexp1: RegExp, regexp2: RegExp) => { | ||
| return regexp1.source === regexp2.source && regexp1.flags === regexp2.flags; | ||
| }; | ||
| // eslint-disable-next-line jest/no-export | ||
@@ -22,7 +26,19 @@ export default ( | ||
| let duplicateRoutes = 0; | ||
| const registeredRouters: RegExp[] = router | ||
| .getExpressRouter() | ||
| .stack.filter((s) => !s.route) | ||
| .map((s) => s.regexp); | ||
| .map((s) => s.regexp) | ||
| // Remove duplicate regexps | ||
| .filter((regexp, index, self) => { | ||
| const isDuplicate = self.some((r, i) => i < index && areRegExpsEquivalent(regexp, r)); | ||
| if (isDuplicate) { | ||
| duplicateRoutes++; | ||
| } | ||
| return !isDuplicate; | ||
| }); | ||
| console.log(registeredRouters); | ||
| // Copy routes to avoid mutating the original array and add a catch-all route | ||
@@ -51,4 +67,4 @@ const routesCopy = [...routes, '/*']; | ||
| it(`Should have exactly ${routesCopy.length} routes`, () => { | ||
| expect(router.getExpressRouter().stack).toHaveLength(routesCopy.length); | ||
| it(`Should have exactly ${routesCopy.length + duplicateRoutes} entry points`, () => { | ||
| expect(router.getExpressRouter().stack).toHaveLength(routesCopy.length + duplicateRoutes); | ||
| }); | ||
@@ -55,0 +71,0 @@ |
114714
1.45%1738
1.52%+ Added
- Removed
Updated