Skip to content

Commit 40503f9

Browse files
committed
Remove event bus from transitions
1 parent 58cf003 commit 40503f9

File tree

9 files changed

+67
-20
lines changed

9 files changed

+67
-20
lines changed

@types/namespace.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
} from "./services/anchor-scroll/interface.ts";
1717
import { ControllerService as TControllerService } from "./core/controller/interface.ts";
1818
import { ExceptionHandler as TExceptionHandler } from "./services/exception/interface.ts";
19+
import { ExceptionHandlerProvider as TExceptionHandlerProvider } from "./services/exception/exception.js";
1920
import { ParseService as TParseService } from "./core/parse/interface.ts";
2021
import { TemplateRequestService as TTemplateRequestService } from "./services/template-request/interface.ts";
2122
import { HttpParamSerializer as THttpParamSerializer } from "./services/http/interface.ts";
@@ -134,8 +135,9 @@ declare global {
134135
type AnchorScrollProvider = TAnchorScrollProvider;
135136
type AnimateProvider = TAnimateProvider;
136137
type FilterProvider = TFilterProvider;
137-
type InterpolateProvider = TInterpolateProvider;
138+
type ExceptionHandlerProvider = TExceptionHandlerProvider;
138139
type HttpParamSerializerProvider = THttpParamSerializerProvider;
140+
type InterpolateProvider = TInterpolateProvider;
139141
type LocationProvider = TLocationProvider;
140142
type SceProvider = TSceProvider;
141143
type SceDelegateProvider = TSceDelegateProvider;

@types/router/transition/transition-hook.d.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,29 @@ export class TransitionHook {
5353
* Run all TransitionHooks, ignoring their return value.
5454
*/
5555
static runAllHooks(hooks: any): void;
56+
/**
57+
*
58+
* @param {*} transition
59+
* @param {*} stateContext
60+
* @param {*} registeredHook
61+
* @param {*} options
62+
* @param {ng.ExceptionHandlerService} exceptionHandler
63+
*/
5664
constructor(
5765
transition: any,
5866
stateContext: any,
5967
registeredHook: any,
6068
options: any,
69+
exceptionHandler: ng.ExceptionHandlerService,
6170
);
6271
transition: any;
6372
stateContext: any;
6473
registeredHook: any;
6574
options: any;
6675
isSuperseded: () => boolean;
6776
type: any;
77+
/** @type {ng.ExceptionHandlerService} */
78+
_exceptionHandler: ng.ExceptionHandlerService;
6879
logError(err: any): void;
6980
invokeHook(): any;
7081
/**

@types/router/transition/transition-service.d.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,15 @@ export namespace defaultTransOpts {
2323
export class TransitionProvider {
2424
static $inject: string[];
2525
/**
26-
* @param {import('../router.js').RouterProvider} globals
27-
* @param viewService
26+
* @param {ng.RouterService} globals
27+
* @param {ng.ViewService} viewService
28+
* @param {ng.ExceptionHandlerProvider} $exceptionHandler
2829
*/
29-
constructor(globals: import("../router.js").RouterProvider, viewService: any);
30+
constructor(
31+
globals: ng.RouterService,
32+
viewService: ng.ViewService,
33+
$exceptionHandler: ng.ExceptionHandlerProvider,
34+
);
3035
_transitionCount: number;
3136
/** The transition hook types, such as `onEnter`, `onStart`, etc */
3237
_eventTypes: any[];
@@ -35,8 +40,10 @@ export class TransitionProvider {
3540
/** The paths on a criteria object */
3641
_criteriaPaths: {};
3742
globals: import("../router.js").RouterProvider;
38-
$view: any;
43+
$view: import("../view/view.js").ViewService;
3944
_deregisterHookFns: {};
45+
/** @type {ng.ExceptionHandlerService} */
46+
_$exceptionHandler: ng.ExceptionHandlerService;
4047
$get: (
4148
| string
4249
| ((

@types/router/transition/transition.d.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@ export class Transition implements HookRegistry {
1616
* @param {Array<import('../path/path-node.js').PathNode>} fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`
1717
* encapsulates the "from state".
1818
* @param {import('../state/target-state.js').TargetState} targetState The target state and parameters being transitioned to (also, the transition options)
19-
* @param {import('../transition/transition-service.js').TransitionProvider} transitionService The [[TransitionService]] instance
20-
* @param {import('../router.js').RouterProvider} globals
19+
* @param {ng.TransitionService} transitionService The [[TransitionService]] instance
20+
* @param {ng.RouterService} globals
2121
*/
2222
constructor(
2323
fromPath: Array<import("../path/path-node.js").PathNode>,
2424
targetState: import("../state/target-state.js").TargetState,
25-
transitionService: import("../transition/transition-service.js").TransitionProvider,
26-
globals: import("../router.js").RouterProvider,
25+
transitionService: ng.TransitionService,
26+
globals: ng.RouterService,
2727
);
2828
/**
2929
* @type {import('../router.js').RouterProvider}
3030
*/
3131
_globals: import("../router.js").RouterProvider;
32-
_transitionService: import("../transition/transition-service.js").TransitionProvider;
32+
_transitionService: ng.TransitionService;
3333
_deferred: any;
3434
/**
3535
* This promise is resolved or rejected based on the outcome of the Transition.

src/namespace.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020

2121
import { ControllerService as TControllerService } from "./core/controller/interface.ts";
2222
import { ExceptionHandler as TExceptionHandler } from "./services/exception/interface.ts";
23+
import { ExceptionHandlerProvider as TExceptionHandlerProvider } from "./services/exception/exception.js";
2324
import { ParseService as TParseService } from "./core/parse/interface.ts";
2425
import { TemplateRequestService as TTemplateRequestService } from "./services/template-request/interface.ts";
2526

@@ -146,8 +147,9 @@ declare global {
146147
export type AnchorScrollProvider = TAnchorScrollProvider;
147148
export type AnimateProvider = TAnimateProvider;
148149
export type FilterProvider = TFilterProvider;
149-
export type InterpolateProvider = TInterpolateProvider;
150+
export type ExceptionHandlerProvider = TExceptionHandlerProvider;
150151
export type HttpParamSerializerProvider = THttpParamSerializerProvider;
152+
export type InterpolateProvider = TInterpolateProvider;
151153
export type LocationProvider = TLocationProvider;
152154
export type SceProvider = TSceProvider;
153155
export type SceDelegateProvider = TSceDelegateProvider;

src/router/transition/hook-builder.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ export class HookBuilder {
9393
state,
9494
hook,
9595
_options,
96+
this.transition._transitionService._$exceptionHandler,
9697
);
9798

9899
return { hook, node, transitionHook };

src/router/transition/transition-hook.js

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { parse } from "../../shared/hof.js";
55
import { trace } from "../common/trace.js";
66
import { Rejection } from "./reject-factory.js";
77
import { TargetState } from "../state/target-state.js";
8-
import { EventBus } from "../../services/pubsub/pubsub.js";
98

109
const defaultOptions = {
1110
current: () => {
@@ -99,7 +98,21 @@ export class TransitionHook {
9998
hooks.forEach((hook) => hook.invokeHook());
10099
}
101100

102-
constructor(transition, stateContext, registeredHook, options) {
101+
/**
102+
*
103+
* @param {*} transition
104+
* @param {*} stateContext
105+
* @param {*} registeredHook
106+
* @param {*} options
107+
* @param {ng.ExceptionHandlerService} exceptionHandler
108+
*/
109+
constructor(
110+
transition,
111+
stateContext,
112+
registeredHook,
113+
options,
114+
exceptionHandler,
115+
) {
103116
this.transition = transition;
104117
this.stateContext = stateContext;
105118
this.registeredHook = registeredHook;
@@ -109,10 +122,13 @@ export class TransitionHook {
109122
!this.options.transition.isActive();
110123
this.options = defaults(options, defaultOptions);
111124
this.type = registeredHook.eventType;
125+
126+
/** @type {ng.ExceptionHandlerService} */
127+
this._exceptionHandler = exceptionHandler;
112128
}
113129

114130
logError(err) {
115-
EventBus.publish("$stateService:defaultErrorHandler", err);
131+
this._exceptionHandler(err);
116132
}
117133

118134
invokeHook() {

src/router/transition/transition-service.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,18 @@ export const defaultTransOpts = {
6363
* This API is located at `router.transitionService` ([[UIRouter.transitionService]])
6464
*/
6565
export class TransitionProvider {
66-
/* @ignore */ static $inject = provider([$t._router, $t._view]);
66+
/* @ignore */ static $inject = provider([
67+
$t._router,
68+
$t._view,
69+
$t._exceptionHandler,
70+
]);
6771

6872
/**
69-
* @param {import('../router.js').RouterProvider} globals
70-
* @param viewService
73+
* @param {ng.RouterService} globals
74+
* @param {ng.ViewService} viewService
75+
* @param {ng.ExceptionHandlerProvider} $exceptionHandler
7176
*/
72-
constructor(globals, viewService) {
77+
constructor(globals, viewService, $exceptionHandler) {
7378
this._transitionCount = 0;
7479
/** The transition hook types, such as `onEnter`, `onStart`, etc */
7580
this._eventTypes = [];
@@ -83,6 +88,9 @@ export class TransitionProvider {
8388
this._defineCorePaths();
8489
this._defineCoreEvents();
8590
this._registerCoreTransitionHooks();
91+
92+
/** @type {ng.ExceptionHandlerService} */
93+
this._$exceptionHandler = $exceptionHandler.handler;
8694
globals.successfulTransitions.onEvict(treeChangesCleanup);
8795
}
8896

src/router/transition/transition.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ export class Transition {
4747
* @param {Array<import('../path/path-node.js').PathNode>} fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`
4848
* encapsulates the "from state".
4949
* @param {import('../state/target-state.js').TargetState} targetState The target state and parameters being transitioned to (also, the transition options)
50-
* @param {import('../transition/transition-service.js').TransitionProvider} transitionService The [[TransitionService]] instance
51-
* @param {import('../router.js').RouterProvider} globals
50+
* @param {ng.TransitionService} transitionService The [[TransitionService]] instance
51+
* @param {ng.RouterService} globals
5252
*/
5353
constructor(fromPath, targetState, transitionService, globals) {
5454
/**

0 commit comments

Comments
 (0)