UNPKG

angular.js-server-ng-cache

Version:

A REST API and template caching for server side rendering with angular.js-server

1 lines 15.1 kB
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 55219ab2712318fbcda6","webpack:///./src/index.js","webpack:///./src/provider/ngCacheFactory.js"],"names":[],"mappings":"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","file":"angular.js-server-ng-cache.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angular.js-server-ng-cache\"] = factory();\n\telse\n\t\troot[\"angular.js-server-ng-cache\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 55219ab2712318fbcda6\n **/","import { $CacheFactoryProvider, $TemplateCacheProvider } from './provider/ngCacheFactory';\n\n\nangular.module('server-cache', [])\n .provider('$cacheFactory', $CacheFactoryProvider)\n .provider('$templateCache', $TemplateCacheProvider)\n .constant('serverCacheConfig', {defaultCache: true})\n .config(function($windowProvider, $httpProvider, $cacheFactoryProvider, serverCacheConfig) {\n\n $httpProvider.defaults.cache = true;\n\n var $window = $windowProvider.$get();\n\n if ($window.onServer && $window.onServer === true) {\n $window.$cacheFactoryProvider = $cacheFactoryProvider;\n }\n\n if (typeof $window.onServer === 'undefined' && typeof $window.$angularServerCache !== 'undefined') {\n\n $cacheFactoryProvider.importAll($window.$angularServerCache);\n\n $window.addEventListener('StackQueueEmpty', function() {\n $cacheFactoryProvider.remove('$http');\n $httpProvider.defaults.cache = serverCacheConfig.defaultCache;\n });\n }\n });\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","export function $CacheFactoryProvider() {\n\n var caches = {};\n\n this.getCaches = function() {\n return caches;\n };\n\n this.export = function(cacheId) {\n if (typeof cache[cacheId] === 'undefined') {\n throw new Error('$cacheFactory - iid - CacheId '+cacheId+' is not defined!');\n }\n return caches[cacheId].export();\n };\n\n this.exportAll = function() {\n var _caches = {};\n for(var i in caches) {\n _caches[i] = caches[i].export();\n }\n return _caches;\n };\n\n this.remove = function(cacheId) {\n if (typeof caches[cacheId] !== 'undefined') {\n delete caches[cacheId];\n }\n };\n\n this.removeAll = function() {\n caches = {};\n };\n\n this.importAll = function(cacheData) {\n\n var cacheFactory = this.$get();\n for(var i in cacheData) {\n if(typeof caches[i] === 'undefined') {\n caches[i] = cacheFactory(i);\n }\n caches[i].import(cacheData[i]);\n }\n };\n\n this.import = function(cacheId, cacheData) {\n\n var cacheFactory = this.$get();\n if(typeof caches[cacheId] === 'undefined') {\n caches[cacheId] = cacheFactory(i);\n }\n\n caches[cacheId].import(cacheData);\n };\n\n this.info = function(cacheId) {\n if(typeof caches[cacheId] === 'undefined') {\n throw new Error('$cacheFactory - iid - CacheId '+cacheId+' is not defined!');\n }\n return caches[cacheId].info();\n };\n\n this.infoAll = function() {\n var info = {};\n for (var cacheId in caches) {\n info[cacheId] = caches[cacheId].info();\n }\n return info;\n };\n\n this.$get = function() {\n \n function cacheFactory(cacheId, options) {\n if (cacheId in caches) {\n return caches[cacheId];\n throw new Error('$cacheFactory - iid - CacheId '+cacheId+' is already taken!');\n }\n\n var size = 0,\n stats = Object.assign({}, options, {id: cacheId}),\n data = Object.create(null),\n capacity = (options && options.capacity) || Number.MAX_VALUE,\n lruHash = Object.create(null),\n freshEnd = null,\n staleEnd = null;\n\n\n return caches[cacheId] = {\n\n put: function(key, value) {\n if ( typeof value === 'undefined') return;\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key] || (lruHash[key] = {key: key});\n refresh(lruEntry);\n }\n\n if (!(key in data)) size++;\n data[key] = value;\n\n if (size > capacity) {\n this.remove(staleEnd.key);\n }\n\n return value;\n },\n\n export: function() {\n return data;\n },\n\n import: function(data) {\n size = 0;\n lruHash = Object.create(null);\n freshEnd = null;\n staleEnd = null;\n for(var i in data) {\n this.put(i, data[i]);\n }\n },\n\n get: function(key) {\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key];\n\n if (!lruEntry) return;\n\n refresh(lruEntry);\n }\n\n return data[key];\n },\n\n remove: function(key) {\n if (capacity < Number.MAX_VALUE) {\n var lruEntry = lruHash[key];\n\n if (!lruEntry) return;\n\n if (lruEntry === freshEnd) freshEnd = lruEntry.p;\n if (lruEntry === staleEnd) staleEnd = lruEntry.n;\n link(lruEntry.n,lruEntry.p);\n\n delete lruHash[key];\n }\n\n if (!(key in data)) return;\n\n delete data[key];\n size--;\n },\n\n removeAll: function() {\n data = Object.create(null);\n size = 0;\n lruHash = Object.create(null);\n freshEnd = staleEnd = null;\n },\n\n destroy: function() {\n data = null;\n stats = null;\n lruHash = null;\n delete caches[cacheId];\n },\n\n info: function() {\n return Object.assign({}, stats, {size: size});\n },\n\n keys: function() {\n return Object.getOwnPropertyNames(data);\n }\n };\n\n /**\n * makes the `entry` the freshEnd of the LRU linked list\n */\n function refresh(entry) {\n if (entry !== freshEnd) {\n if (!staleEnd) {\n staleEnd = entry;\n } else if (staleEnd === entry) {\n staleEnd = entry.n;\n }\n\n link(entry.n, entry.p);\n link(entry, freshEnd);\n freshEnd = entry;\n freshEnd.n = null;\n }\n }\n\n /**\n * bidirectionally links two entries of the LRU linked list\n */\n function link(nextEntry, prevEntry) {\n if (nextEntry !== prevEntry) {\n if (nextEntry) nextEntry.p = prevEntry; //p stands for previous, 'prev' didn't minify\n if (prevEntry) prevEntry.n = nextEntry; //n stands for next, 'next' didn't minify\n }\n }\n }\n\n cacheFactory.info = function() {\n var info = {};\n for (var cacheId in caches) {\n info[cacheId] = caches[cacheId].info();\n }\n return info;\n };\n\n return cacheFactory;\n };\n}\n\nexport function $TemplateCacheProvider(){\n this.$get = ['$cacheFactory', function($cacheFactory) {\n return $cacheFactory('templates');\n }];\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/provider/ngCacheFactory.js\n **/"],"sourceRoot":""}