@uirouter/core
Version:
UI-Router Core: Framework agnostic, State-based routing for JavaScript Single Page Apps
46 lines (45 loc) • 2.23 kB
TypeScript
import { TreeChanges, TransitionHookPhase } from './interface';
import { Transition } from './transition';
import { TransitionHook } from './transitionHook';
import { TransitionEventType } from './transitionEventType';
import { RegisteredHook } from './hookRegistry';
/**
* This class returns applicable TransitionHooks for a specific Transition instance.
*
* Hooks ([[RegisteredHook]]) may be registered globally, e.g., $transitions.onEnter(...), or locally, e.g.
* myTransition.onEnter(...). The HookBuilder finds matching RegisteredHooks (where the match criteria is
* determined by the type of hook)
*
* The HookBuilder also converts RegisteredHooks objects to TransitionHook objects, which are used to run a Transition.
*
* The HookBuilder constructor is given the $transitions service and a Transition instance. Thus, a HookBuilder
* instance may only be used for one specific Transition object. (side note: the _treeChanges accessor is private
* in the Transition class, so we must also provide the Transition's _treeChanges)
*/
export declare class HookBuilder {
private transition;
constructor(transition: Transition);
buildHooksForPhase(phase: TransitionHookPhase): TransitionHook[];
/**
* Returns an array of newly built TransitionHook objects.
*
* - Finds all RegisteredHooks registered for the given `hookType` which matched the transition's [[TreeChanges]].
* - Finds [[PathNode]] (or `PathNode[]`) to use as the TransitionHook context(s)
* - For each of the [[PathNode]]s, creates a TransitionHook
*
* @param hookType the type of the hook registration function, e.g., 'onEnter', 'onFinish'.
*/
buildHooks(hookType: TransitionEventType): TransitionHook[];
/**
* Finds all RegisteredHooks from:
* - The Transition object instance hook registry
* - The TransitionService ($transitions) global hook registry
*
* which matched:
* - the eventType
* - the matchCriteria (to, from, exiting, retained, entering)
*
* @returns an array of matched [[RegisteredHook]]s
*/
getMatchingHooks(hookType: TransitionEventType, treeChanges: TreeChanges, transition: Transition): RegisteredHook[];
}