Skip to content

Commit ce67a86

Browse files
committed
fix typechecking
1 parent 64b53c4 commit ce67a86

18 files changed

Lines changed: 249 additions & 275 deletions

packages/router_js/index.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,8 @@ export type { PublicTransition as Transition } from './lib/transition';
1212
export { default as TransitionState, TransitionError } from './lib/transition-state';
1313
export {
1414
default as InternalRouteInfo,
15+
type Route,
16+
type RouteInfo,
17+
type RouteInfoWithAttributes,
18+
type ModelFor
1519
} from './lib/route-info';
16-
17-
export type {
18-
Route,
19-
RouteInfo,
20-
RouteInfoWithAttributes,
21-
ModelFor
22-
} from './lib/router-info';

packages/router_js/jsconfig.json

Lines changed: 0 additions & 1 deletion
This file was deleted.

packages/router_js/lib/route-info.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ export function toReadOnlyRouteInfo<R extends Route>(
149149

150150
get localName() {
151151
let parts = this.name.split('.');
152-
return parts[parts.length - 1];
152+
return parts[parts.length - 1]!;
153153
},
154154

155155
get params() {
@@ -479,12 +479,12 @@ export class UnresolvedRouteInfoByParam<R extends Route> extends InternalRouteIn
479479
}
480480
}
481481

