Skip to content

Commit ad9ae81

Browse files
feat(Transition): Allow a plain object ResolvableLiteral in Transition.addResolvable
1 parent 111d259 commit ad9ae81

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/transition/transition.ts

+8-5
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
omit, toJson, arrayTuples, unnestR, identity, anyTrueR
1111
} from "../common/common";
1212
import { isObject, isArray } from "../common/predicates";
13-
import { prop, propEq, val, not } from "../common/hof";
13+
import { prop, propEq, val, not, is } from "../common/hof";
1414

1515
import {StateDeclaration, StateOrName} from "../state/interface";
1616
import {
@@ -36,6 +36,7 @@ import {UIRouter} from "../router";
3636
import {Globals} from "../globals";
3737
import {UIInjector} from "../interface";
3838
import {RawParams} from "../params/interface";
39+
import { ResolvableLiteral } from "../resolve/interface";
3940

4041
/** @hidden */
4142
const stateSelf: (_state: State) => StateDeclaration = prop("self");
@@ -323,17 +324,19 @@ export class Transition implements IHookRegistry {
323324
}
324325

325326
/**
326-
* Dynamically adds a new [[Resolvable]] (`resolve`) to this transition.
327+
* Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.
327328
*
328-
* @param resolvable an [[Resolvable]] object
329+
* @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])
329330
* @param state the state in the "to path" which should receive the new resolve (otherwise, the root state)
330331
*/
331-
addResolvable(resolvable: Resolvable, state: StateOrName = ""): void {
332+
addResolvable(resolvable: Resolvable|ResolvableLiteral, state: StateOrName = ""): void {
333+
resolvable = is(Resolvable)(resolvable) ? resolvable : new Resolvable(resolvable);
334+
332335
let stateName: string = (typeof state === "string") ? state : state.name;
333336
let topath = this._treeChanges.to;
334337
let targetNode = find(topath, node => node.state.name === stateName);
335338
let resolveContext: ResolveContext = new ResolveContext(topath);
336-
resolveContext.addResolvables([resolvable], targetNode.state);
339+
resolveContext.addResolvables([resolvable as Resolvable], targetNode.state);
337340
}
338341

339342
/**

0 commit comments

Comments
 (0)