@real-router/core 0.50.2 → 0.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Router-DrBkBdZ5.d.ts.map +1 -1
- package/dist/cjs/Router-Pztue5fk.js +6 -0
- package/dist/cjs/Router-Pztue5fk.js.map +1 -0
- package/dist/{esm/RouterValidator-BLtjhvRo.d.mts → cjs/RouterValidator-DLy_W2du.d.ts} +2 -1
- package/dist/cjs/{RouterValidator-BL1Uq6Rq.d.ts.map → RouterValidator-DLy_W2du.d.ts.map} +1 -1
- package/dist/cjs/api.d.ts.map +1 -1
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/getPluginApi-CUcFDzuA.js +2 -0
- package/dist/cjs/getPluginApi-CUcFDzuA.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/internals-na15rxo_.js.map +1 -1
- package/dist/cjs/utils.d.ts +70 -2
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +1 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/validation.d.ts +9 -2
- package/dist/cjs/validation.d.ts.map +1 -1
- package/dist/esm/Router-BeXr2zW4.d.mts.map +1 -1
- package/dist/esm/Router-CK8U23pP.mjs +6 -0
- package/dist/esm/Router-CK8U23pP.mjs.map +1 -0
- package/dist/{cjs/RouterValidator-BL1Uq6Rq.d.ts → esm/RouterValidator-C-PvV00i.d.mts} +2 -1
- package/dist/esm/{RouterValidator-BLtjhvRo.d.mts.map → RouterValidator-C-PvV00i.d.mts.map} +1 -1
- package/dist/esm/api.d.mts.map +1 -1
- package/dist/esm/api.mjs +1 -1
- package/dist/esm/api.mjs.map +1 -1
- package/dist/esm/getPluginApi-CsTfDB-O.mjs +2 -0
- package/dist/esm/getPluginApi-CsTfDB-O.mjs.map +1 -0
- package/dist/esm/index.d.mts +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/internals-CCymabFj.mjs.map +1 -1
- package/dist/esm/utils.d.mts +70 -2
- package/dist/esm/utils.d.mts.map +1 -1
- package/dist/esm/utils.mjs +1 -1
- package/dist/esm/utils.mjs.map +1 -1
- package/dist/esm/validation.d.mts +9 -2
- package/dist/esm/validation.d.mts.map +1 -1
- package/package.json +2 -2
- package/src/Router.ts +20 -0
- package/src/api/getPluginApi.ts +33 -2
- package/src/internals.ts +12 -0
- package/src/namespaces/NavigationNamespace/NavigationNamespace.ts +164 -94
- package/src/namespaces/RouterLifecycleNamespace/RouterLifecycleNamespace.ts +5 -5
- package/src/namespaces/RouterLifecycleNamespace/types.ts +9 -5
- package/src/types/RouterValidator.ts +1 -0
- package/src/utils/hydrateRouter.ts +33 -0
- package/src/utils/index.ts +6 -0
- package/src/utils/serializeRouterState.ts +73 -0
- package/src/wiring/RouterWiringBuilder.ts +2 -2
- package/dist/cjs/Router--UAz5UnF.js +0 -6
- package/dist/cjs/Router--UAz5UnF.js.map +0 -1
- package/dist/cjs/getPluginApi-BBcZZXA5.js +0 -2
- package/dist/cjs/getPluginApi-BBcZZXA5.js.map +0 -1
- package/dist/esm/Router-C4grLNrL.mjs +0 -6
- package/dist/esm/Router-C4grLNrL.mjs.map +0 -1
- package/dist/esm/getPluginApi-DasnID2W.mjs +0 -2
- package/dist/esm/getPluginApi-DasnID2W.mjs.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{t as e,u as t}from"./RouterError-D-Zjbdv9.mjs";import{r as n}from"./internals-CCymabFj.mjs";function r(n){if(n())throw new e(t.ROUTER_DISPOSED)}function i(i){let a=n(i);return{makeState:(e,t,n,r)=>(a.validator?.state.validateMakeStateArgs(e,t,n),a.makeState(e,t,n,r?.params)),buildState:(e,t)=>{a.validator?.routes.validateStateBuilderArgs(e,t,`buildState`);let{name:n,params:r}=a.forwardState(e,t);return a.buildStateResolved(n,r)},forwardState:(e,t)=>(a.validator?.routes.validateStateBuilderArgs(e,t,`forwardState`),a.forwardState(e,t)),matchPath:e=>(a.validator?.routes.validateMatchPathArgs(e),a.matchPath(e,a.getOptions())),setRootPath:e=>{r(a.isDisposed),a.validator?.routes.validateSetRootPathArgs(e),a.setRootPath(e)},getRootPath:a.getRootPath,addEventListener:(e,t)=>(r(a.isDisposed),a.validator?.eventBus.validateListenerArgs(e,t),a.addEventListener(e,t)),buildNavigationState:(e,t={})=>{a.validator?.routes.validateStateBuilderArgs(e,t,`buildNavigationState`);let{name:n,params:r}=a.forwardState(e,t),i=a.buildStateResolved(n,r);if(i)return a.makeState(i.name,i.params,a.buildPath(i.name,i.params),i.meta)},getOptions:a.getOptions,getTree:a.getTree,addInterceptor:(e,t)=>{r(a.isDisposed),a.validator?.plugins.validateAddInterceptorArgs(e,t);let n=a.interceptors.get(e);return n||(n=[],a.interceptors.set(e,n)),n.push(t),()=>{let e=n.indexOf(t);e!==-1&&n.splice(e,1)}},getRouteConfig:e=>{let t=a.routeGetStore();if(t.matcher.hasRoute(e))return t.routeCustomFields[e]},extendRouter:n=>{r(a.isDisposed);let o=Object.keys(n);for(let n of o)if(n in i)throw new e(t.PLUGIN_CONFLICT,{message:`Cannot extend router: property "${n}" already exists`});for(let e of o)i[e]=n[e];let s={keys:o};a.routerExtensions.push(s);let c=!1;return()=>{if(c)return;c=!0;for(let e of s.keys)delete i[e];let e=a.routerExtensions.indexOf(s);e!==-1&&a.routerExtensions.splice(e,1)}},emitTransitionError:e=>{r(a.isDisposed),a.emitTransitionError(e)},claimContextNamespace:(n=>{if(r(a.isDisposed),a.contextClaimRecords.has(n))throw new e(t.CONTEXT_NAMESPACE_ALREADY_CLAIMED,{message:`Cannot claim context namespace: "${n}" is already claimed by another plugin`});return a.contextClaimRecords.add(n),{write(e,t){e.context[n]=t},release(){a.contextClaimRecords.delete(n)}}})}}export{r as n,i as t};
|
|
2
|
-
//# sourceMappingURL=getPluginApi-DasnID2W.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPluginApi-DasnID2W.mjs","names":[],"sources":["../../src/api/helpers.ts","../../src/api/getPluginApi.ts"],"sourcesContent":["// packages/core/src/api/helpers.ts\n\nimport { errorCodes } from \"../constants\";\nimport { RouterError } from \"../RouterError\";\n\nexport function throwIfDisposed(isDisposed: () => boolean): void {\n if (isDisposed()) {\n throw new RouterError(errorCodes.ROUTER_DISPOSED);\n }\n}\n","import { throwIfDisposed } from \"./helpers\";\nimport { errorCodes } from \"../constants\";\nimport { getInternals } from \"../internals\";\nimport { RouterError } from \"../RouterError\";\n\nimport type { PluginApi } from \"./types\";\nimport type {\n ContextNamespaceClaim,\n DefaultDependencies,\n Params,\n Router,\n State,\n} from \"@real-router/types\";\n\nexport function getPluginApi<\n Dependencies extends DefaultDependencies = DefaultDependencies,\n>(router: Router<Dependencies>): PluginApi {\n const ctx = getInternals(router);\n\n return {\n makeState: (name, params, path, meta) => {\n ctx.validator?.state.validateMakeStateArgs(name, params, path);\n\n return ctx.makeState(\n name,\n params,\n path,\n meta?.params as\n | Record<string, Record<string, \"url\" | \"query\">>\n | undefined,\n );\n },\n buildState: (routeName, routeParams) => {\n ctx.validator?.routes.validateStateBuilderArgs(\n routeName,\n routeParams,\n \"buildState\",\n );\n\n const { name, params } = ctx.forwardState(routeName, routeParams);\n\n return ctx.buildStateResolved(name, params);\n },\n forwardState: <P extends Params = Params>(\n routeName: string,\n routeParams: P,\n ) => {\n ctx.validator?.routes.validateStateBuilderArgs(\n routeName,\n routeParams,\n \"forwardState\",\n );\n\n return ctx.forwardState(routeName, routeParams);\n },\n matchPath: (path) => {\n ctx.validator?.routes.validateMatchPathArgs(path);\n\n return ctx.matchPath(path, ctx.getOptions());\n },\n setRootPath: (rootPath) => {\n throwIfDisposed(ctx.isDisposed);\n\n ctx.validator?.routes.validateSetRootPathArgs(rootPath);\n\n ctx.setRootPath(rootPath);\n },\n getRootPath: ctx.getRootPath,\n addEventListener: (eventName, cb) => {\n throwIfDisposed(ctx.isDisposed);\n\n ctx.validator?.eventBus.validateListenerArgs(eventName, cb);\n\n return ctx.addEventListener(eventName, cb);\n },\n buildNavigationState: (name, params = {}) => {\n ctx.validator?.routes.validateStateBuilderArgs(\n name,\n params,\n \"buildNavigationState\",\n );\n\n const { name: resolvedName, params: resolvedParams } = ctx.forwardState(\n name,\n params,\n );\n const routeInfo = ctx.buildStateResolved(resolvedName, resolvedParams);\n\n if (!routeInfo) {\n return;\n }\n\n return ctx.makeState(\n routeInfo.name,\n routeInfo.params,\n ctx.buildPath(routeInfo.name, routeInfo.params),\n routeInfo.meta,\n );\n },\n getOptions: ctx.getOptions,\n getTree: ctx.getTree,\n addInterceptor: (method, fn) => {\n throwIfDisposed(ctx.isDisposed);\n ctx.validator?.plugins.validateAddInterceptorArgs(method, fn);\n let list = ctx.interceptors.get(method);\n\n if (!list) {\n list = [];\n ctx.interceptors.set(method, list);\n }\n\n list.push(fn);\n\n return () => {\n const index = list.indexOf(fn);\n\n if (index !== -1) {\n list.splice(index, 1);\n }\n };\n },\n getRouteConfig: (name) => {\n const store = ctx.routeGetStore();\n\n if (!store.matcher.hasRoute(name)) {\n return;\n }\n\n return store.routeCustomFields[name];\n },\n extendRouter: (extensions: Record<string, unknown>) => {\n throwIfDisposed(ctx.isDisposed);\n\n const keys = Object.keys(extensions);\n\n for (const key of keys) {\n if (key in router) {\n throw new RouterError(errorCodes.PLUGIN_CONFLICT, {\n message: `Cannot extend router: property \"${key}\" already exists`,\n });\n }\n }\n\n for (const key of keys) {\n (router as Record<string, unknown>)[key] = extensions[key];\n }\n\n const extensionRecord = { keys };\n\n ctx.routerExtensions.push(extensionRecord);\n\n let removed = false;\n\n return () => {\n if (removed) {\n return;\n }\n\n removed = true;\n\n for (const key of extensionRecord.keys) {\n delete (router as Record<string, unknown>)[key];\n }\n\n const idx = ctx.routerExtensions.indexOf(extensionRecord);\n\n if (idx !== -1) {\n ctx.routerExtensions.splice(idx, 1);\n }\n };\n },\n emitTransitionError: (error) => {\n throwIfDisposed(ctx.isDisposed);\n ctx.emitTransitionError(error);\n },\n claimContextNamespace: ((namespace: string) => {\n throwIfDisposed(ctx.isDisposed);\n\n if (ctx.contextClaimRecords.has(namespace)) {\n throw new RouterError(errorCodes.CONTEXT_NAMESPACE_ALREADY_CLAIMED, {\n message: `Cannot claim context namespace: \"${namespace}\" is already claimed by another plugin`,\n });\n }\n\n ctx.contextClaimRecords.add(namespace);\n\n return {\n write(state: State, value: unknown) {\n (state.context as Record<string, unknown>)[namespace] = value;\n },\n release() {\n ctx.contextClaimRecords.delete(namespace);\n },\n } satisfies ContextNamespaceClaim;\n }) as PluginApi[\"claimContextNamespace\"],\n };\n}\n"],"mappings":"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"}
|