482-
getModel(transition: InternalTransition<R>): Promise<ModelFor<R> | undefined> {
482+
getModel(transition: InternalTransition<R>): Promise<ModelFor<R>> {
483483
let fullParams = this.params;
484484
if (transition && transition[QUERY_PARAMS_SYMBOL]) {
485485
fullParams = {};
486486
merge(fullParams, this.params);
487-
fullParams.queryParams = transition[QUERY_PARAMS_SYMBOL];
487+
fullParams['queryParams'] = transition[QUERY_PARAMS_SYMBOL];
488488
}
489489

490490
let route = this.route!;
@@ -552,7 +552,7 @@ export class UnresolvedRouteInfoByObject<R extends Route> extends InternalRouteI
552552

553553
let object: Dict<unknown> = {};
554554
if (isParam(model)) {
555-
object[paramNames[0]] = model;
555+
object[paramNames[0]!] = model;
556556
return object;
557557
}
558558

@@ -570,7 +570,7 @@ export class UnresolvedRouteInfoByObject<R extends Route> extends InternalRouteI
570570
return;
571571
}
572572

573-
let name = paramNames[0];
573+
let name = paramNames[0]!;
574574

575575
if (/_id$/.test(name)) {
576576
// SAFETY: Model is supposed to extend IModel already

packages/router_js/lib/router.ts

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export default abstract class Router<R extends Route> {
9090
map(callback: MatchCallback) {
9191
this.recognizer.map(callback, function (recognizer, routes) {
9292
for (let i = routes.length - 1, proceed = true; i >= 0 && proceed; --i) {
93-
let route = routes[i];
93+
let route = routes[i]!;
9494
let handler = route.handler as string;
9595
recognizer.add(routes, { as: handler });
9696
proceed = route.path === '/' || route.path === '' || handler.slice(-6) === '.index';
@@ -196,7 +196,7 @@ export default abstract class Router<R extends Route> {
196196
localizeMapUpdates: false,
197197
}
198198
) as RouteInfoWithAttributes[];
199-
return routeInfosWithAttributes[routeInfosWithAttributes.length - 1];
199+
return routeInfosWithAttributes[routeInfosWithAttributes.length - 1]!;
200200
});
201201
}
202202

@@ -325,7 +325,7 @@ export default abstract class Router<R extends Route> {
325325
let { routeInfos } = this.state!;
326326
intent = new NamedTransitionIntent<R>(
327327
this,
328-
routeInfos[routeInfos.length - 1].name,
328+
routeInfos[routeInfos.length - 1]!.name,
329329
undefined,
330330
[],
331331
queryParams
@@ -390,11 +390,11 @@ export default abstract class Router<R extends Route> {
390390
log(this, transition.sequence, 'TRANSITION COMPLETE.');
391391

392392
// Resolve with the final route.
393-
return routeInfos[routeInfos.length - 1].route!;
393+
return routeInfos[routeInfos.length - 1]!.route!;
394394
} catch (e) {
395395
if (!isTransitionAborted(e)) {
396396
let infos = transition[STATE_SYMBOL]!.routeInfos;
397-
transition.trigger(true, 'error', e, transition, infos[infos.length - 1].route);
397+
transition.trigger(true, 'error', e, transition, infos[infos.length - 1]!.route);
398398
transition.abort();
399399
}
400400

@@ -448,7 +448,7 @@ export default abstract class Router<R extends Route> {
448448
let i, l, route;
449449

450450
for (i = 0, l = partition.exited.length; i < l; i++) {
451-
route = partition.exited[i].route;
451+
route = partition.exited[i]!.route;
452452
delete route!.context;
453453

454454
if (route !== undefined) {
@@ -468,7 +468,7 @@ export default abstract class Router<R extends Route> {
468468

469469
try {
470470
for (i = 0, l = partition.reset.length; i < l; i++) {
471-
route = partition.reset[i].route;
471+
route = partition.reset[i]!.route;
472472
if (route !== undefined) {
473473
if (route._internalReset !== undefined) {
474474
route._internalReset(false, transition);
@@ -479,14 +479,14 @@ export default abstract class Router<R extends Route> {
479479
for (i = 0, l = partition.updatedContext.length; i < l; i++) {
480480
this.routeEnteredOrUpdated(
481481
currentRouteInfos,
482-
partition.updatedContext[i],
482+
partition.updatedContext[i]!,
483483
false,
484484
transition!
485485
);
486486
}
487487

488488
for (i = 0, l = partition.entered.length; i < l; i++) {
489-
this.routeEnteredOrUpdated(currentRouteInfos, partition.entered[i], true, transition!);
489+
this.routeEnteredOrUpdated(currentRouteInfos, partition.entered[i]!, true, transition!);
490490
}
491491
} catch (e) {
492492
this.state = oldState;
@@ -631,8 +631,8 @@ export default abstract class Router<R extends Route> {
631631
l;
632632

633633
for (i = 0, l = newRouteInfos.length; i < l; i++) {
634-
let oldRouteInfo = oldRouteInfos[i],
635-
newRouteInfo = newRouteInfos[i];
634+
let oldRouteInfo = oldRouteInfos[i]!,
635+
newRouteInfo = newRouteInfos[i]!;
636636

637637
if (!oldRouteInfo || oldRouteInfo.route !== newRouteInfo.route) {
638638
routeChanged = true;
@@ -652,7 +652,7 @@ export default abstract class Router<R extends Route> {
652652
}
653653

654654
for (i = newRouteInfos.length, l = oldRouteInfos.length; i < l; i++) {
655-
routes.exited.unshift(oldRouteInfos[i]);
655+
routes.exited.unshift(oldRouteInfos[i]!);
656656
}
657657

658658
routes.reset = routes.updatedContext.slice();
@@ -669,19 +669,19 @@ export default abstract class Router<R extends Route> {
669669
}
670670

671671
let { routeInfos } = state;
672-
let { name: routeName } = routeInfos[routeInfos.length - 1];
672+
let { name: routeName } = routeInfos[routeInfos.length - 1]!;
673673
let params: Dict<unknown> = {};
674674

675675
for (let i = routeInfos.length - 1; i >= 0; --i) {
676-
let routeInfo = routeInfos[i];
676+
let routeInfo = routeInfos[i]!;
677677
merge(params, routeInfo.params);
678678
if (routeInfo.route!.inaccessibleByURL) {
679679
urlMethod = null;
680680
}
681681
}
682682

683683
if (urlMethod) {
684-
params.queryParams = transition._visibleQueryParams || state.queryParams;
684+
params['queryParams'] = transition._visibleQueryParams || state.queryParams;
685685
let url = this.recognizer.generate(routeName, params as Params);
686686

687687
// transitions during the initial transition must always use replaceURL.
@@ -761,7 +761,7 @@ export default abstract class Router<R extends Route> {
761761

762762
let finalQueryParams: Dict<unknown> = {};
763763
for (let i = 0, len = finalQueryParamsArray.length; i < len; ++i) {
764-
let qp = finalQueryParamsArray[i];
764+
let qp = finalQueryParamsArray[i]!;
765765
finalQueryParams[qp.key] = qp.value;
766766
if (transition && qp.visible !== false) {
767767
transition._visibleQueryParams[qp.key] = qp.value;
@@ -798,7 +798,7 @@ export default abstract class Router<R extends Route> {
798798
Object.assign({}, newTransition[QUERY_PARAMS_SYMBOL]),
799799
{ includeAttributes, localizeMapUpdates: false }
800800
);
801-
newTransition!.to = toInfos[toInfos.length - 1] || null;
801+
newTransition!.to = toInfos[toInfos.length - 1]! || null;
802802
}
803803
}
804804

@@ -815,7 +815,7 @@ export default abstract class Router<R extends Route> {
815815

816816
oldRouteInfoLen = oldRouteInfos.length;
817817
for (i = 0; i < oldRouteInfoLen; i++) {
818-
oldHandler = oldRouteInfos[i];
818+
oldHandler = oldRouteInfos[i]!;
819819
newRouteInfo = newState.routeInfos[i];
820820

821821
if (!newRouteInfo || oldHandler.name !== newRouteInfo.name) {
@@ -904,11 +904,11 @@ export default abstract class Router<R extends Route> {
904904
let routeInfos = state!.routeInfos;
905905

906906
if (pivotRoute === undefined) {
907-
pivotRoute = routeInfos[0].route;
907+
pivotRoute = routeInfos[0]!.route;
908908
}
909909

910910
log(this, 'Starting a refresh transition');
911-
let name = routeInfos[routeInfos.length - 1].name;
911+
let name = routeInfos[routeInfos.length - 1]!.name;
912912
let intent = new NamedTransitionIntent(
913913
this,
914914
name,
@@ -961,7 +961,7 @@ export default abstract class Router<R extends Route> {
961961

962962
let params: Params = {};
963963
for (let i = 0, len = state.routeInfos.length; i < len; ++i) {
964-
let routeInfo = state.routeInfos[i];
964+
let routeInfo = state.routeInfos[i]!;
965965
let routeParams = routeInfo.serialize();
966966
merge(params, routeParams);
967967
}
@@ -993,12 +993,12 @@ export default abstract class Router<R extends Route> {
993993
return false;
994994
}
995995

996-
let targetHandler = targetRouteInfos[targetRouteInfos.length - 1].name;
996+
let targetHandler = targetRouteInfos[targetRouteInfos.length - 1]!.name;
997997
let recognizerHandlers: ParsedHandler[] = this.recognizer.handlersFor(targetHandler);
998998

999999
let index = 0;
10001000
for (len = recognizerHandlers.length; index < len; ++index) {
1001-
routeInfo = targetRouteInfos[index];
1001+
routeInfo = targetRouteInfos[index]!;
10021002
if (routeInfo.name === routeName) {
10031003
break;
10041004
}
@@ -1072,11 +1072,11 @@ function routeInfosSameExceptQueryParams<R1 extends Route, R2 extends Route>(
10721072
}
10731073

10741074
for (let i = 0, len = routeInfos.length; i < len; ++i) {
1075-
if (routeInfos[i].name !== otherRouteInfos[i].name) {
1075+
if (routeInfos[i]!.name !== otherRouteInfos[i]!.name) {
10761076
return false;
10771077
}
10781078

1079-
if (!paramsEqual(routeInfos[i].params, otherRouteInfos[i].params)) {
1079+
if (!paramsEqual(routeInfos[i]!.params, otherRouteInfos[i]!.params)) {
10801080
return false;
10811081
}
10821082
}
@@ -1102,7 +1102,7 @@ function paramsEqual(params: Dict<unknown> | undefined, otherParams: Dict<unknow
11021102
}
11031103

11041104
for (let i = 0, len = keys.length; i < len; ++i) {
1105-
let key = keys[i];
1105+
let key = keys[i]!;
11061106

11071107
if (params[key] !== otherParams[key]) {
11081108
return false;

packages/router_js/lib/transition-intent/named-transition-intent.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default class NamedTransitionIntent<R extends Route> extends TransitionIn
3636
applyToState(oldState: TransitionState<R>, isIntermediate: boolean): TransitionState<R> {
3737
let handlers: ParsedHandler[] = this.router.recognizer.handlersFor(this.name);
3838

39-
let targetRouteName = handlers[handlers.length - 1].handler;
39+
let targetRouteName = handlers[handlers.length - 1]!.handler;
4040

4141
return this.applyToHandlers(oldState, handlers, targetRouteName, isIntermediate, false);
4242
}
@@ -57,18 +57,18 @@ export default class NamedTransitionIntent<R extends Route> extends TransitionIn
5757
// Pivot handlers are provided for refresh transitions
5858
if (this.pivotHandler) {
5959
for (i = 0, len = parsedHandlers.length; i < len; ++i) {
60-
if (parsedHandlers[i].handler === this.pivotHandler._internalName) {
60+
if (parsedHandlers[i]!.handler === this.pivotHandler._internalName) {
6161
invalidateIndex = i;
6262
break;
6363
}
6464
}
6565
}
6666

6767
for (i = parsedHandlers.length - 1; i >= 0; --i) {
68-
let result = parsedHandlers[i];
68+
let result = parsedHandlers[i]!;
6969
let name = result.handler;
7070

71-
let oldHandlerInfo = oldState.routeInfos[i];
71+
let oldHandlerInfo = oldState.routeInfos[i]!;
7272
let newHandlerInfo:
7373
| InternalRouteInfo<R>
7474
| UnresolvedRouteInfoByObject<R>
@@ -161,9 +161,9 @@ export default class NamedTransitionIntent<R extends Route> extends TransitionIn
161161

162162
invalidateChildren(handlerInfos: InternalRouteInfo<R>[], invalidateIndex: number) {
163163
for (let i = invalidateIndex, l = handlerInfos.length; i < l; ++i) {
164-
let handlerInfo = handlerInfos[i];
164+
let handlerInfo = handlerInfos[i]!;
165165
if (handlerInfo.isResolved) {
166-
let { name, params, route, paramNames } = handlerInfos[i];
166+
let { name, params, route, paramNames } = handlerInfos[i]!;
167167
handlerInfos[i] = new UnresolvedRouteInfoByParam(
168168
this.router,
169169
name,
@@ -233,7 +233,7 @@ export default class NamedTransitionIntent<R extends Route> extends TransitionIn
233233
(oldHandlerInfo && name === oldHandlerInfo.name && oldHandlerInfo.params) || {};
234234

235235
let peek = objects[objects.length - 1];
236-
let paramName = names[numNames];
236+
let paramName = names[numNames]!;
237237
if (isParam(peek)) {
238238
params[paramName] = '' + objects.pop();
239239
} else {

packages/router_js/lib/transition-intent/url-transition-intent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export default class URLTransitionIntent<R extends Route> extends TransitionInte
6464
newRouteInfo.routePromise = newRouteInfo.routePromise.then(checkHandlerAccessibility);
6565
}
6666

67-
let oldRouteInfo = oldState.routeInfos[i];
67+
let oldRouteInfo = oldState.routeInfos[i]!;
6868
if (statesDiffer || newRouteInfo.shouldSupersede(oldRouteInfo)) {
6969
statesDiffer = true;
7070
newState.routeInfos[i] = newRouteInfo;

packages/router_js/lib/transition-state.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function handleError<R extends Route>(
2424

2525
throw new TransitionError(
2626
error,
27-
currentState.routeInfos[errorHandlerIndex].route!,
27+
currentState.routeInfos[errorHandlerIndex]!.route!,
2828
wasAborted,
2929
currentState
3030
);
@@ -40,7 +40,7 @@ function resolveOneRouteInfo<R extends Route>(
4040
return;
4141
}
4242

43-
let routeInfo = currentState.routeInfos[transition.resolveIndex];
43+
let routeInfo = currentState.routeInfos[transition.resolveIndex]!;
4444

4545
let callback = proceed.bind(null, currentState, transition) as (
4646
resolvedRouteInfo: ResolvedRouteInfo<R>
@@ -54,7 +54,7 @@ function proceed<R extends Route>(
5454
transition: Transition<R>,
5555
resolvedRouteInfo: ResolvedRouteInfo<R>
5656
): void | Promise<void> {
57-
let wasAlreadyResolved = currentState.routeInfos[transition.resolveIndex].isResolved;
57+
let wasAlreadyResolved = currentState.routeInfos[transition.resolveIndex]!.isResolved;
5858

5959
// Swap the previously unresolved routeInfo with
6060
// the resolved routeInfo

packages/router_js/lib/transition.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,11 @@ export default class Transition<R extends Route> implements Partial<Promise<R>>
163163

164164
let len = state.routeInfos.length;
165165
if (len) {
166-
this.targetName = state.routeInfos[len - 1].name;
166+
this.targetName = state.routeInfos[len - 1]!.name;
167167
}
168168

169169
for (let i = 0; i < len; ++i) {
170-
let handlerInfo = state.routeInfos[i];
170+
let handlerInfo = state.routeInfos[i]!;
171171

172172
// TODO: this all seems hacky
173173
if (!handlerInfo.isResolved) {
@@ -268,6 +268,7 @@ export default class Transition<R extends Route> implements Partial<Promise<R>>
268268
@public
269269
*/
270270
finally<T>(callback?: T | undefined, label?: string) {
271+
// @ts-expect-error @types/rsvp doesn't have the correct signiture for RSVP.Promise.finally
271272
return this.promise!.finally(callback, label);
272273
}
273274

packages/router_js/lib/unrecognized-url-error.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ const UnrecognizedURLError: UnrecognizedURLConstructor = (function () {
1616
this.name = 'UnrecognizedURLError';
1717
this.message = message || 'UnrecognizedURL';
1818

19+
// @ts-expect-error I don't know why this is failing
1920
if (Error.captureStackTrace) {
21+
// @ts-expect-error I don't know why this is failing
2022
Error.captureStackTrace(this, UnrecognizedURLError);
2123
} else {
2224
this.stack = error.stack;

packages/router_js/lib/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export function isParam(object: any): object is string | number {
103103
}
104104

105105
export function forEach<T>(array: T[], callback: (item: T) => boolean) {
106-
for (let i = 0, l = array.length; i < l && callback(array[i]) !== false; i++) {
106+
for (let i = 0, l = array.length; i < l && callback(array[i]!) !== false; i++) {
107107
// empty intentionally
108108
}
109109
}

0 commit comments

Comments
 (0)