type-route
Version:
The flexible, type safe routing library.
24 lines (19 loc) • 636 B
text/typescript
import { UmbrellaRoute, UmbrellaRouteDefCollection } from "./types";
export function serializeStateParams(
route: UmbrellaRoute,
routeDefs: UmbrellaRouteDefCollection
) {
const state: Record<string, string> = {};
if (route.name) {
const sortedParams = Object.keys(route.params).sort();
for (const paramName of sortedParams) {
const paramDef =
routeDefs[route.name]["~internal"].params[paramName]["~internal"];
if (paramDef.kind === "state") {
const value = route.params[paramName];
state[paramName] = paramDef.valueSerializer.stringify(value);
}
}
}
return state;
}