1 |
|
2 | var $cachedResourceFactory, $cachedResourceProvider, app, debugMode, localStoragePrefix, resourceManagerListener,
|
3 | __slice = [].slice;
|
4 |
|
5 | resourceManagerListener = null;
|
6 |
|
7 | debugMode = false;
|
8 |
|
9 | localStoragePrefix = null;
|
10 |
|
11 | if (typeof module !== "undefined" && module !== null) {
|
12 | module.exports = app = angular.module('ngCachedResource', ['ngResource']);
|
13 | }
|
14 |
|
15 | app.provider('$cachedResource', $cachedResourceProvider = (function() {
|
16 | function $cachedResourceProvider() {
|
17 | this.$get = $cachedResourceFactory;
|
18 | localStoragePrefix = 'cachedResource://';
|
19 | }
|
20 |
|
21 | $cachedResourceProvider.prototype.setDebugMode = function(newSetting) {
|
22 | if (newSetting == null) {
|
23 | newSetting = true;
|
24 | }
|
25 | return debugMode = newSetting;
|
26 | };
|
27 |
|
28 | $cachedResourceProvider.prototype.setLocalStoragePrefix = function(prefix) {
|
29 | return localStoragePrefix = prefix;
|
30 | };
|
31 |
|
32 | return $cachedResourceProvider;
|
33 |
|
34 | })());
|
35 |
|
36 | $cachedResourceFactory = [
|
37 | '$resource', '$timeout', '$q', '$log', function($resource, $timeout, $q, $log) {
|
38 | var $cachedResource, CachedResourceManager, bindLogFunction, fn, providerParams, resourceManager, _i, _len, _ref;
|
39 | bindLogFunction = function(logFunction) {
|
40 | return function() {
|
41 | var message;
|
42 | message = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
43 | message.unshift('ngCachedResource');
|
44 | return $log[logFunction].apply($log, message);
|
45 | };
|
46 | };
|
47 | providerParams = {
|
48 | localStoragePrefix: localStoragePrefix,
|
49 | $log: {
|
50 | debug: debugMode ? bindLogFunction('debug') : (function() {}),
|
51 | error: bindLogFunction('error')
|
52 | }
|
53 | };
|
54 | CachedResourceManager = require('./cached_resource_manager')(providerParams);
|
55 | resourceManager = new CachedResourceManager($resource, $timeout, $q);
|
56 | if (resourceManagerListener) {
|
57 | document.removeEventListener('online', resourceManagerListener);
|
58 | }
|
59 | resourceManagerListener = function(event) {
|
60 | return resourceManager.flushQueues();
|
61 | };
|
62 | document.addEventListener('online', resourceManagerListener);
|
63 | $cachedResource = function() {
|
64 | return resourceManager.add.apply(resourceManager, arguments);
|
65 | };
|
66 | _ref = ['clearCache', 'clearUndefined'];
|
67 | for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
68 | fn = _ref[_i];
|
69 | $cachedResource[fn] = angular.bind(resourceManager, resourceManager[fn]);
|
70 | }
|
71 | return $cachedResource;
|
72 | }
|
73 | ];
|