@xmachines/docs 4.0.0 → 5.0.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/README.md +8 -6
- package/api/@xmachines/play/README.md +21 -21
- package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
- package/api/@xmachines/play/errors/classes/PlayError.md +5 -4
- package/api/@xmachines/play/index/README.md +2 -2
- package/api/@xmachines/play/index/functions/asCleanup.md +4 -5
- package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/index/functions/shallowEqualExcept.md +1 -1
- package/api/@xmachines/play/index/type-aliases/Cleanup.md +3 -3
- package/api/@xmachines/play/index/type-aliases/DisposeKey.md +1 -1
- package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play/index/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play-actor/README.md +9 -9
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +6 -6
- package/api/@xmachines/play-atom/README.md +281 -0
- package/api/@xmachines/play-atom/functions/watchAtom.md +79 -0
- package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +16 -0
- package/api/@xmachines/play-atom/interfaces/Atom.md +149 -0
- package/api/@xmachines/play-atom/interfaces/AtomObserver.md +25 -0
- package/api/@xmachines/play-atom/interfaces/AtomOptions.md +33 -0
- package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +23 -0
- package/api/@xmachines/play-atom/interfaces/BaseAtom.md +97 -0
- package/api/@xmachines/play-atom/interfaces/CreateAtom.md +91 -0
- package/api/@xmachines/play-atom/interfaces/Readable.md +93 -0
- package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +108 -0
- package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +13 -0
- package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +32 -0
- package/api/@xmachines/{play-signals → play-atom}/type-aliases/Cleanup.md +4 -4
- package/api/@xmachines/play-atom/variables/createAsyncAtom.md +42 -0
- package/api/@xmachines/play-atom/variables/createAtom.md +18 -0
- package/api/@xmachines/play-atom/variables/createWritableAtom.md +70 -0
- package/api/@xmachines/play-dom/README.md +21 -17
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +10 -10
- package/api/@xmachines/play-dom/functions/asCleanup.md +4 -5
- package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
- package/api/@xmachines/play-dom/type-aliases/Cleanup.md +3 -3
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom-router/README.md +24 -24
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +15 -15
- package/api/@xmachines/play-dom-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-dom-router/functions/asCleanup.md +4 -5
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -7
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +15 -15
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +11 -9
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +5 -5
- package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +3 -3
- package/api/@xmachines/play-dom-router/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play-pattern/README.md +115 -0
- package/api/@xmachines/play-pattern/functions/buildPath.md +46 -0
- package/api/@xmachines/play-pattern/functions/createPatternCache.md +47 -0
- package/api/@xmachines/play-pattern/functions/getIndexKey.md +30 -0
- package/api/@xmachines/play-pattern/functions/isDotSegment.md +40 -0
- package/api/@xmachines/play-pattern/functions/parsePattern.md +28 -0
- package/api/@xmachines/play-pattern/interfaces/GroupPart.md +15 -0
- package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +14 -0
- package/api/@xmachines/play-pattern/interfaces/ParamPart.md +21 -0
- package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +19 -0
- package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-pattern/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-pattern/interfaces/PatternParam.md +15 -0
- package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +74 -0
- package/api/@xmachines/play-pattern/type-aliases/PathParams.md +15 -0
- package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +11 -0
- package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +9 -0
- package/api/@xmachines/play-react/README.md +31 -21
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useAtomEffect.md +103 -0
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-react/variables/ActorProvider.md +2 -2
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-react-router/README.md +3 -3
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +15 -15
- package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -9
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-router/README.md +25 -14
- package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
- package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
- package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
- package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
- package/api/@xmachines/play-router/index/README.md +10 -2
- package/api/@xmachines/play-router/index/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +10 -10
- package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
- package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/createPatternCache.md +47 -0
- package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +5 -5
- package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
- package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/index/functions/extractRouteParams.md +7 -6
- package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/index/functions/findRouteByPath.md +13 -6
- package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/joinBasePath.md +2 -1
- package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
- package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
- package/api/@xmachines/play-router/index/functions/parsePattern.md +28 -0
- package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +5 -5
- package/api/@xmachines/play-router/index/functions/sanitizePathname.md +9 -24
- package/api/@xmachines/play-router/index/functions/splitLocation.md +37 -0
- package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +35 -0
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +13 -8
- package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +9 -9
- package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +11 -9
- package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +24 -0
- package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-router/index/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +15 -9
- package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/Routable.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/index/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +11 -11
- package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +31 -0
- package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +16 -0
- package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +68 -0
- package/api/@xmachines/play-router/index/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
- package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +5 -5
- package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +6 -5
- package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-solid/README.md +9 -5
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +2 -2
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-solid-router/README.md +14 -14
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +18 -18
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-svelte/README.md +11 -7
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/README.md +14 -14
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +15 -15
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +11 -9
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +17 -17
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +15 -15
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -7
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +15 -23
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/README.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +11 -11
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-router/README.md +1 -1
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +16 -16
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/README.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +11 -11
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-url/README.md +21 -15
- package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
- package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
- package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
- package/api/@xmachines/play-url/index/README.md +15 -8
- package/api/@xmachines/play-url/index/functions/buildPath.md +46 -0
- package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/createPatternCache.md +47 -0
- package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
- package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +8 -7
- package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
- package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +2 -2
- package/api/@xmachines/play-url/index/functions/isDotSegment.md +40 -0
- package/api/@xmachines/play-url/index/functions/joinBasePath.md +2 -1
- package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/parsePattern.md +6 -5
- package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +5 -5
- package/api/@xmachines/play-url/index/functions/sanitizePathname.md +27 -0
- package/api/@xmachines/play-url/index/functions/splitLocation.md +37 -0
- package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
- package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +21 -0
- package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +13 -8
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +6 -6
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +5 -5
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +9 -9
- package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +24 -0
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +14 -14
- package/api/@xmachines/play-url/index/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +6 -6
- package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +16 -0
- package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +74 -0
- package/api/@xmachines/play-url/index/type-aliases/PathParams.md +15 -0
- package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
- package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
- package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
- package/api/@xmachines/play-view/README.md +19 -8
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
- package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
- package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
- package/api/@xmachines/play-view/index/functions/createFailureLatch.md +1 -1
- package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
- package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
- package/api/@xmachines/play-view/index/functions/guardContextWrites.md +4 -28
- package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
- package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
- package/api/@xmachines/play-view/index/functions/sameViewInputs.md +1 -1
- package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
- package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +4 -4
- package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +4 -4
- package/api/@xmachines/play-view/index/interfaces/Viewable.md +5 -5
- package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
- package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
- package/api/@xmachines/play-vue/README.md +13 -9
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +6 -6
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +9 -9
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +12 -11
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
- package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +15 -15
- package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +23 -1
- package/api/@xmachines/play-xstate/README.md +61 -30
- package/api/@xmachines/play-xstate/errors/README.md +1 -0
- package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
- package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +207 -0
- package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
- package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
- package/api/@xmachines/play-xstate/index/README.md +2 -2
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +41 -42
- package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
- package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
- package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
- package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +9 -9
- package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/index/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +13 -6
- package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
- package/api/@xmachines/play-xstate/with-view/functions/withView.md +6 -5
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
- package/api/README.md +2 -1
- package/api/llms.txt +4 -3
- package/contributing/architecture.md +105 -124
- package/contributing/configuration.md +15 -15
- package/contributing/deployment.md +82 -6
- package/contributing/development.md +58 -30
- package/contributing/migrating-to-play-atom.md +209 -0
- package/contributing/testing.md +61 -64
- package/examples/README.md +3 -3
- package/examples/basic-state-machine.md +4 -4
- package/examples/form-validation.md +1 -1
- package/examples/multi-router-integration.md +23 -23
- package/examples/routing-patterns.md +5 -5
- package/examples/traffic-light.md +6 -6
- package/guides/README.md +1 -1
- package/guides/actor-model.md +26 -17
- package/guides/atoms.md +264 -0
- package/guides/getting-started.md +52 -17
- package/guides/inspector.md +3 -3
- package/guides/routing.md +67 -47
- package/guides/state-machines.md +4 -4
- package/package.json +3 -3
- package/rfc/play.md +83 -52
- package/api/@xmachines/play-react/functions/useSignalEffect.md +0 -77
- package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +0 -29
- package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +0 -39
- package/api/@xmachines/play-signals/README.md +0 -209
- package/api/@xmachines/play-signals/functions/watchSignal.md +0 -65
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +0 -36
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +0 -49
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +0 -37
- package/api/@xmachines/play-signals/interfaces/SignalState.md +0 -68
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +0 -97
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +0 -22
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +0 -52
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +0 -72
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +0 -21
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +0 -85
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +0 -13
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +0 -25
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +0 -9
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +0 -9
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +0 -19
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +0 -33
- package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +0 -32
- package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +0 -29
- package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +0 -39
- package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +0 -36
- package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +0 -36
- package/guides/signals.md +0 -209
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / buildPath
|
|
2
|
+
|
|
3
|
+
# Function: buildPath()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function buildPath(pattern, params?, options?): PathBuildResult;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [pattern-grammar.ts:713](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L713)
|
|
10
|
+
|
|
11
|
+
Builds the path that a pattern describes, with each param filled from `params`.
|
|
12
|
+
|
|
13
|
+
This is the OUTBOUND half of the language, and it reads the same parse as the match.
|
|
14
|
+
The walk drops an optional part that has no value TOGETHER with the `/` that the part
|
|
15
|
+
absorbed, which is the prefix rule of the module comment: `/settings/:section?` builds
|
|
16
|
+
`/settings`, and not `/settings/`.
|
|
17
|
+
|
|
18
|
+
The function reports a fault through its return value, and it throws never. The
|
|
19
|
+
`reason` field names the fault: `missing` for a param that needs a value and has none,
|
|
20
|
+
and `unresolvable` for a param that carries a value no path can hold. A caller raises
|
|
21
|
+
the error of its own layer — `@xmachines/play-xstate` raises `MissingRouteParamError`
|
|
22
|
+
for the first one and `InvalidRouteParamError` for the second.
|
|
23
|
+
|
|
24
|
+
## Parameters
|
|
25
|
+
|
|
26
|
+
| Parameter | Type | Description |
|
|
27
|
+
| ---------- | ----------------------------------------------- | --------------------------------------------------------------------- |
|
|
28
|
+
| `pattern` | `string` | The route pattern, for example `/profile/:userId`. |
|
|
29
|
+
| `params` | [`PathParams`](../type-aliases/PathParams.md) | The value of each param, keyed by the name that the pattern declares. |
|
|
30
|
+
| `options?` | [`ParseOptions`](../interfaces/ParseOptions.md) | - |
|
|
31
|
+
|
|
32
|
+
## Returns
|
|
33
|
+
|
|
34
|
+
[`PathBuildResult`](../type-aliases/PathBuildResult.md)
|
|
35
|
+
|
|
36
|
+
The path, or the reason that stopped the walk with the param that carries it.
|
|
37
|
+
|
|
38
|
+
## Example
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
buildPath("/profile/:userId", { userId: "alice" }); // { ok: true, path: "/profile/alice" }
|
|
42
|
+
buildPath("/settings/:section?", {}); // { ok: true, path: "/settings" }
|
|
43
|
+
buildPath("/tags/c\\+\\+", {}); // { ok: true, path: "/tags/c++" }
|
|
44
|
+
buildPath("/profile/:userId", {}); // { ok: false, reason: "missing", missing: "userId" }
|
|
45
|
+
buildPath("/files/:name", { name: ".." }); // { ok: false, reason: "unresolvable", … }
|
|
46
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / createPatternCache
|
|
2
|
+
|
|
3
|
+
# Function: createPatternCache()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function createPatternCache<V>(maxSize?): PatternCache<V>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [cache.ts:85](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L85)
|
|
10
|
+
|
|
11
|
+
Builds a cache that forgets its least recently used entries.
|
|
12
|
+
|
|
13
|
+
## The algorithm
|
|
14
|
+
|
|
15
|
+
Two maps, and no list. `recent` takes every write. When a write fills `recent`, it
|
|
16
|
+
becomes `old` and a new `recent` opens, which drops the previous `old` whole. A read of
|
|
17
|
+
a key of `old` moves the entry into `recent`, and THAT is what makes the eviction an
|
|
18
|
+
LRU one rather than a FIFO one: an entry that every lookup reads moves forward, and an
|
|
19
|
+
entry that nothing reads falls out with the map that holds it.
|
|
20
|
+
|
|
21
|
+
The cache therefore holds between `maxSize` and `2 * maxSize` entries, and it does no
|
|
22
|
+
bookkeeping for a read that hits `recent`.
|
|
23
|
+
|
|
24
|
+
## Type Parameters
|
|
25
|
+
|
|
26
|
+
| Type Parameter |
|
|
27
|
+
| -------------- |
|
|
28
|
+
| `V` |
|
|
29
|
+
|
|
30
|
+
## Parameters
|
|
31
|
+
|
|
32
|
+
| Parameter | Type | Default value | Description |
|
|
33
|
+
| --------- | -------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
34
|
+
| `maxSize` | `number` | `500` | The number of entries that `recent` holds. It is `1` at the least, and the default is `500`. A value that is not a finite number reads as the default, so a cache with no eviction at all cannot happen by accident. |
|
|
35
|
+
|
|
36
|
+
## Returns
|
|
37
|
+
|
|
38
|
+
[`PatternCache`](../interfaces/PatternCache.md)\<`V`\>
|
|
39
|
+
|
|
40
|
+
A cache. It is not shared: each call builds one.
|
|
41
|
+
|
|
42
|
+
## Example
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
const cache = createPatternCache<ParsedPattern>(50);
|
|
46
|
+
parsePattern("/profile/:userId", { patternCache: cache });
|
|
47
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / getIndexKey
|
|
2
|
+
|
|
3
|
+
# Function: getIndexKey()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function getIndexKey(path): string;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [pattern-grammar.ts:201](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L201)
|
|
10
|
+
|
|
11
|
+
Computes the key of the bucket index of a concrete PATH.
|
|
12
|
+
|
|
13
|
+
The key is the first path segment, for example `"settings"` of `"/settings/billing"`.
|
|
14
|
+
The root path `"/"` gives the key `"/"`, and a path whose first segment is EMPTY —
|
|
15
|
+
`"//docs"` — gives the key `""`. The two are different keys, so a pattern that matches
|
|
16
|
+
both asks [ParsedPattern.indexKey](../interfaces/ParsedPattern.md#property-indexkey) for the wildcard key instead.
|
|
17
|
+
|
|
18
|
+
[ParsedPattern.indexKey](../interfaces/ParsedPattern.md#property-indexkey) computes the key of a PATTERN, and it calls this
|
|
19
|
+
function for every pattern whose first segment is a literal. One function therefore
|
|
20
|
+
answers both sides, and a pattern in the wrong bucket cannot happen.
|
|
21
|
+
|
|
22
|
+
## Parameters
|
|
23
|
+
|
|
24
|
+
| Parameter | Type | Description |
|
|
25
|
+
| --------- | -------- | ------------------------- |
|
|
26
|
+
| `path` | `string` | The string of a URL path. |
|
|
27
|
+
|
|
28
|
+
## Returns
|
|
29
|
+
|
|
30
|
+
`string`
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / isDotSegment
|
|
2
|
+
|
|
3
|
+
# Function: isDotSegment()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function isDotSegment(segment): boolean;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [pattern-grammar.ts:872](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L872)
|
|
10
|
+
|
|
11
|
+
Answers whether one segment resolves away in a URL, rather than naming itself.
|
|
12
|
+
|
|
13
|
+
A URL parser reads the dot segments BEFORE it decodes the percent escapes, and it counts
|
|
14
|
+
`%2e` as the dot. The WHATWG URL standard names six forms, and a browser resolves every
|
|
15
|
+
one of them out of a location: `.` and `%2e` for the single dot, and `..`, `.%2e`, `%2e.`
|
|
16
|
+
and `%2e%2e` for the double dot. Each percent test is case-insensitive.
|
|
17
|
+
|
|
18
|
+
NO encoding of `.` or `..` therefore survives. A param that carries one describes a path
|
|
19
|
+
that its own pattern matches back never, so [buildPath](buildPath.md) refuses it, and
|
|
20
|
+
`normalizeBasePath` of `@xmachines/play-url` refuses the same value in a base path.
|
|
21
|
+
|
|
22
|
+
Give the segment in the form that the URL carries, and encode nothing here. The two
|
|
23
|
+
callers reach that form by two roads, and both are correct. [buildPath](buildPath.md) encodes a
|
|
24
|
+
param value first, so a value that HOLDS a percent sign arrives with that sign escaped:
|
|
25
|
+
the string `"%2e"` encodes to `"%252e"`, which names itself and stays. `normalizeBasePath`
|
|
26
|
+
of `@xmachines/play-url` reads a path that an author wrote, which is encoded already, so
|
|
27
|
+
it passes the segment RAW and `"%2e"` there is the dot. A caller that encodes an
|
|
28
|
+
already-encoded segment a second time hides every `%2e` from this test.
|
|
29
|
+
|
|
30
|
+
## Parameters
|
|
31
|
+
|
|
32
|
+
| Parameter | Type | Description |
|
|
33
|
+
| --------- | -------- | ----------------------------------------------------------------------------------- |
|
|
34
|
+
| `segment` | `string` | ONE path segment, with no separator around it, in the form that the URL carries it. |
|
|
35
|
+
|
|
36
|
+
## Returns
|
|
37
|
+
|
|
38
|
+
`boolean`
|
|
39
|
+
|
|
40
|
+
`true` when a URL resolves the segment away.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / parsePattern
|
|
2
|
+
|
|
3
|
+
# Function: parsePattern()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function parsePattern(pattern, options?): ParsedPattern;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [pattern-grammar.ts:264](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L264)
|
|
10
|
+
|
|
11
|
+
Reads a route pattern, one time for each distinct pattern.
|
|
12
|
+
|
|
13
|
+
The parser reports a fault never. A pattern that it cannot read reports
|
|
14
|
+
`parameterized: true` and `bareForm: null`, which sends it to the URLPattern
|
|
15
|
+
constructor and keeps every derived answer on the safe side.
|
|
16
|
+
|
|
17
|
+
## Parameters
|
|
18
|
+
|
|
19
|
+
| Parameter | Type | Description |
|
|
20
|
+
| ---------- | ----------------------------------------------- | -------------------------------------------------- |
|
|
21
|
+
| `pattern` | `string` | The route pattern, for example `/profile/:userId`. |
|
|
22
|
+
| `options?` | [`ParseOptions`](../interfaces/ParseOptions.md) | - |
|
|
23
|
+
|
|
24
|
+
## Returns
|
|
25
|
+
|
|
26
|
+
[`ParsedPattern`](../interfaces/ParsedPattern.md)
|
|
27
|
+
|
|
28
|
+
The parse. The caller treats it as read-only: the cache holds this object.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / GroupPart
|
|
2
|
+
|
|
3
|
+
# Interface: GroupPart
|
|
4
|
+
|
|
5
|
+
Defined in: [pattern-grammar.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L92)
|
|
6
|
+
|
|
7
|
+
A `{…}` group, which carries its own parts and its own modifier.
|
|
8
|
+
|
|
9
|
+
## Properties
|
|
10
|
+
|
|
11
|
+
| Property | Modifier | Type | Defined in |
|
|
12
|
+
| ----------------------------------------- | ---------- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| <a id="property-kind"></a> `kind` | `readonly` | `"group"` | [pattern-grammar.ts:93](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L93) |
|
|
14
|
+
| <a id="property-modifier"></a> `modifier` | `readonly` | [`PatternModifier`](../type-aliases/PatternModifier.md) | [pattern-grammar.ts:95](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L95) |
|
|
15
|
+
| <a id="property-parts"></a> `parts` | `readonly` | readonly [`PatternPart`](../type-aliases/PatternPart.md)[] | [pattern-grammar.ts:94](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L94) |
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / LiteralPart
|
|
2
|
+
|
|
3
|
+
# Interface: LiteralPart
|
|
4
|
+
|
|
5
|
+
Defined in: [pattern-grammar.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L59)
|
|
6
|
+
|
|
7
|
+
A run of literal characters, with every escape already resolved.
|
|
8
|
+
|
|
9
|
+
## Properties
|
|
10
|
+
|
|
11
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
12
|
+
| --------------------------------- | ---------- | ----------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| <a id="property-kind"></a> `kind` | `readonly` | `"literal"` | - | [pattern-grammar.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L60) |
|
|
14
|
+
| <a id="property-text"></a> `text` | `readonly` | `string` | The characters that a path must carry, for example `/settings`. | [pattern-grammar.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L62) |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / ParamPart
|
|
2
|
+
|
|
3
|
+
# Interface: ParamPart
|
|
4
|
+
|
|
5
|
+
Defined in: [pattern-grammar.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L71)
|
|
6
|
+
|
|
7
|
+
A param: `:name`, `(\d+)`, or `*`.
|
|
8
|
+
|
|
9
|
+
An anonymous param carries no `name`. URLPattern numbers such a group from `0`, and
|
|
10
|
+
this library reports it to no machine — see [ParsedPattern.params](ParsedPattern.md#property-params).
|
|
11
|
+
|
|
12
|
+
## Properties
|
|
13
|
+
|
|
14
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
15
|
+
| ------------------------------------------- | ---------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
16
|
+
| <a id="property-groupname"></a> `groupName` | `readonly` | `string` \| `null` | The name that URLPattern compiles, with each hyphen rewritten to an underscore, or `null` for an anonymous param. The rewrite happens ONE time, here, and [ParsedPattern.normalized](ParsedPattern.md#property-normalized) carries the same characters. A caller that needs the group name of a param reads this field, and it rewrites nothing of its own. | [pattern-grammar.ts:83](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L83) |
|
|
17
|
+
| <a id="property-kind"></a> `kind` | `readonly` | `"param"` | - | [pattern-grammar.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L72) |
|
|
18
|
+
| <a id="property-modifier"></a> `modifier` | `readonly` | [`PatternModifier`](../type-aliases/PatternModifier.md) | - | [pattern-grammar.ts:88](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L88) |
|
|
19
|
+
| <a id="property-name"></a> `name` | `readonly` | `string` \| `null` | The declared name, with each hyphen kept, or `null` for an anonymous param. | [pattern-grammar.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L74) |
|
|
20
|
+
| <a id="property-prefix"></a> `prefix` | `readonly` | `string` | The `/` that the param absorbed from the literal before it, or `""`. | [pattern-grammar.ts:87](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L87) |
|
|
21
|
+
| <a id="property-regexp"></a> `regexp` | `readonly` | `string` \| `null` | The source of the constraint of `:id(\d+)`, or `null` when the param declares none. | [pattern-grammar.ts:85](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L85) |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / ParseOptions
|
|
2
|
+
|
|
3
|
+
# Interface: ParseOptions
|
|
4
|
+
|
|
5
|
+
Defined in: [cache.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L34)
|
|
6
|
+
|
|
7
|
+
The options that every read of the pattern language takes.
|
|
8
|
+
|
|
9
|
+
It is ONE field today, and it is an object rather than a positional argument so that a
|
|
10
|
+
caller holds one object and hands it to every call — `parsePattern`, `buildPath`,
|
|
11
|
+
`getCompiledPattern`, `findRouteByPath`, a route map and a bridge all take it, and
|
|
12
|
+
`CompileOptions` and `RouteMapOptions` extend it with the caches of their own layer. A
|
|
13
|
+
positional argument gave each layer a different position to remember.
|
|
14
|
+
|
|
15
|
+
## Properties
|
|
16
|
+
|
|
17
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
18
|
+
| -------------------------------------------------- | ---------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
|
|
19
|
+
| <a id="property-patterncache"></a> `patternCache?` | `readonly` | [`PatternCache`](PatternCache.md)\<[`ParsedPattern`](ParsedPattern.md)\> | The cache of the PARSE of a pattern. The default is the cache that this package shares with every caller of the process. | [cache.ts:40](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L40) |
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / ParsedPattern
|
|
2
|
+
|
|
3
|
+
# Interface: ParsedPattern
|
|
4
|
+
|
|
5
|
+
Defined in: [pattern-grammar.ts:117](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L117)
|
|
6
|
+
|
|
7
|
+
Everything that this library reads from one route pattern.
|
|
8
|
+
|
|
9
|
+
## Properties
|
|
10
|
+
|
|
11
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
12
|
+
| --------------------------------------------------- | ---------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
13
|
+
| <a id="property-bareform"></a> `bareForm` | `readonly` | `string` \| `null` | The path that the pattern matches when every optional part is absent, or `null` when the pattern holds a part that a path must fill. `/settings/:section?` gives `/settings`, `/a/{b}?/c` gives `/a//c`, and `/profile/:userId` gives `null`. | [pattern-grammar.ts:154](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L154) |
|
|
14
|
+
| <a id="property-declarednames"></a> `declaredNames` | `readonly` | `ReadonlyMap`\<`string`, `string`\> | The map from each rewritten group name back to the name that the pattern declares, for example `cat_id` to `cat-id`. The map holds an entry only for a name that the rewrite changed. It is empty for most patterns, and a caller that reads a group name falls back to the name itself. | [pattern-grammar.ts:184](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L184) |
|
|
15
|
+
| <a id="property-indexkey"></a> `indexKey` | `readonly` | `string` | The key of the bucket index: the first path segment, or `"*"` when a param can stand in the first segment. | [pattern-grammar.ts:171](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L171) |
|
|
16
|
+
| <a id="property-literalpath"></a> `literalPath` | `readonly` | `string` \| `null` | The ONE path that the pattern matches, with each escape resolved, or `null` when the pattern describes a SET of paths. `/users` gives `/users`, `/tags/c\+\+` gives `/tags/c++`, `/x{y}z` gives `/xyz`, and `/profile/:userId` gives `null`. A bridge writes a real browser URL from this field. The SOURCE of the pattern is no substitute for it: `/tags/c\+\+` carries two backslashes that the address bar must not hold, and a location that carries them matches the route never. | [pattern-grammar.ts:166](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L166) |
|
|
17
|
+
| <a id="property-names"></a> `names` | `readonly` | readonly `string`[] | The name of every param of [params](#property-params), in the same order. `resolveFrameworkParams` runs on EVERY navigation and it needs this list each time. The parse holds it, so a navigation allocates none. A caller that hands the array to somebody else copies it: the cache holds this one. | [pattern-grammar.ts:131](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L131) |
|
|
18
|
+
| <a id="property-normalized"></a> `normalized` | `readonly` | `string` | The pattern in the form that URLPattern compiles: each param name that holds a hyphen carries an underscore instead. | [pattern-grammar.ts:176](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L176) |
|
|
19
|
+
| <a id="property-parameterized"></a> `parameterized` | `readonly` | `boolean` | True when the pattern needs a URLPattern match, and false when it is a literal path. A malformed pattern reports `true`, so that it reaches the URLPattern constructor and fails there with the error of the API. A parser that called it static would send it to the exact-match map instead, where it matches nothing and reports no fault. | [pattern-grammar.ts:146](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L146) |
|
|
20
|
+
| <a id="property-params"></a> `params` | `readonly` | readonly [`PatternParam`](PatternParam.md)[] | The NAMED params, in the order that the pattern declares them. | [pattern-grammar.ts:123](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L123) |
|
|
21
|
+
| <a id="property-parts"></a> `parts` | `readonly` | readonly [`PatternPart`](../type-aliases/PatternPart.md)[] | The parts, in the order that the pattern declares them. | [pattern-grammar.ts:121](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L121) |
|
|
22
|
+
| <a id="property-requirednames"></a> `requiredNames` | `readonly` | readonly `string`[] | The name of every param that a path must fill, in the order of [params](#property-params). The same rule as [names](#property-names): the parse holds the array, and a navigation reads it. | [pattern-grammar.ts:137](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L137) |
|
|
23
|
+
| <a id="property-source"></a> `source` | `readonly` | `string` | The pattern as the caller wrote it. | [pattern-grammar.ts:119](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L119) |
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PatternCache
|
|
2
|
+
|
|
3
|
+
# Interface: PatternCache\<V\>
|
|
4
|
+
|
|
5
|
+
Defined in: [cache.ts:53](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L53)
|
|
6
|
+
|
|
7
|
+
What this package needs from a cache: a read and a write, both by a string key.
|
|
8
|
+
|
|
9
|
+
The contract is this small on purpose. A `Map` satisfies it, and so does an LRU of any
|
|
10
|
+
library — a caller that wants a time to live or an eviction callback brings the module
|
|
11
|
+
that has one, and this package needs to know nothing about it.
|
|
12
|
+
|
|
13
|
+
A cache may forget an entry at any time, and it may forget none. Both are correct: the
|
|
14
|
+
parser runs again for an entry that is absent.
|
|
15
|
+
|
|
16
|
+
## Type Parameters
|
|
17
|
+
|
|
18
|
+
| Type Parameter |
|
|
19
|
+
| -------------- |
|
|
20
|
+
| `V` |
|
|
21
|
+
|
|
22
|
+
## Methods
|
|
23
|
+
|
|
24
|
+
### get()
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
get(key): V | undefined;
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Defined in: [cache.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L55)
|
|
31
|
+
|
|
32
|
+
Reads one entry, or `undefined` when the cache holds none for the key.
|
|
33
|
+
|
|
34
|
+
#### Parameters
|
|
35
|
+
|
|
36
|
+
| Parameter | Type |
|
|
37
|
+
| --------- | -------- |
|
|
38
|
+
| `key` | `string` |
|
|
39
|
+
|
|
40
|
+
#### Returns
|
|
41
|
+
|
|
42
|
+
`V` \| `undefined`
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### set()
|
|
47
|
+
|
|
48
|
+
```ts
|
|
49
|
+
set(key, value): void;
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Defined in: [cache.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L57)
|
|
53
|
+
|
|
54
|
+
Writes one entry.
|
|
55
|
+
|
|
56
|
+
#### Parameters
|
|
57
|
+
|
|
58
|
+
| Parameter | Type |
|
|
59
|
+
| --------- | -------- |
|
|
60
|
+
| `key` | `string` |
|
|
61
|
+
| `value` | `V` |
|
|
62
|
+
|
|
63
|
+
#### Returns
|
|
64
|
+
|
|
65
|
+
`void`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PatternParam
|
|
2
|
+
|
|
3
|
+
# Interface: PatternParam
|
|
4
|
+
|
|
5
|
+
Defined in: [pattern-grammar.ts:101](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L101)
|
|
6
|
+
|
|
7
|
+
One named param of a pattern, with the question that every caller asks about it.
|
|
8
|
+
|
|
9
|
+
## Properties
|
|
10
|
+
|
|
11
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
12
|
+
| ------------------------------------------- | ---------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
13
|
+
| <a id="property-groupname"></a> `groupName` | `readonly` | `string` | The name that URLPattern compiles, for example `cat_id`. | [pattern-grammar.ts:105](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L105) |
|
|
14
|
+
| <a id="property-name"></a> `name` | `readonly` | `string` | The name as the pattern declares it, for example `cat-id`. | [pattern-grammar.ts:103](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L103) |
|
|
15
|
+
| <a id="property-optional"></a> `optional` | `readonly` | `boolean` | True when a matching path can carry no value for this param. The modifier `?` and the modifier `*` make a param optional, and so does EVERY group above it that carries one of the two. The modifier `+` does not: it repeats a param that one value must still fill. | [pattern-grammar.ts:113](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L113) |
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PathBuildResult
|
|
2
|
+
|
|
3
|
+
# Type Alias: PathBuildResult
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type PathBuildResult =
|
|
7
|
+
| {
|
|
8
|
+
ok: true;
|
|
9
|
+
path: string;
|
|
10
|
+
}
|
|
11
|
+
| {
|
|
12
|
+
missing: string;
|
|
13
|
+
ok: false;
|
|
14
|
+
reason: "missing";
|
|
15
|
+
}
|
|
16
|
+
| {
|
|
17
|
+
ok: false;
|
|
18
|
+
param: string;
|
|
19
|
+
reason: "unresolvable";
|
|
20
|
+
value: string;
|
|
21
|
+
};
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Defined in: [pattern-grammar.ts:651](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L651)
|
|
25
|
+
|
|
26
|
+
The answer of [buildPath](../functions/buildPath.md).
|
|
27
|
+
|
|
28
|
+
## Union Members
|
|
29
|
+
|
|
30
|
+
### Type Literal
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
{
|
|
34
|
+
ok: true;
|
|
35
|
+
path: string;
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The pattern built a path, and every part that needs a value has one.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### Type Literal
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
{
|
|
47
|
+
missing: string;
|
|
48
|
+
ok: false;
|
|
49
|
+
reason: "missing";
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
A part needs a value that the caller did not give.
|
|
54
|
+
|
|
55
|
+
`missing` names the param as the PATTERN declares it, with each hyphen kept, so a
|
|
56
|
+
caller reports the name that its author wrote.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
### Type Literal
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
{
|
|
64
|
+
ok: false;
|
|
65
|
+
param: string;
|
|
66
|
+
reason: "unresolvable";
|
|
67
|
+
value: string;
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
A param carries a value that no path can hold, so the pattern matches the result
|
|
72
|
+
back never. `param` names the param, and `value` holds what the caller gave.
|
|
73
|
+
|
|
74
|
+
A dot segment is the one such value today: see [isDotSegment](../functions/isDotSegment.md).
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PathParams
|
|
2
|
+
|
|
3
|
+
# Type Alias: PathParams
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type PathParams = Readonly<Record<string, unknown>>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [pattern-grammar.ts:681](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L681)
|
|
10
|
+
|
|
11
|
+
The values that a caller gives, keyed by the declared name of the param.
|
|
12
|
+
|
|
13
|
+
The value is `unknown`, because a caller reads it from the context of an actor and that
|
|
14
|
+
context carries whatever the machine put there. [buildPath](../functions/buildPath.md) calls `String` on a
|
|
15
|
+
value that is neither `undefined` nor `null`.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PatternModifier
|
|
2
|
+
|
|
3
|
+
# Type Alias: PatternModifier
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type PatternModifier = "" | "?" | "+" | "*";
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [pattern-grammar.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L56)
|
|
10
|
+
|
|
11
|
+
The modifier of a part. `""` means that the part carries none.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PatternPart
|
|
2
|
+
|
|
3
|
+
# Type Alias: PatternPart
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type PatternPart = LiteralPart | ParamPart | GroupPart;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [pattern-grammar.ts:98](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L98)
|