@stacksjs/bun-router 0.0.20 → 0.0.21

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.
package/dist/cli.js CHANGED
@@ -2047,7 +2047,7 @@ function getPrefix() {
2047
2047
  }
2048
2048
  var prefix = getPrefix();
2049
2049
  // package.json
2050
- var version = "0.0.20";
2050
+ var version = "0.0.21";
2051
2051
 
2052
2052
  // src/cli/middleware.ts
2053
2053
  import fs2 from "fs/promises";
package/dist/index.js CHANGED
@@ -8693,6 +8693,13 @@ class Router {
8693
8693
  const value = params?.[name];
8694
8694
  return value !== undefined ? value : defaultValue;
8695
8695
  };
8696
+ enhancedReq.getParamAsInt = (name) => {
8697
+ const value = params?.[name];
8698
+ if (value === undefined || value.trim() === "")
8699
+ return null;
8700
+ const parsed = Number(value);
8701
+ return Number.isSafeInteger(parsed) ? parsed : null;
8702
+ };
8696
8703
  enhancedReq.params = params || {};
8697
8704
  return enhancedReq;
8698
8705
  }
@@ -9353,6 +9360,15 @@ if (!RequestWithMacros.hasMacro("getParam")) {
9353
9360
  return value !== undefined ? value : defaultValue;
9354
9361
  });
9355
9362
  }
9363
+ if (!RequestWithMacros.hasMacro("getParamAsInt")) {
9364
+ RequestWithMacros.macro("getParamAsInt", function(name) {
9365
+ const value = this.params?.[name];
9366
+ if (value === undefined || value.trim() === "")
9367
+ return null;
9368
+ const parsed = Number(value);
9369
+ return Number.isSafeInteger(parsed) ? parsed : null;
9370
+ });
9371
+ }
9356
9372
  if (!RequestWithMacros.hasMacro("get")) {
9357
9373
  RequestWithMacros.macro("get", function(key, defaultValue) {
9358
9374
  const value = getParsedURL(this).searchParams.get(key);
package/dist/types.d.ts CHANGED
@@ -695,6 +695,11 @@ export interface EnhancedRequest extends Request, Omit<RequestMacroMethods, 'ip'
695
695
  * `$request->route('name')` ergonomics.
696
696
  */
697
697
  getParam: <T = string>(name: string, defaultValue?: T) => T | undefined;
698
+ /**
699
+ * Read a route parameter as a safe integer. Missing, fractional, and
700
+ * otherwise invalid numeric values return null.
701
+ */
702
+ getParamAsInt: (name: string) => number | null;
698
703
  /**
699
704
  * Query parameters from the URL
700
705
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/bun-router",
3
3
  "type": "module",
4
- "version": "0.0.20",
4
+ "version": "0.0.21",
5
5
  "description": "A fast, type-safe router for Bun.",
6
6
  "author": "Chris Breuer <chris@stacksjs.org>",
7
7
  "license": "MIT",