UNPKG

3.53 kBSource Map (JSON)View Raw
1{
2 "version": 3,
3 "file": "q.js",
4 "sourceRoot": "",
5 "sources": [
6 "@uirouter/core/vanilla/q.ts"
7 ],
8 "names": [],
9 "mappings": ";;;AAAA,yCAA4D;AAE5D;;;;;;;;;;;;;;GAcG;AACU,QAAA,EAAE,GAAG;IAChB,sCAAsC;IACtC,IAAI,EAAE,UAAC,GAAG,IAAK,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM,IAAK,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,CAAC,EAA9C,CAA8C;IAE7D,gDAAgD;IAChD,MAAM,EAAE,UAAC,GAAG;QACV,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC1B,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC;IAFF,CAEE;IAEJ,6EAA6E;IAC7E,KAAK,EAAE;QACL,IAAM,QAAQ,GAAQ,EAAE,CAAC;QACzB,QAAQ,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC7C,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gFAAgF;IAChF,GAAG,EAAE,UAAC,QAA0D;QAC9D,IAAI,eAAO,CAAC,QAAQ,CAAC,EAAE;YACrB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC9B;QAED,IAAI,gBAAQ,CAAC,QAAQ,CAAC,EAAE;YACtB,0CAA0C;YAC1C,uEAAuE;YACvE,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,CAAC,EAAd,CAAc,CAAC,EAA3C,CAA2C,CAAC,CAAC;YAE9F,4EAA4E;YAC5E,OAAO,UAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;gBAC/B,OAAA,MAAM,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,KAAK;oBACvB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;oBAC3B,OAAO,GAAG,CAAC;gBACb,CAAC,EAAE,EAAE,CAAC;YAHN,CAGM,CACP,CAAC;SACH;IACH,CAAC;CACQ,CAAC",
10 "sourcesContent": [
11 "import { isArray, isObject, $QLike } from '../common/index';\n\n/**\n * An angular1-like promise api\n *\n * This object implements four methods similar to the\n * [angular 1 promise api](https://docs.angularjs.org/api/ng/service/$q)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This API provides native ES6 promise support wrapped as a $q-like API.\n * Internally, UI-Router uses this $q object to perform promise operations.\n * The `angular-ui-router` (ui-router for angular 1) uses the $q API provided by angular.\n *\n * $q-like promise api\n */\nexport const $q = {\n /** Normalizes a value as a promise */\n when: (val) => new Promise((resolve, reject) => resolve(val)),\n\n /** Normalizes a value as a promise rejection */\n reject: (val) =>\n new Promise((resolve, reject) => {\n reject(val);\n }),\n\n /** @returns a deferred object, which has `resolve` and `reject` functions */\n defer: () => {\n const deferred: any = {};\n deferred.promise = new Promise((resolve, reject) => {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n },\n\n /** Like Promise.all(), but also supports object key/promise notation like $q */\n all: (promises: { [key: string]: Promise<any> } | Promise<any>[]) => {\n if (isArray(promises)) {\n return Promise.all(promises);\n }\n\n if (isObject(promises)) {\n // Convert promises map to promises array.\n // When each promise resolves, map it to a tuple { key: key, val: val }\n const chain = Object.keys(promises).map((key) => promises[key].then((val) => ({ key, val })));\n\n // Then wait for all promises to resolve, and convert them back to an object\n return $q.all(chain).then((values) =>\n values.reduce((acc, tuple) => {\n acc[tuple.key] = tuple.val;\n return acc;\n }, {})\n );\n }\n },\n} as $QLike;\n"
12 ]
13}
\No newline at end of file