From dc1056891723ea4ca63730114384bb2bb1502f1e Mon Sep 17 00:00:00 2001 From: Jessica Lord Date: Thu, 9 Jun 2016 16:26:42 -0700 Subject: [PATCH] Handle the three get cases --- lib/renderer/extensions/storage.js | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/lib/renderer/extensions/storage.js b/lib/renderer/extensions/storage.js index 07080ee..b2e2149 100644 --- a/lib/renderer/extensions/storage.js +++ b/lib/renderer/extensions/storage.js @@ -17,26 +17,27 @@ module.exports = { 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 () { -- 2.7.4