@saasquatch/express-boilerplate 2.0.1-0 → 2.0.1-2

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.
@@ -3,7 +3,9 @@ import { nanoid } from "./nanoid.js";
3
3
  export function asyncHandlerWrapper(handler, renderErrorPage) {
4
4
  return (req, res) => {
5
5
  handler(req, res).catch((e) => {
6
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion
6
7
  const logger = res.locals["logger"];
8
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion
7
9
  const requestId = res.locals["requestId"];
8
10
  const debugId = nanoid(8);
9
11
  const error = {
@@ -26,10 +28,10 @@ export function asyncHandlerWrapper(handler, renderErrorPage) {
26
28
  .then((html) => {
27
29
  res.status(status).contentType("text/html;charset=utf8").send(html);
28
30
  })
29
- .catch((e) => {
31
+ .catch((e2) => {
30
32
  logger?.error({
31
33
  message: "Error occurred while rendering error page!",
32
- ...formatGenericError(e),
34
+ ...formatGenericError(e2),
33
35
  });
34
36
  res
35
37
  .status(status)
@@ -46,4 +48,4 @@ export function asyncHandlerWrapper(handler, renderErrorPage) {
46
48
  });
47
49
  };
48
50
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hc3luYy13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsT0FBb0QsRUFDcEQsZUFJb0I7SUFFcEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNsQixPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVUsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUF1QixDQUFDO1lBQzFELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUF1QixDQUFDO1lBRWhFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUxQixNQUFNLEtBQUssR0FBRztnQkFDWixPQUFPO2dCQUNQLFNBQVM7Z0JBQ1QsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7YUFDekIsQ0FBQztZQUVGLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUU1RCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDbkIsTUFBTSxPQUFPLEdBQ1gsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUM7WUFFaEUsaUVBQWlFO1lBQ2pFLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNwQixPQUFPO1lBQ1QsQ0FBQztZQUVELG9FQUFvRTtZQUNwRSw4REFBOEQ7WUFDOUQsSUFDRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztnQkFDbEQsZUFBZSxFQUNmLENBQUM7Z0JBQ0QsZUFBZSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO3FCQUN0QyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDYixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEUsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxDQUFDLENBQVUsRUFBRSxFQUFFO29CQUNwQixNQUFNLEVBQUUsS0FBSyxDQUFDO3dCQUNaLE9BQU8sRUFBRSw0Q0FBNEM7d0JBQ3JELEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO3FCQUN6QixDQUFDLENBQUM7b0JBRUgsR0FBRzt5QkFDQSxNQUFNLENBQUMsTUFBTSxDQUFDO3lCQUNkLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQzt5QkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUQsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRztxQkFDQSxNQUFNLENBQUMsTUFBTSxDQUFDO3FCQUNkLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztxQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIn0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hc3luYy13cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsT0FBb0QsRUFDcEQsZUFJb0I7SUFFcEIsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNsQixPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVUsRUFBRSxFQUFFO1lBQ3JDLCtEQUErRDtZQUMvRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBdUIsQ0FBQztZQUMxRCwrREFBK0Q7WUFDL0QsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQXVCLENBQUM7WUFFaEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTFCLE1BQU0sS0FBSyxHQUFHO2dCQUNaLE9BQU87Z0JBQ1AsU0FBUztnQkFDVCxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQzthQUN6QixDQUFDO1lBRUYsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBRTVELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUNuQixNQUFNLE9BQU8sR0FDWCxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztZQUVoRSxpRUFBaUU7WUFDakUsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87WUFDVCxDQUFDO1lBRUQsb0VBQW9FO1lBQ3BFLDhEQUE4RDtZQUM5RCxJQUNFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUNsRCxlQUFlLEVBQ2YsQ0FBQztnQkFDRCxlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7cUJBQ3RDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNiLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0RSxDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLENBQUMsRUFBVyxFQUFFLEVBQUU7b0JBQ3JCLE1BQU0sRUFBRSxLQUFLLENBQUM7d0JBQ1osT0FBTyxFQUFFLDRDQUE0Qzt3QkFDckQsR0FBRyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7cUJBQzFCLENBQUMsQ0FBQztvQkFFSCxHQUFHO3lCQUNBLE1BQU0sQ0FBQyxNQUFNLENBQUM7eUJBQ2QsV0FBVyxDQUFDLGtCQUFrQixDQUFDO3lCQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7aUJBQU0sQ0FBQztnQkFDTixHQUFHO3FCQUNBLE1BQU0sQ0FBQyxNQUFNLENBQUM7cUJBQ2QsV0FBVyxDQUFDLGtCQUFrQixDQUFDO3FCQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
package/dist/error.js CHANGED
@@ -3,9 +3,9 @@ export function formatGenericError(e) {
3
3
  e,
4
4
  // we don't care that the value of e might be weird in the string template, the
5
5
  // whole point is to just convert it to a string no matter the type.
6
- // eslint-disable-next-line -- @typescript-eslint/restrict-template-expressions
6
+ // oxlint-disable-next-line typescript/restrict-template-expressions
7
7
  eStr: `${e}`,
8
8
  eJson: JSON.stringify(e),
9
9
  };
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxVQUFVLGtCQUFrQixDQUFDLENBQVU7SUFDM0MsT0FBTztRQUNMLENBQUM7UUFDRCwrRUFBK0U7UUFDL0Usb0VBQW9FO1FBQ3BFLCtFQUErRTtRQUMvRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDekIsQ0FBQztBQUNKLENBQUMifQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxVQUFVLGtCQUFrQixDQUFDLENBQVU7SUFDM0MsT0FBTztRQUNMLENBQUM7UUFDRCwrRUFBK0U7UUFDL0Usb0VBQW9FO1FBQ3BFLG9FQUFvRTtRQUNwRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDekIsQ0FBQztBQUNKLENBQUMifQ==
@@ -8,11 +8,11 @@ import { TERMINATION_APP_LOCAL_KEY } from "./shutdown.js";
8
8
  */
9
9
  export function healthCheck(app, logger, customCheck) {
10
10
  return (_req, res) => {
11
- // eslint-disable-next-line -- @typescript-eslint/no-unsafe-assignment
12
11
  const terminating = app.locals[TERMINATION_APP_LOCAL_KEY];
13
12
  if (typeof terminating === "boolean" && terminating) {
14
13
  logger.info("App is in TERMINATING state, sending health check failure");
15
- return res.status(503).json({ status: "TERMINATING" });
14
+ res.status(503).json({ status: "TERMINATING" });
15
+ return;
16
16
  }
17
17
  if (customCheck) {
18
18
  customCheck()
@@ -32,8 +32,9 @@ export function healthCheck(app, logger, customCheck) {
32
32
  return;
33
33
  }
34
34
  else {
35
- return res.status(200).json({ status: "OK" });
35
+ res.status(200).json({ status: "OK" });
36
+ return;
36
37
  }
37
38
  };
38
39
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoY2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaGVhbHRoY2hlY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVkxRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLEdBQWdCLEVBQ2hCLE1BQWMsRUFDZCxXQUFvRDtJQUVwRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ25CLHNFQUFzRTtRQUN0RSxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDMUQsSUFBSSxPQUFPLFdBQVcsS0FBSyxTQUFTLElBQUksV0FBVyxFQUFFLENBQUM7WUFDcEQsTUFBTSxDQUFDLElBQUksQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixXQUFXLEVBQUU7aUJBQ1YsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2YsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUNoRCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoQyxDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBVSxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQztnQkFDakIsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXBDLE1BQU0sQ0FBQyxLQUFLLENBQUM7b0JBQ1gsT0FBTyxFQUFFLHFDQUFxQztvQkFDOUMsR0FBRyxLQUFLO2lCQUNULENBQUMsQ0FBQztnQkFFSCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsQ0FBQztZQUNMLE9BQU87UUFDVCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhbHRoY2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaGVhbHRoY2hlY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVkxRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLEdBQWdCLEVBQ2hCLE1BQWMsRUFDZCxXQUFvRDtJQUVwRCxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ25CLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUMxRCxJQUFJLE9BQU8sV0FBVyxLQUFLLFNBQVMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7WUFDekUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUNoRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsV0FBVyxFQUFFO2lCQUNWLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNmLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDaEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLENBQVUsRUFBRSxFQUFFO2dCQUNwQixNQUFNLElBQUksR0FBRyxHQUFHLENBQUM7Z0JBQ2pCLE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVwQyxNQUFNLENBQUMsS0FBSyxDQUFDO29CQUNYLE9BQU8sRUFBRSxxQ0FBcUM7b0JBQzlDLEdBQUcsS0FBSztpQkFDVCxDQUFDLENBQUM7Z0JBRUgsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7WUFDTCxPQUFPO1FBQ1QsQ0FBQzthQUFNLENBQUM7WUFDTixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU87UUFDVCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,6 +1,6 @@
1
+ import { Server } from "http";
1
2
  import type { Logger } from "@saasquatch/logger";
2
3
  import type { Application } from "express";
3
- import { Server } from "http";
4
4
  export declare const TERMINATION_APP_LOCAL_KEY = "__ssqt_terminating";
5
5
  export declare const INSTALLATION_APP_LOCAL_KEY = "__ssqt_shutdown_manager_installed";
6
6
  export type ShutdownManagerConfig = {
package/dist/shutdown.js CHANGED
@@ -10,18 +10,18 @@ const handleHookError = (hook, logger) => (err) => {
10
10
  // these variables outside the library can result in unwanted behavior.
11
11
  export const TERMINATION_APP_LOCAL_KEY = "__ssqt_terminating";
12
12
  export const INSTALLATION_APP_LOCAL_KEY = "__ssqt_shutdown_manager_installed";
13
+ const optionalInt = (key, defaultVal) => {
14
+ const env = process.env[key];
15
+ if (!env) {
16
+ return defaultVal;
17
+ }
18
+ const parsedEnv = parseInt(env, 10);
19
+ if (Number.isNaN(parsedEnv)) {
20
+ throw new Error(`Environment variable "${key}" is not an integer`);
21
+ }
22
+ return parsedEnv;
23
+ };
13
24
  export function shutdownManagerConfigFromEnv(defaults) {
14
- const optionalInt = (key, defaultVal) => {
15
- const env = process.env[key];
16
- if (!env) {
17
- return defaultVal;
18
- }
19
- const parsedEnv = parseInt(env, 10);
20
- if (Number.isNaN(parsedEnv)) {
21
- throw new Error(`Environment variable "${key}" is not an integer`);
22
- }
23
- return parsedEnv;
24
- };
25
25
  const keepAliveTimeoutSeconds = optionalInt("SSQT_HTTP_KEEP_ALIVE_SECONDS", defaults?.keepAliveTimeoutSeconds ?? 60);
26
26
  const terminationDelaySeconds = optionalInt("SSQT_TERMINATION_DELAY_SECONDS", defaults?.terminationDelaySeconds ?? 0);
27
27
  return {
@@ -36,7 +36,6 @@ export function shutdownManagerConfigFromEnv(defaults) {
36
36
  export function installShutdownManager(app, logger, config) {
37
37
  app.disable("x-powered-by");
38
38
  const server = createServer(app);
39
- // eslint-disable-next-line -- @typescript-eslint/no-unsafe-assignment
40
39
  const shutdownManagerInstalled = app.locals[INSTALLATION_APP_LOCAL_KEY];
41
40
  if (typeof shutdownManagerInstalled === "boolean" &&
42
41
  shutdownManagerInstalled) {
@@ -48,7 +47,6 @@ export function installShutdownManager(app, logger, config) {
48
47
  server.keepAliveTimeout = config.keepAliveTimeoutSeconds * 1000;
49
48
  server.headersTimeout = (config.keepAliveTimeoutSeconds + 1) * 1000;
50
49
  const gracefulShutdown = (signal) => () => {
51
- // eslint-disable-next-line -- @typescript-eslint/no-unsafe-assignment
52
50
  const isTerminating = app.locals[TERMINATION_APP_LOCAL_KEY];
53
51
  if (typeof isTerminating === "boolean" && isTerminating) {
54
52
  logger.warn("Server is already in TERMINATING state, not starting shutdown procedure again");
@@ -100,4 +98,4 @@ export function installShutdownManager(app, logger, config) {
100
98
  process.on("SIGINT", gracefulShutdown("SIGINT"));
101
99
  return server;
102
100
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2h1dGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2h1dGRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWhELE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBWSxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFZLEVBQUUsRUFBRTtJQUN6RSxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ1gsT0FBTyxFQUFFLHlDQUF5QyxJQUFJLE9BQU87UUFDN0QsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsd0VBQXdFO0FBQ3hFLHVFQUF1RTtBQUN2RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxvQkFBb0IsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxtQ0FBbUMsQ0FBQztBQVU5RSxNQUFNLFVBQVUsNEJBQTRCLENBQzFDLFFBQXlDO0lBRXpDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQWtCLEVBQVUsRUFBRTtRQUM5RCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcscUJBQXFCLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsT0FBTyxT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
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2h1dGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2h1dGRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWhELE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBWSxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFZLEVBQUUsRUFBRTtJQUN6RSxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ1gsT0FBTyxFQUFFLHlDQUF5QyxJQUFJLE9BQU87UUFDN0QsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7S0FDM0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsd0VBQXdFO0FBQ3hFLHVFQUF1RTtBQUN2RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxvQkFBb0IsQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxtQ0FBbUMsQ0FBQztBQVU5RSxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxVQUFrQixFQUFVLEVBQUU7SUFDOUQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixHQUFHLHFCQUFxQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0s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
package/package.json CHANGED
@@ -1,58 +1,55 @@
1
1
  {
2
2
  "name": "@saasquatch/express-boilerplate",
3
- "version": "2.0.1-0",
4
- "description": "Boilerplate middleware and functions for building Express apps on Kubernetes",
5
- "main": "dist/index.js",
6
- "type": "module",
3
+ "version": "2.0.1-2",
7
4
  "private": false,
8
- "publishConfig": {
9
- "provenance": true,
10
- "access": "public"
5
+ "description": "Boilerplate middleware and functions for building Express apps on Kubernetes",
6
+ "homepage": "https://github.com/saasquatch/program-tools/packages/express-boilerplate#readme",
7
+ "bugs": {
8
+ "url": "https://github.com/saasquatch/program-tools/issues"
11
9
  },
12
- "author": "ReferralSaaSquatch.com, Inc.",
13
10
  "license": "MIT",
14
- "engines": {
15
- "node": "^24 || ^26"
11
+ "author": "ReferralSaaSquatch.com, Inc.",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/saasquatch/program-tools.git"
16
15
  },
17
16
  "files": [
18
17
  "dist/*.js",
19
18
  "dist/*.d.ts"
20
19
  ],
21
- "repository": {
22
- "type": "git",
23
- "url": "git+https://github.com/saasquatch/program-tools.git"
24
- },
25
- "bugs": {
26
- "url": "https://github.com/saasquatch/program-tools/issues"
20
+ "type": "module",
21
+ "main": "dist/index.js",
22
+ "publishConfig": {
23
+ "access": "public",
24
+ "provenance": true
27
25
  },
28
- "homepage": "https://github.com/saasquatch/program-tools/packages/express-boilerplate#readme",
29
26
  "scripts": {
30
27
  "test": "node --test --experimental-test-coverage --test-reporter=spec --test-reporter-destination=stdout src/tests/**/*.ts",
31
28
  "build": "tsc -b",
32
- "check": "tsc --noEmit && npm run lint",
29
+ "check": "tsc --noEmit && oxlint",
30
+ "format": "oxfmt",
33
31
  "prepublishOnly": "if [ \"$CI\" != \"true\" ]; then echo Error: Publishing manually is not supported. Please use the GitHub action. && exit 1; fi",
34
- "prepack": "npm run build",
35
- "lint": "eslint ./src --report-unused-disable-directives"
32
+ "prepack": "npm run build"
36
33
  },
37
34
  "dependencies": {
38
- "nanoid": "^3.3.7"
35
+ "nanoid": "^6.0.1"
39
36
  },
40
37
  "devDependencies": {
41
- "@eslint/eslintrc": "^3.3.5",
42
- "@eslint/js": "^10.0.1",
43
- "@saasquatch/logger": "^3.0.1-0",
38
+ "@saasquatch/logger": "^3.0.1-6",
44
39
  "@types/express": "4",
45
40
  "@types/node": "^24.12.4",
46
41
  "@types/supertest": "^7.2.0",
47
- "@typescript-eslint/eslint-plugin": "^8.59.4",
48
- "@typescript-eslint/parser": "^8.59.4",
49
- "eslint": "^10.4.0",
42
+ "oxfmt": "^0.67.0",
43
+ "oxlint": "^1.82.0",
44
+ "oxlint-tsgolint": "^7.0.2001",
50
45
  "supertest": "^7.2.2",
51
- "typescript": "^6.0.3"
46
+ "typescript": "^7.0.2"
52
47
  },
53
48
  "peerDependencies": {
54
- "@saasquatch/logger": "^3.0.0",
49
+ "@saasquatch/logger": "^3.0.1-6",
55
50
  "express": "^4.0.0"
56
51
  },
57
- "prettier": {}
52
+ "engines": {
53
+ "node": "^24 || ^26"
54
+ }
58
55
  }