From 11f4048b119e81085853e83f799a8ae71ffa5977 Mon Sep 17 00:00:00 2001 From: Bogdan Gusiev Date: Mon, 23 Dec 2024 10:03:09 +0100 Subject: [PATCH] Support bigint route parameter --- CHANGELOG.md | 11 +++++++++++ lib/routes.d.ts | 2 +- lib/routes.ts | 2 +- spec/js_routes/module_types/dts/routes.spec.d.ts | 2 +- spec/js_routes/rails_routes_compatibility_spec.rb | 11 +++++++++++ 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efad3f8..ce15b07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [2.3.5] + +* Support `bigint` route parameter + +``` typescript +import {nft_path} from "./routes" + +nft_path(123456789012345678901234567890n) + // => /nfts/123456789012345678901234567890 +``` + ## [2.3.4] * Fix deprecator usage in `rake js:routes:typescript` [#327](https://github.com/railsware/js-routes/issues/327) diff --git a/lib/routes.d.ts b/lib/routes.d.ts index 6c44d6a..50f0a5e 100644 --- a/lib/routes.d.ts +++ b/lib/routes.d.ts @@ -2,7 +2,7 @@ declare type Optional = { [P in keyof T]?: T[P] | null; }; declare type Collection = Record; -declare type BaseRouteParameter = string | boolean | Date | number; +declare type BaseRouteParameter = string | boolean | Date | number | bigint; declare type MethodRouteParameter = BaseRouteParameter | (() => BaseRouteParameter); declare type ModelRouteParameter = { id: MethodRouteParameter; diff --git a/lib/routes.ts b/lib/routes.ts index 0485111..e8fc16a 100644 --- a/lib/routes.ts +++ b/lib/routes.ts @@ -1,7 +1,7 @@ type Optional = { [P in keyof T]?: T[P] | null }; type Collection = Record; -type BaseRouteParameter = string | boolean | Date | number; +type BaseRouteParameter = string | boolean | Date | number | bigint; type MethodRouteParameter = BaseRouteParameter | (() => BaseRouteParameter); type ModelRouteParameter = | { id: MethodRouteParameter } diff --git a/spec/js_routes/module_types/dts/routes.spec.d.ts b/spec/js_routes/module_types/dts/routes.spec.d.ts index 727a41f..37e542a 100644 --- a/spec/js_routes/module_types/dts/routes.spec.d.ts +++ b/spec/js_routes/module_types/dts/routes.spec.d.ts @@ -2,7 +2,7 @@ declare type Optional = { [P in keyof T]?: T[P] | null; }; declare type Collection = Record; -declare type BaseRouteParameter = string | boolean | Date | number; +declare type BaseRouteParameter = string | boolean | Date | number | bigint; declare type MethodRouteParameter = BaseRouteParameter | (() => BaseRouteParameter); declare type ModelRouteParameter = { id: MethodRouteParameter; diff --git a/spec/js_routes/rails_routes_compatibility_spec.rb b/spec/js_routes/rails_routes_compatibility_spec.rb index 4a8fe52..d2dac86 100644 --- a/spec/js_routes/rails_routes_compatibility_spec.rb +++ b/spec/js_routes/rails_routes_compatibility_spec.rb @@ -540,4 +540,15 @@ ) end end + + describe "bigint parameter" do + it "works" do + number = 10**20 + expectjs( + "Routes.inbox_path(#{number}n)" + ).to eq( + test_routes.inbox_path(number) + ) + end + end end