|
73 | 73 |
|
74 | 74 | // Directly adds a value to storage |
75 | 75 | var setItem = function(key, value) { |
| 76 | +// throw error on undefined key, we allow undefined value because... why not ? |
| 77 | +if(angular.isUndefined(key)) { |
| 78 | +throw new Error("You must define a key to set"); |
| 79 | +} |
| 80 | + |
76 | 81 | var deferred = $q.defer(), |
77 | 82 | args = arguments, |
78 | 83 | localCopy = angular.copy(value); |
|
96 | 101 |
|
97 | 102 | // Directly get a value from storage |
98 | 103 | var getItem = function(key) { |
| 104 | +// throw error on undefined key |
| 105 | +if(angular.isUndefined(key)) { |
| 106 | +throw new Error("You must define a key to get"); |
| 107 | +} |
| 108 | + |
99 | 109 | var deferred = $q.defer(), |
100 | 110 | args = arguments; |
| 111 | + |
101 | 112 | localforage.getItem(prefix() + key).then(function success(item) { |
102 | 113 | deferred.resolve(item); |
103 | 114 | }, function error(data) { |
|
108 | 119 |
|
109 | 120 | // Remove an item from storage |
110 | 121 | var removeItem = function(key) { |
| 122 | +// throw error on undefined key |
| 123 | +if(angular.isUndefined(key)) { |
| 124 | +throw new Error("You must define a key to remove"); |
| 125 | +} |
| 126 | + |
111 | 127 | var deferred = $q.defer(), |
112 | 128 | args = arguments; |
113 | 129 |
|
|
147 | 163 |
|
148 | 164 | // Return the key for item at position n |
149 | 165 | var key = function(n) { |
| 166 | +// throw error on undefined n |
| 167 | +if(angular.isUndefined(n)) { |
| 168 | +throw new Error("You must define a position to get for the key function"); |
| 169 | +} |
| 170 | + |
150 | 171 | var deferred = $q.defer(), |
151 | 172 | args = arguments; |
| 173 | + |
152 | 174 | localforage.key(n).then(function success(key) { |
153 | 175 | deferred.resolve(key); |
154 | 176 | }, function error(data) { |
|
172 | 194 | var keys = function() { |
173 | 195 | var deferred = $q.defer(), |
174 | 196 | args = arguments; |
| 197 | + |
175 | 198 | localforage.keys().then(function success(keyList) { |
176 | 199 | // because we may have a prefix, extract only related keys |
177 | 200 | var p = prefix(), |
|
204 | 227 | key: opts |
205 | 228 | } |
206 | 229 | } else if(!angular.isObject(opts) || angular.isUndefined(opts.key)) { |
207 | | -throw "You must defined a key to bind"; |
| 230 | +throw new Error("You must define a key to bind"); |
208 | 231 | } |
| 232 | + |
209 | 233 | var defaultOpts = { |
210 | 234 | defaultValue: '', |
211 | 235 | storeName: '' |
212 | 236 | }; |
| 237 | + |
213 | 238 | // If no defined options we use defaults otherwise extend defaults |
214 | 239 | opts = angular.extend(defaultOpts, opts || {}); |
215 | 240 |
|
|
0 commit comments