UNPKG

1.47 kBtext/coffeescriptView Raw
1resourceManagerListener = null
2debugMode = off
3localStoragePrefix = null
4
5module?.exports = app = angular.module 'ngCachedResource', ['ngResource']
6
7app.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]