UNPKG

25.7 kBSource Map (JSON)View Raw
1{
2 "version": 3,
3 "file": "stateBuilder.js",
4 "sourceRoot": "",
5 "sources": [
6 "@uirouter/core/state/stateBuilder.ts"
7 ],
8 "names": [],
9 "mappings": "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",
10 "sourcesContent": [
11 "import { applyPairs, extend, identity, inherit, mapObj, noop, Obj, omit, tail, values, copy } from '../common/common';\nimport { isArray, isDefined, isFunction, isString } from '../common/predicates';\nimport { stringify } from '../common/strings';\nimport { is, pattern, pipe, prop, val } from '../common/hof';\nimport { StateDeclaration } from './interface';\n\nimport { StateObject } from './stateObject';\nimport { StateMatcher } from './stateMatcher';\nimport { Param } from '../params/param';\nimport { UrlMatcherFactory } from '../url/urlMatcherFactory';\nimport { UrlMatcher } from '../url/urlMatcher';\nimport { Resolvable } from '../resolve/resolvable';\nimport { services } from '../common/coreservices';\nimport { ResolvePolicy } from '../resolve/interface';\nimport { ParamDeclaration } from '../params';\nimport { ParamFactory } from '../url';\n\nconst parseUrl = (url: string): any => {\n if (!isString(url)) return false;\n const root = url.charAt(0) === '^';\n return { val: root ? url.substring(1) : url, root };\n};\n\n/**\n * A function that builds the final value for a specific field on a [[StateObject]].\n *\n * A series of builder functions for a given field are chained together.\n * The final value returned from the chain of builders is applied to the built [[StateObject]].\n * Builder functions should call the [[parent]] function either first or last depending on the desired composition behavior.\n *\n * @param state the _partially built_ [[StateObject]]. The [[StateDeclaration]] can be inspected via [[StateObject.self]]\n * @param parent the previous builder function in the series.\n */\nexport type BuilderFunction = (state: StateObject, parent?: BuilderFunction) => any;\n\ninterface Builders {\n [key: string]: BuilderFunction[];\n\n name: BuilderFunction[];\n parent: BuilderFunction[];\n data: BuilderFunction[];\n url: BuilderFunction[];\n navigable: BuilderFunction[];\n params: BuilderFunction[];\n views: BuilderFunction[];\n path: BuilderFunction[];\n includes: BuilderFunction[];\n resolvables: BuilderFunction[];\n}\n\nfunction nameBuilder(state: StateObject) {\n return state.name;\n}\n\nfunction selfBuilder(state: StateObject) {\n state.self.$$state = () => state;\n return state.self;\n}\n\nfunction dataBuilder(state: StateObject) {\n if (state.parent && state.parent.data) {\n state.data = state.self.data = inherit(state.parent.data, state.data);\n }\n return state.data;\n}\n\nconst getUrlBuilder = ($urlMatcherFactoryProvider: UrlMatcherFactory, root: () => StateObject) =>\n function urlBuilder(stateObject: StateObject) {\n let stateDec: StateDeclaration = stateObject.self;\n\n // For future states, i.e., states whose name ends with `.**`,\n // match anything that starts with the url prefix\n if (stateDec && stateDec.url && stateDec.name && stateDec.name.match(/\\.\\*\\*$/)) {\n const newStateDec: StateDeclaration = {};\n copy(stateDec, newStateDec);\n newStateDec.url += '{remainder:any}'; // match any path (.*)\n stateDec = newStateDec;\n }\n\n const parent = stateObject.parent;\n const parsed = parseUrl(stateDec.url);\n const url = !parsed ? stateDec.url : $urlMatcherFactoryProvider.compile(parsed.val, { state: stateDec });\n\n if (!url) return null;\n if (!$urlMatcherFactoryProvider.isMatcher(url)) throw new Error(`Invalid url '${url}' in state '${stateObject}'`);\n return parsed && parsed.root ? url : ((parent && parent.navigable) || root()).url.append(<UrlMatcher>url);\n };\n\nconst getNavigableBuilder = (isRoot: (state: StateObject) => boolean) =>\n function navigableBuilder(state: StateObject) {\n return !isRoot(state) && state.url ? state : state.parent ? state.parent.navigable : null;\n };\n\nconst getParamsBuilder = (paramFactory: ParamFactory) =>\n function paramsBuilder(state: StateObject): { [key: string]: Param } {\n const makeConfigParam = (config: ParamDeclaration, id: string) => paramFactory.fromConfig(id, null, state.self);\n const urlParams: Param[] = (state.url && state.url.parameters({ inherit: false })) || [];\n const nonUrlParams: Param[] = values(mapObj(omit(state.params || {}, urlParams.map(prop('id'))), makeConfigParam));\n return urlParams\n .concat(nonUrlParams)\n .map((p) => [p.id, p])\n .reduce(applyPairs, {});\n };\n\nfunction pathBuilder(state: StateObject) {\n return state.parent ? state.parent.path.concat(state) : /*root*/ [state];\n}\n\nfunction includesBuilder(state: StateObject) {\n const includes = state.parent ? extend({}, state.parent.includes) : {};\n includes[state.name] = true;\n return includes;\n}\n\n/**\n * This is a [[StateBuilder.builder]] function for the `resolve:` block on a [[StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * validates the `resolve` property and converts it to a [[Resolvable]] array.\n *\n * resolve: input value can be:\n *\n * {\n * // analyzed but not injected\n * myFooResolve: function() { return \"myFooData\"; },\n *\n * // function.toString() parsed, \"DependencyName\" dep as string (not min-safe)\n * myBarResolve: function(DependencyName) { return DependencyName.fetchSomethingAsPromise() },\n *\n * // Array split; \"DependencyName\" dep as string\n * myBazResolve: [ \"DependencyName\", function(dep) { return dep.fetchSomethingAsPromise() },\n *\n * // Array split; DependencyType dep as token (compared using ===)\n * myQuxResolve: [ DependencyType, function(dep) { return dep.fetchSometingAsPromise() },\n *\n * // val.$inject used as deps\n * // where:\n * // corgeResolve.$inject = [\"DependencyName\"];\n * // function corgeResolve(dep) { dep.fetchSometingAsPromise() }\n * // then \"DependencyName\" dep as string\n * myCorgeResolve: corgeResolve,\n *\n * // inject service by name\n * // When a string is found, desugar creating a resolve that injects the named service\n * myGraultResolve: \"SomeService\"\n * }\n *\n * or:\n *\n * [\n * new Resolvable(\"myFooResolve\", function() { return \"myFooData\" }),\n * new Resolvable(\"myBarResolve\", function(dep) { return dep.fetchSomethingAsPromise() }, [ \"DependencyName\" ]),\n * { provide: \"myBazResolve\", useFactory: function(dep) { dep.fetchSomethingAsPromise() }, deps: [ \"DependencyName\" ] }\n * ]\n */\nexport function resolvablesBuilder(state: StateObject): Resolvable[] {\n interface Tuple {\n token: any;\n val: any;\n deps: any[];\n policy: ResolvePolicy;\n }\n\n /** convert resolve: {} and resolvePolicy: {} objects to an array of tuples */\n const objects2Tuples = (resolveObj: Obj, resolvePolicies: { [key: string]: ResolvePolicy }) =>\n Object.keys(resolveObj || {}).map((token) => ({\n token,\n val: resolveObj[token],\n deps: undefined,\n policy: resolvePolicies[token],\n }));\n\n /** fetch DI annotations from a function or ng1-style array */\n const annotate = (fn: Function) => {\n const $injector = services.$injector;\n // ng1 doesn't have an $injector until runtime.\n // If the $injector doesn't exist, use \"deferred\" literal as a\n // marker indicating they should be annotated when runtime starts\n return fn['$inject'] || ($injector && $injector.annotate(fn, $injector.strictDi)) || <any>'deferred';\n };\n\n /** true if the object has both `token` and `resolveFn`, and is probably a [[ResolveLiteral]] */\n const isResolveLiteral = (obj: any) => !!(obj.token && obj.resolveFn);\n\n /** true if the object looks like a provide literal, or a ng2 Provider */\n const isLikeNg2Provider = (obj: any) =>\n !!((obj.provide || obj.token) && (obj.useValue || obj.useFactory || obj.useExisting || obj.useClass));\n\n /** true if the object looks like a tuple from obj2Tuples */\n const isTupleFromObj = (obj: any) =>\n !!(obj && obj.val && (isString(obj.val) || isArray(obj.val) || isFunction(obj.val)));\n\n /** extracts the token from a Provider or provide literal */\n const getToken = (p: any) => p.provide || p.token;\n\n // prettier-ignore: Given a literal resolve or provider object, returns a Resolvable\n const literal2Resolvable = pattern([\n [prop('resolveFn'), (p) => new Resolvable(getToken(p), p.resolveFn, p.deps, p.policy)],\n [prop('useFactory'), (p) => new Resolvable(getToken(p), p.useFactory, p.deps || p.dependencies, p.policy)],\n [prop('useClass'), (p) => new Resolvable(getToken(p), () => new (<any>p.useClass)(), [], p.policy)],\n [prop('useValue'), (p) => new Resolvable(getToken(p), () => p.useValue, [], p.policy, p.useValue)],\n [prop('useExisting'), (p) => new Resolvable(getToken(p), identity, [p.useExisting], p.policy)],\n ]);\n\n // prettier-ignore\n const tuple2Resolvable = pattern([\n [pipe(prop('val'), isString), (tuple: Tuple) => new Resolvable(tuple.token, identity, [tuple.val], tuple.policy)],\n [pipe(prop('val'), isArray), (tuple: Tuple) => new Resolvable(tuple.token, tail(<any[]>tuple.val), tuple.val.slice(0, -1), tuple.policy)],\n [pipe(prop('val'), isFunction), (tuple: Tuple) => new Resolvable(tuple.token, tuple.val, annotate(tuple.val), tuple.policy)],\n ]);\n\n // prettier-ignore\n const item2Resolvable = <(obj: any) => Resolvable>pattern([\n [is(Resolvable), (r: Resolvable) => r],\n [isResolveLiteral, literal2Resolvable],\n [isLikeNg2Provider, literal2Resolvable],\n [isTupleFromObj, tuple2Resolvable],\n [val(true), (obj: any) => { throw new Error('Invalid resolve value: ' + stringify(obj)); }, ],\n ]);\n\n // If resolveBlock is already an array, use it as-is.\n // Otherwise, assume it's an object and convert to an Array of tuples\n const decl = state.resolve;\n const items: any[] = isArray(decl) ? decl : objects2Tuples(decl, state.resolvePolicy || {});\n return items.map(item2Resolvable);\n}\n\n/**\n * A internal global service\n *\n * StateBuilder is a factory for the internal [[StateObject]] objects.\n *\n * When you register a state with the [[StateRegistry]], you register a plain old javascript object which\n * conforms to the [[StateDeclaration]] interface. This factory takes that object and builds the corresponding\n * [[StateObject]] object, which has an API and is used internally.\n *\n * Custom properties or API may be added to the internal [[StateObject]] object by registering a decorator function\n * using the [[builder]] method.\n */\nexport class StateBuilder {\n /** An object that contains all the BuilderFunctions registered, key'd by the name of the State property they build */\n private builders: Builders;\n\n constructor(private matcher: StateMatcher, urlMatcherFactory: UrlMatcherFactory) {\n const self = this;\n\n const root = () => matcher.find('');\n const isRoot = (state: StateObject) => state.name === '';\n\n function parentBuilder(state: StateObject) {\n if (isRoot(state)) return null;\n return matcher.find(self.parentName(state)) || root();\n }\n\n this.builders = {\n name: [nameBuilder],\n self: [selfBuilder],\n parent: [parentBuilder],\n data: [dataBuilder],\n // Build a URLMatcher if necessary, either via a relative or absolute URL\n url: [getUrlBuilder(urlMatcherFactory, root)],\n // Keep track of the closest ancestor state that has a URL (i.e. is navigable)\n navigable: [getNavigableBuilder(isRoot)],\n params: [getParamsBuilder(urlMatcherFactory.paramFactory)],\n // Each framework-specific ui-router implementation should define its own `views` builder\n // e.g., src/ng1/statebuilders/views.ts\n views: [],\n // Keep a full path from the root down to this state as this is needed for state activation.\n path: [pathBuilder],\n // Speed up $state.includes() as it's used a lot\n includes: [includesBuilder],\n resolvables: [resolvablesBuilder],\n };\n }\n\n /**\n * Registers a [[BuilderFunction]] for a specific [[StateObject]] property (e.g., `parent`, `url`, or `path`).\n * More than one BuilderFunction can be registered for a given property.\n *\n * The BuilderFunction(s) will be used to define the property on any subsequently built [[StateObject]] objects.\n *\n * @param property The name of the State property being registered for.\n * @param fn The BuilderFunction which will be used to build the State property\n * @returns a function which deregisters the BuilderFunction\n */\n builder(property: string, fn: BuilderFunction): Function;\n /**\n * Gets the registered builder functions for a given property of [[StateObject]].\n *\n * @param property The name of the State property being registered for.\n * @returns the registered builder(s).\n * note: for backwards compatibility, this may be a single builder or an array of builders\n */\n builder(property: string): BuilderFunction | BuilderFunction[];\n builder(name: string, fn?: BuilderFunction): any {\n const builders = this.builders;\n const array = builders[name] || [];\n // Backwards compat: if only one builder exists, return it, else return whole arary.\n if (isString(name) && !isDefined(fn)) return array.length > 1 ? array : array[0];\n if (!isString(name) || !isFunction(fn)) return;\n\n builders[name] = array;\n builders[name].push(fn);\n return () => builders[name].splice(builders[name].indexOf(fn, 1)) && null;\n }\n\n /**\n * Builds all of the properties on an essentially blank State object, returning a State object which has all its\n * properties and API built.\n *\n * @param state an uninitialized State object\n * @returns the built State object\n */\n build(state: StateObject): StateObject {\n const { matcher, builders } = this;\n const parent = this.parentName(state);\n\n if (parent && !matcher.find(parent, undefined, false)) {\n return null;\n }\n\n for (const key in builders) {\n if (!builders.hasOwnProperty(key)) continue;\n const chain = builders[key].reduce(\n (parentFn: BuilderFunction, step: BuilderFunction) => (_state) => step(_state, parentFn),\n noop\n );\n state[key] = chain(state);\n }\n return state;\n }\n\n parentName(state: StateObject) {\n // name = 'foo.bar.baz.**'\n const name = state.name || '';\n // segments = ['foo', 'bar', 'baz', '.**']\n const segments = name.split('.');\n // segments = ['foo', 'bar', 'baz']\n const lastSegment = segments.pop();\n // segments = ['foo', 'bar'] (ignore .** segment for future states)\n if (lastSegment === '**') segments.pop();\n\n if (segments.length) {\n if (state.parent) {\n throw new Error(`States that specify the 'parent:' property should not have a '.' in their name (${name})`);\n }\n\n // 'foo.bar'\n return segments.join('.');\n }\n\n if (!state.parent) return '';\n return isString(state.parent) ? state.parent : state.parent.name;\n }\n\n name(state: StateObject) {\n const name = state.name;\n if (name.indexOf('.') !== -1 || !state.parent) return name;\n\n const parentName = isString(state.parent) ? state.parent : state.parent.name;\n return parentName ? parentName + '.' + name : name;\n }\n}\n"
12 ]
13}
\No newline at end of file