UNPKG

3.81 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/util/PromiseUtils.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH;IAAA;IA2DA,CAAC;IAzDG;;OAEG;IACI,mBAAM,GAAb,UAAc,KAAU;QACpB,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,OAAe,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QACtC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,yBAAY,GAAnB,UAAoB,MAAW;QAC3B,IAAI,MAAM,YAAY,OAAO,IAAK,MAAc,CAAC,WAAW,CAAC;YACzD,OAAQ,MAAc,CAAC,WAAW,CAAC,CAAC;QAExC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;OAGG;IACI,0BAAa,GAApB,UAA2B,UAAe,EAAE,QAAiC;QACzE,IAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,MAAM,CAAC,UAAC,OAAO,EAAE,IAAI;YACnC,OAAO,OAAO,CAAC,IAAI,CAAC;gBAChB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,MAAM;gBACV,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC;YACvB,OAAO,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,mBAAM,GAAb,UAAc,QAAwB;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;YAC/D,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,CAAC;SACX,CAAC,EAHgE,CAGhE,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC;YACN,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,CAAC;SACZ,CAAC,EAHO,CAGP,CAAC,EANkC,CAMlC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,OAAc;YACtB,IAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,KAAK,KAAK,UAAU,EAA3B,CAA2B,CAAC,CAAC;YACrE,IAAI,QAAQ;gBACR,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE3C,OAAO,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,KAAK,EAAZ,CAAY,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;IAEL,mBAAC;AAAD,CA3DA,AA2DC,IAAA;AA3DY,oCAAY","file":"PromiseUtils.js","sourcesContent":["/**\n * Utils to help to work with Promise objects.\n */\nexport class PromiseUtils {\n\n /**\n * Creates a new promise with resolved value used for lazy relations.\n */\n static create(value: any) {\n const promise = Promise.resolve(value);\n (promise as any)[\"__value__\"] = value;\n return promise;\n }\n\n /**\n * If given value is a promise created by \"create\" method this method gets its value.\n * If given value is not a promise then given value is returned back.\n */\n static extractValue(object: any) {\n if (object instanceof Promise && (object as any)[\"__value__\"])\n return (object as any)[\"__value__\"];\n\n return object;\n }\n\n /**\n * Runs given callback that returns promise for each item in the given collection in order.\n * Operations executed after each other, right after previous promise being resolved.\n */\n static runInSequence<T, U>(collection: T[], callback: (item: T) => Promise<U>): Promise<U[]> {\n const results: U[] = [];\n return collection.reduce((promise, item) => {\n return promise.then(() => {\n return callback(item);\n }).then(result => {\n results.push(result);\n });\n }, Promise.resolve()).then(() => {\n return results;\n });\n }\n\n /**\n * Returns a promise that is fulfilled with an array of promise state snapshots,\n * but only after all the original promises have settled, i.e. become either fulfilled or rejected.\n */\n static settle(promises: Promise<any>[]) {\n return Promise.all(promises.map(p => Promise.resolve(p).then(v => ({\n state: \"fulfilled\",\n value: v,\n }), r => ({\n state: \"rejected\",\n reason: r,\n })))).then((results: any[]): any => {\n const rejected = results.find(result => result.state === \"rejected\");\n if (rejected)\n return Promise.reject(rejected.reason);\n\n return results.map(result => result.value);\n });\n }\n\n}"],"sourceRoot":".."}
\No newline at end of file