Skip to content

Commit 7d86e12

Browse files
committed
feat: throw errors on missing parameters
1 parent 87be7af commit 7d86e12

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/angular-localForage.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@
7373

7474
// Directly adds a value to storage
7575
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+
7681
var deferred = $q.defer(),
7782
args = arguments,
7883
localCopy = angular.copy(value);
@@ -96,8 +101,14 @@
96101

97102
// Directly get a value from storage
98103
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+
99109
var deferred = $q.defer(),
100110
args = arguments;
111+
101112
localforage.getItem(prefix() + key).then(function success(item) {
102113
deferred.resolve(item);
103114
}, function error(data) {
@@ -108,6 +119,11 @@
108119

109120
// Remove an item from storage
110121
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+
111127
var deferred = $q.defer(),
112128
args = arguments;
113129

@@ -147,8 +163,14 @@
147163

148164
// Return the key for item at position n
149165
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+
150171
var deferred = $q.defer(),
151172
args = arguments;
173+
152174
localforage.key(n).then(function success(key) {
153175
deferred.resolve(key);
154176
}, function error(data) {
@@ -172,6 +194,7 @@
172194
var keys = function() {
173195
var deferred = $q.defer(),
174196
args = arguments;
197+
175198
localforage.keys().then(function success(keyList) {
176199
// because we may have a prefix, extract only related keys
177200
var p = prefix(),
@@ -204,12 +227,14 @@
204227
key: opts
205228
}
206229
} 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");
208231
}
232+
209233
var defaultOpts = {
210234
defaultValue: '',
211235
storeName: ''
212236
};
237+
213238
// If no defined options we use defaults otherwise extend defaults
214239
opts = angular.extend(defaultOpts, opts || {});
215240

0 commit comments

Comments
 (0)