From 9c8268cb0b4cedacfc49e77de9238a092eee4a20 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 27 Aug 2025 22:05:39 +0200 Subject: [PATCH] refactor: correct export --- .../matchers/matcher-pattern.spec.ts | 2 +- .../matchers/matcher-pattern.test-d.ts | 2 +- .../matchers/param-parsers/index.ts | 60 ++++++++++++++++--- .../matchers/param-parsers/types.ts | 50 +--------------- 4 files changed, 56 insertions(+), 58 deletions(-) diff --git a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.spec.ts b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.spec.ts index ed1dc7d3..582580c7 100644 --- a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.spec.ts +++ b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.spec.ts @@ -5,7 +5,7 @@ import { } 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()', () => { diff --git a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.test-d.ts b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.test-d.ts index 42df251a..44509109 100644 --- a/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.test-d.ts +++ b/packages/router/src/experimental/route-resolver/matchers/matcher-pattern.test-d.ts @@ -2,7 +2,7 @@ import { describe, expectTypeOf, it } from 'vitest' 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', () => { diff --git a/packages/router/src/experimental/route-resolver/matchers/param-parsers/index.ts b/packages/router/src/experimental/route-resolver/matchers/param-parsers/index.ts index c57f67b9..e8beef88 100644 --- a/packages/router/src/experimental/route-resolver/matchers/param-parsers/index.ts +++ b/packages/router/src/experimental/route-resolver/matchers/param-parsers/index.ts @@ -1,10 +1,8 @@ +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 = {} @@ -34,5 +32,53 @@ export const PATH_PARAM_PARSER_DEFAULTS = { 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>) { + 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>) { + 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 diff --git a/packages/router/src/experimental/route-resolver/matchers/param-parsers/types.ts b/packages/router/src/experimental/route-resolver/matchers/param-parsers/types.ts index 0c051d2b..b7337bdc 100644 --- a/packages/router/src/experimental/route-resolver/matchers/param-parsers/types.ts +++ b/packages/router/src/experimental/route-resolver/matchers/param-parsers/types.ts @@ -1,4 +1,4 @@ -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 @@ -20,54 +20,6 @@ export interface ParamParser< 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>) { - 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>) { - 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 = ParamParser -- 2.47.3