sync: {
get (keys, callback) {
const storage = getStorage()
-
- if (keys === {} || keys === []) return {}
- if (keys === null) return storage
-
- if (typeof keys === 'string') keys = [keys]
+ if (keys == null) return storage
+
+ let defaults = {}
+ switch (typeof keys) {
+ case 'string':
+ keys = [keys]
+ break
+ case 'object':
+ if (!Array.isArray(keys)) {
+ defaults = keys
+ keys = Object.keys(keys)
+ }
+ break;
+ }
+ if (keys.length === 0 ) return {}
let items = {}
- // ['foo'] or ['foo', 'bar'] or [{foo: 'bar'}]
keys.forEach(function (key) {
- if (typeof key === 'string') {
- items[key] = storage[key]
- }
- else {
- const objKey = Object.keys(key)
- if (!storage[objKey] || storage[objKey] === '') {
- items[objKey] = key[objKey]
- } else {
- items[objKey] = storage[objKey]
- }
- }
+ var value = storage[key]
+ if (value == null) value = defaults[key]
+ items[key] = value
})
setTimeout(function () {