1 | resourceManagerListener = null
|
2 | debugMode = off
|
3 | localStoragePrefix = null
|
4 |
|
5 | module?.exports = app = angular.module 'ngCachedResource', ['ngResource']
|
6 |
|
7 | app.provider '$cachedResource', class $cachedResourceProvider
|
8 | constructor: ->
|
9 | @$get = $cachedResourceFactory
|
10 | localStoragePrefix = 'cachedResource://'
|
11 |
|
12 | setDebugMode: (newSetting = on) ->
|
13 | debugMode = newSetting
|
14 |
|
15 | setLocalStoragePrefix: (prefix) ->
|
16 | localStoragePrefix = prefix
|
17 |
|
18 | $cachedResourceFactory = ['$resource', '$timeout', '$q', '$log', ($resource, $timeout, $q, $log) ->
|
19 |
|
20 | bindLogFunction = (logFunction) ->
|
21 | (message...) ->
|
22 | message.unshift 'ngCachedResource'
|
23 | $log[logFunction].apply($log, message)
|
24 |
|
25 | providerParams =
|
26 | localStoragePrefix: localStoragePrefix
|
27 | $log:
|
28 | debug: if debugMode then bindLogFunction('debug') else (->)
|
29 | error: bindLogFunction 'error'
|
30 |
|
31 | CachedResourceManager = require('./cached_resource_manager')(providerParams)
|
32 | resourceManager = new CachedResourceManager($resource, $timeout, $q)
|
33 |
|
34 | document.removeEventListener 'online', resourceManagerListener if resourceManagerListener
|
35 | resourceManagerListener = (event) -> resourceManager.flushQueues()
|
36 | document.addEventListener 'online', resourceManagerListener
|
37 |
|
38 | $cachedResource = ->
|
39 | resourceManager.add.apply resourceManager, arguments
|
40 | for fn in ['clearCache', 'clearUndefined']
|
41 | $cachedResource[fn] = angular.bind resourceManager, resourceManager[fn]
|
42 | return $cachedResource
|
43 |
|
44 | ]
|