} from './matcher-pattern'
import { MatcherPatternPathStar } from './matcher-pattern-path-star'
import { miss } from './errors'
-import { definePathParamParser } from './param-parsers/types'
+import { definePathParamParser } from './param-parsers'
describe('MatcherPatternPathStatic', () => {
describe('match()', () => {
import { MatcherPatternPathDynamic } from './matcher-pattern'
import { PATH_PARAM_PARSER_DEFAULTS } from './param-parsers'
import { PATH_PARAM_SINGLE_DEFAULT } from './param-parsers'
-import { definePathParamParser } from './param-parsers/types'
+import { definePathParamParser } from './param-parsers'
describe('MatcherPatternPathDynamic', () => {
it('can be generic', () => {
+import type { MatcherQueryParamsValue } from '../matcher-pattern'
import type { ParamParser } from './types'
-export {
- definePathParamParser,
- defineParamParser,
- defineQueryParamParser,
-} from './types'
+export { PARAM_PARSER_BOOL } from './booleans'
+export { PARAM_PARSER_INT } from './integers'
export const PATH_PARAM_SINGLE_DEFAULT: ParamParser<string, string> = {}
export type { ParamParser }
-export { PARAM_PARSER_INT } from './integers'
-export { PARAM_PARSER_BOOL } from './booleans'
+/**
+ * Defines a path param parser.
+ *
+ * @param parser - the parser to define. Will be returned as is.
+ *
+ * @see {@link defineQueryParamParser}
+ * @see {@link defineParamParser}
+ */
+/*! #__NO_SIDE_EFFECTS__ */
+
+export function definePathParamParser<
+ TParam,
+ // path params are parsed by the router as these
+ // we use extend to allow infering a more specific type
+ TUrlParam extends string | string[] | null,
+ // we can allow pushing with extra values
+ TParamRaw,
+>(parser: Required<ParamParser<TParam, TUrlParam, TParamRaw>>) {
+ return parser
+}
+
+/**
+ * Defines a query param parser. Note that query params can also be used as
+ * path param parsers.
+ *
+ * @param parser - the parser to define. Will be returned as is.
+ *
+ * @see {@link definePathParamParser}
+ * @see {@link defineParamParser}
+ */
+/*! #__NO_SIDE_EFFECTS__ */
+
+export function defineQueryParamParser<
+ TParam,
+ // we can allow pushing with extra values
+ TParamRaw = TParam,
+>(parser: Required<ParamParser<TParam, MatcherQueryParamsValue, TParamRaw>>) {
+ return parser
+}
+
+/**
+ * Alias for {@link defineQueryParamParser}. Implementing a param parser like this
+ * works for path, query, and hash params.
+ *
+ * @see {@link defineQueryParamParser}
+ * @see {@link definePathParamParser}
+ */
+/*! #__NO_SIDE_EFFECTS__ */
+
+export const defineParamParser = defineQueryParamParser
-import { MatcherQueryParamsValue } from '../matcher-pattern'
+import type { MatcherQueryParamsValue } from '../matcher-pattern'
/**
* Defines a parser that can read a param from the url (string-based) and
set?: (value: TParamRaw) => TUrlParam
}
-/**
- * Defines a path param parser.
- *
- * @param parser - the parser to define. Will be returned as is.
- *
- * @see {@link defineQueryParamParser}
- * @see {@link defineParamParser}
- */
-/*! #__NO_SIDE_EFFECTS__ */
-export function definePathParamParser<
- TParam,
- // path params are parsed by the router as these
- // we use extend to allow infering a more specific type
- TUrlParam extends string | string[] | null,
- // we can allow pushing with extra values
- TParamRaw,
->(parser: Required<ParamParser<TParam, TUrlParam, TParamRaw>>) {
- return parser
-}
-
-/**
- * Defines a query param parser. Note that query params can also be used as
- * path param parsers.
- *
- * @param parser - the parser to define. Will be returned as is.
- *
- * @see {@link definePathParamParser}
- * @see {@link defineParamParser}
- */
-/*! #__NO_SIDE_EFFECTS__ */
-export function defineQueryParamParser<
- TParam,
- // we can allow pushing with extra values
- TParamRaw = TParam,
->(parser: Required<ParamParser<TParam, MatcherQueryParamsValue, TParamRaw>>) {
- return parser
-}
-
-/**
- * Alias for {@link defineQueryParamParser}. Implementing a param parser like this
- * works for path, query, and hash params.
- *
- * @see {@link defineQueryParamParser}
- * @see {@link definePathParamParser}
- */
-/*! #__NO_SIDE_EFFECTS__ */
-export const defineParamParser = defineQueryParamParser
-
// TODO: I wonder if native param parsers should follow this or similar
// these parsers can be used for both query and path params
// export type ParamParserBoth<T> = ParamParser<T | T[] | null>