From: Eduardo San Martin Morote Date: Thu, 21 Aug 2025 14:20:58 +0000 (+0200) Subject: feat(hmr): replace resolver X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4b05bce590d7288fec31f78cee2da2d6aa4a6026;p=thirdparty%2Fvuejs%2Frouter.git feat(hmr): replace resolver --- diff --git a/packages/router/src/experimental/router.ts b/packages/router/src/experimental/router.ts index f7a3caea..b5db8b0e 100644 --- a/packages/router/src/experimental/router.ts +++ b/packages/router/src/experimental/router.ts @@ -568,6 +568,17 @@ export interface EXPERIMENTAL_Router * Original options object passed to create the Router */ readonly options: EXPERIMENTAL_RouterOptions + + /** + * Dev only method to replace the resolver used by the router. Used during HMR + * + * @param newResolver - new resolver to use + * + * @internal + */ + _hmrReplaceResolver?: ( + newResolver: EXPERIMENTAL_ResolverFixed + ) => void } /** @@ -581,7 +592,7 @@ export interface EXPERIMENTAL_Router export function experimental_createRouter( options: EXPERIMENTAL_RouterOptions ): EXPERIMENTAL_Router { - const { + let { resolver, // TODO: document that a custom parsing can be handled with a custom param that parses the whole query // and adds a $query property to the params added at the root record, parent of all records @@ -1373,6 +1384,12 @@ export function experimental_createRouter( ) } + if (__DEV__) { + router._hmrReplaceResolver = newResolver => { + resolver = newResolver + } + } + return router }