UNPKG

763 Btext/coffeescriptView Raw
1module.exports = (providerParams) ->
2 {$log} = providerParams
3 Cache = require('./cache')(providerParams)
4
5 class ResourceCacheEntry
6 defaultValue: {}
7 cacheKeyPrefix: -> @key
8
9 fullCacheKey: ->
10 @cacheKeyPrefix() + @cacheKeyParams
11
12 constructor: (@key, params) ->
13 paramKeys = if angular.isObject(params) then Object.keys(params).sort() else []
14 if paramKeys.length
15 @cacheKeyParams = '?' + ("#{param}=#{params[param]}" for param in paramKeys).join('&')
16 else
17 @cacheKeyParams = ''
18
19 load: ->
20 {@value, @dirty} = Cache.getItem(@fullCacheKey(), @defaultValue)
21 @
22
23 set: (@value, dirty) ->
24 @dirty = dirty
25 @_update()
26
27 _update: ->
28 Cache.setItem @fullCacheKey(), {@value, @dirty}