UNPKG

6.68 kBSource Map (JSON)View Raw
1{"version":3,"file":"request-cache.js","sourceRoot":"","sources":["../../tmp-src-bundle-browser/request-cache.ts"],"names":[],"mappings":"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","sourcesContent":["\n\nimport * as _ from 'lodash';\nimport { Models } from './models';\n\nimport { Log, Level } from 'ng2-logger/browser';\nimport { Helpers } from 'ng2-logger/helper';\nimport { RestHeaders } from './rest-headers';\nconst log = Log.create('request-cache', Level.__NOTHING)\n\n\nexport class RequestCache {\n\n static readonly LOCAL_STORAGE_KEY = 'ng2restrequestcache';\n\n private static cached: RequestCache[] = [];\n private static isRestoredFromLocalStorage = false;\n\n private static restoreFromLocalStorage() {\n if(Helpers.isNode) {\n return;\n }\n if (!RequestCache.isRestoredFromLocalStorage) {\n RequestCache.isRestoredFromLocalStorage = true;\n const data = localStorage.getItem(RequestCache.LOCAL_STORAGE_KEY);\n let requests: RequestCache[] = [];\n if (data) {\n try {\n requests = JSON.parse(data) as RequestCache[];\n } catch (error) {\n\n }\n const restored = requests.map(r => {\n let { sourceRequest, responseText, body, headers, circular,\n entity, isArray, cookies, statusCode } = r.response;\n r.response = new Models.HttpResponse(\n sourceRequest,\n responseText,\n RestHeaders.from(headers),\n statusCode,\n entity,\n circular,\n isArray,\n );\n r = new RequestCache(r.response);\n r.response.rq = r;\n\n return r;\n });\n log.i('RESTORED FROM LOCAL STORAGE', restored);\n RequestCache.cached = restored;\n }\n\n }\n }\n\n public static findBy(sourceRequest: Models.HandleResultSourceRequestOptions) {\n log.i('findby', sourceRequest)\n log.i('RequestCache.cached', RequestCache.cached)\n RequestCache.restoreFromLocalStorage();\n return RequestCache.cached.find(c => {\n const a = c.response.sourceRequest;\n const b = sourceRequest;\n return (\n a.isArray === b.isArray &&\n a.url === b.url &&\n a.method === b.method &&\n a.body === b.body\n )\n });\n }\n\n\n\n\n constructor(\n public response: Models.HttpResponse<any>\n ) {\n\n }\n\n get containsCache() {\n RequestCache.restoreFromLocalStorage();\n return RequestCache.cached.includes(this);\n }\n\n private persistsInLocalStorage() {\n localStorage.setItem(RequestCache.LOCAL_STORAGE_KEY,\n JSON.stringify(RequestCache.cached.map(r => {\n return {\n response: {\n sourceRequest: r.response.sourceRequest,\n responseText: r.response.responseText,\n headers: r.response.headers,\n statusCode: r.response.statusCode,\n entity: r.response.entity,\n circular: r.response.circular,\n isArray: r.response.isArray,\n } as Models.HttpResponse<any>\n };\n })));\n }\n\n store() {\n RequestCache.restoreFromLocalStorage();\n if (!this.containsCache) {\n RequestCache.cached.push(this);\n this.persistsInLocalStorage();\n } else {\n console.log('already stored');\n }\n return this;\n }\n\n remove() {\n RequestCache.restoreFromLocalStorage();\n const index = RequestCache.cached.indexOf(this);\n if (index !== -1) {\n RequestCache.cached.splice(index, 1);\n this.persistsInLocalStorage();\n } else {\n console.log('already removed');\n }\n }\n\n}\n"]}
\No newline at end of file