{"version":3,"sources":["Honeywell.ClientModel.Promise.ts"],"names":["exports","waitForAll2","promise1","promise2","promise","Q","all","spread","onFulfill","waitForAll3","promise3","waitForAll4","promise4"],"mappings":"+GAYaA,EAAAC,YAAc,SAASC,EAA0BC,GAC1D,GAAMC,GAAUC,EAAEC,KAAUJ,EAAUC,GACtC,QACII,OAAQ,SAAKC,GAA+D,MAAeJ,GAAQG,OAAYC,MAW1GR,EAAAS,YAAc,SAAaP,EAA0BC,EAA0BO,GACxF,GAAMN,GAAUC,EAAEC,KAAUJ,EAAUC,EAAUO,GAChD,QACIH,OAAQ,SAAKC,GAA2E,MAAeJ,GAAQG,OAAYC,MAYtHR,EAAAW,YAAc,SAAiBT,EAA0BC,EAA0BO,EAA0BE,GACtH,GAAMR,GAAUC,EAAEC,KAAUJ,EAAUC,EAAUO,EAAUE,GAC1D,QACIL,OAAQ,SAAKC,GAAuF,MAAeJ,GAAQG,OAAYC","file":"Honeywell.ClientModel.Promise.js","sourcesContent":["import * as Q from \"q\";\r\n\r\n/*\r\n * This file contains workarounds of the limitations of Q library and its typings file.\r\n */\r\n\r\n/**\r\n* This is a replacement for Q.all() function that provides you tyeps safety\r\n* @param promise1 first promise\r\n* @param promise2 second promise\r\n* @returns {} an object with the updates spread() function\r\n*/\r\nexport const waitForAll2 = (promise1: Q.IPromise, promise2: Q.IPromise) => {\r\n const promise = Q.all([promise1, promise2]);\r\n return {\r\n spread: (onFulfill: (value1: T1, value2: T2) => Q.IPromise | TR) => >promise.spread(onFulfill)\r\n };\r\n};\r\n\r\n/**\r\n * This is a replacement for Q.all() function that provides you tyeps safety\r\n * @param promise1 first promise\r\n * @param promise2 second promise\r\n * @param promise3 third promise\r\n * @returns {} an object with the updates spread() function\r\n */\r\nexport const waitForAll3 = (promise1: Q.IPromise, promise2: Q.IPromise, promise3: Q.IPromise) => {\r\n const promise = Q.all([promise1, promise2, promise3]);\r\n return {\r\n spread: (onFulfill: (value1: T1, value2: T2, value3: T3) => Q.IPromise | TR) => >promise.spread(onFulfill)\r\n };\r\n};\r\n\r\n/**\r\n * This is a replacement for Q.all() function that provides you tyeps safety\r\n * @param promise1 first promise\r\n * @param promise2 second promise\r\n * @param promise3 third promise\r\n * @param promise4 fourth promise\r\n * @returns {} an object with the updates spread() function\r\n */\r\nexport const waitForAll4 = (promise1: Q.IPromise, promise2: Q.IPromise, promise3: Q.IPromise, promise4: Q.IPromise) => {\r\n const promise = Q.all([promise1, promise2, promise3, promise4]);\r\n return {\r\n spread: (onFulfill: (value1: T1, value2: T2, value3: T3, value4: T4) => Q.IPromise | TR) => >promise.spread(onFulfill)\r\n };\r\n};\r\n\r\n// --- The below two interfaces were copied here to avoid the Resharper issue\r\nexport interface IDeferred {\r\n resolve(value: T | IPromise): void;\r\n reject(reason: any): void;\r\n}\r\n\r\nexport interface IPromise {\r\n then(onFulfill?: (value: T) => TU | IPromise, onReject?: (error: any) => TU | IPromise): IPromise;\r\n}\r\n"]}