{"version":3,"sources":["Themes/Default/Content/ts/Shared/Services/qPromiseCache.ts"],"names":[],"mappings":";;;IAEA;QAGI;YACI,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAC3B,CAAC;QAED,2BAAG,GAAH,UAAI,UAAkB,EAAE,YAA6B,EAAE,IAAgB;YAA/C,6BAAA,EAAA,oBAA6B;YAAE,qBAAA,EAAA,WAAgB;YACnE,IAAI,eAAe,GAAG,EAAE,CAAC;YAEzB,IAAI,IAAI,EAAE;gBACN,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC1C;YAED,IAAM,WAAW,GAAG,UAAG,UAAU,CAAC,WAAW,EAAE,cAAI,eAAe,CAAE,CAAC;YACrE,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAE7C,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE;gBAC1B,OAAO,GAAG,CAAC,CAAc,CAAC,CAAC,IAAI,CAAC;oBAC5B,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,IAAI;iBACb,CAAC,CAAC,CAAC;gBAEJ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;aAC5C;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,4BAAI,GAAJ,UAAK,UAAkB,EAAE,YAA6B,EAAE,IAAgB;YAA/C,6BAAA,EAAA,oBAA6B;YAAE,qBAAA,EAAA,WAAgB;YACpE,IAAI,eAAe,GAAG,EAAE,CAAC;YAEzB,IAAI,IAAI,EAAE;gBACN,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC1C;YAED,IAAM,WAAW,GAAG,UAAG,UAAU,CAAC,WAAW,EAAE,cAAI,eAAe,CAAE,CAAC;YACrE,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAE7C,IAAI,YAAY,IAAI,CAAC,OAAO,EAAE;gBAC1B,OAAO,GAAG,CAAC,CAAc,CAAC,CAAC,IAAI,CAAC;oBAC5B,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,IAAI;iBACb,CAAC,CAAC,CAAC;gBAEJ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;aAC5C;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;QACL,oBAAC;IAAD,CApDA,AAoDC,IAAA","file":"qPromiseCache.js","sourcesContent":["import * as Q from \"q\";\r\n\r\nexport default class QPromiseCache {\r\n promiseCache: { [requestUri: string]: Q.Promise };\r\n\r\n constructor() {\r\n this.promiseCache = {};\r\n }\r\n\r\n get(requestUri: string, forceRefresh: boolean = false, data: any = null): Q.Promise {\r\n let stringifiedData = \"\";\r\n\r\n if (data) {\r\n stringifiedData = JSON.stringify(data);\r\n }\r\n\r\n const cacheString = `${requestUri.toLowerCase()}-${stringifiedData}`;\r\n let promise = this.promiseCache[cacheString];\r\n\r\n if (forceRefresh || !promise) {\r\n promise = Q($.ajax({\r\n type: 'GET',\r\n url: requestUri,\r\n data: data,\r\n }));\r\n\r\n this.promiseCache[cacheString] = promise;\r\n }\r\n\r\n return promise;\r\n }\r\n\r\n post(requestUri: string, forceRefresh: boolean = false, data: any = null): Q.Promise {\r\n let stringifiedData = \"\";\r\n\r\n if (data) {\r\n stringifiedData = JSON.stringify(data);\r\n }\r\n\r\n const cacheString = `${requestUri.toLowerCase()}-${stringifiedData}`;\r\n let promise = this.promiseCache[cacheString];\r\n\r\n if (forceRefresh || !promise) {\r\n promise = Q($.ajax({\r\n type: 'POST',\r\n url: requestUri,\r\n data: data\r\n }));\r\n\r\n this.promiseCache[cacheString] = promise;\r\n }\r\n\r\n return promise;\r\n }\r\n}"]}