@naturalcycles/backend-lib 7.1.2 → 8.0.1

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.
@@ -25,7 +25,7 @@ const saveBatchInputSchema = (0, nodejs_lib_1.objectSchema)({
25
25
  function httpDBRequestHandler(db) {
26
26
  const router = (0, __1.getDefaultRouter)();
27
27
  // resetCache, only applicable to InMemoryDB
28
- router.put('/resetCache/:table?', async (req, res) => {
28
+ router.put('/resetCache{/:table}', async (req, res) => {
29
29
  if (db instanceof db_lib_1.InMemoryDB) {
30
30
  await db.resetCache(req.params['table']);
31
31
  }
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDefaultRouter = getDefaultRouter;
4
- const tslib_1 = require("tslib");
5
- const express_promise_router_1 = tslib_1.__importDefault(require("express-promise-router"));
4
+ const express_1 = require("express");
6
5
  /**
7
6
  * Convenience method.
8
7
  */
9
8
  function getDefaultRouter(defaultHandlers = []) {
10
- const router = (0, express_promise_router_1.default)();
9
+ const router = (0, express_1.Router)();
11
10
  // Use default handlers
12
11
  defaultHandlers.forEach(h => router.use(h));
13
12
  return router;
@@ -63,7 +63,8 @@ class ValidateRequest {
63
63
  });
64
64
  }
65
65
  // mutate req to replace the property with the value, converted by Joi
66
- if (!opt.keepOriginal) {
66
+ if (!opt.keepOriginal && reqProperty !== 'query') {
67
+ // query is read-only in Express 5
67
68
  req[reqProperty] = value;
68
69
  }
69
70
  return value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturalcycles/backend-lib",
3
- "version": "7.1.2",
3
+ "version": "8.0.1",
4
4
  "scripts": {
5
5
  "prepare": "husky",
6
6
  "build": "dev-lib build",
@@ -32,8 +32,7 @@
32
32
  "cors": "^2",
33
33
  "dotenv": "^16",
34
34
  "ejs": "^3",
35
- "express": "^4",
36
- "express-promise-router": "^4",
35
+ "express": "^5",
37
36
  "firebase-admin": "^13",
38
37
  "helmet": "^8",
39
38
  "on-finished": "^2",
@@ -55,7 +55,7 @@ export function httpDBRequestHandler(db: CommonDB): BackendRouter {
55
55
  const router = getDefaultRouter()
56
56
 
57
57
  // resetCache, only applicable to InMemoryDB
58
- router.put('/resetCache/:table?', async (req, res) => {
58
+ router.put('/resetCache{/:table}', async (req, res) => {
59
59
  if (db instanceof InMemoryDB) {
60
60
  await db.resetCache(req.params['table'])
61
61
  }
@@ -1,11 +1,11 @@
1
- import PromiseRouter from 'express-promise-router'
1
+ import { Router } from 'express'
2
2
  import { BackendRequestHandler, BackendRouter } from './server.model'
3
3
 
4
4
  /**
5
5
  * Convenience method.
6
6
  */
7
7
  export function getDefaultRouter(defaultHandlers: BackendRequestHandler[] = []): BackendRouter {
8
- const router = PromiseRouter()
8
+ const router = Router()
9
9
 
10
10
  // Use default handlers
11
11
  defaultHandlers.forEach(h => router.use(h))
@@ -112,7 +112,8 @@ class ValidateRequest {
112
112
  }
113
113
 
114
114
  // mutate req to replace the property with the value, converted by Joi
115
- if (!opt.keepOriginal) {
115
+ if (!opt.keepOriginal && reqProperty !== 'query') {
116
+ // query is read-only in Express 5
116
117
  req[reqProperty] = value
117
118
  }
118
119