normalizeParam
Produces a Param implementation from a supplied string or parameter.
function normalizeParam(p: ParamOrString): Param;
Parameters
Accepts a single argument - either an existing Param, or the name of a
parameter as a string.
Return value
A Param implementation:
- If the supplied parameter is already a
Paramimplementation, it is returned as-is. - String values will be converted to a basic string-based parameter with the
supplied string becoming the
nameof the newly createdParam.
Usage
Unless you are interested in implementing custom parameters, chances are you do not need to use this function at all.
However, if you're implementing custom parameters that accept another parameter
as input, and you want to be able to accept strings as parameters in the same
way that path does, then normalizeParam is what you need. This is the same
function used internally when creating path patterns to convert any parameters
specified as strings into full Param implementations:
import { path } from "@snout/router-path";
const user = path`/user/${"id"}`; // internally, "id" is converted to a Param using normalizeParam
A real-world example that uses normalizeParam are the optional parameters
implemented by @snout/router-path-extras.