diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2018-07-28 12:36:42 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2018-07-28 14:20:29 +0900 |
commit | b5b6ba0c74853e1f1a2da11ef88d2bb8daeaac37 (patch) | |
tree | 9f20f394ca954e8c3dfd432feb2aacb62f958c7a /src | |
parent | f23eeee4f15a9469bbcb183dddf39bdea6070b9f (diff) |
Deep-copy objects on MemoryStorage and add tests
Diffstat (limited to 'src')
-rw-r--r-- | src/background/infrastructures/memory-storage.js | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/background/infrastructures/memory-storage.js b/src/background/infrastructures/memory-storage.js index 0a05928..234a9b8 100644 --- a/src/background/infrastructures/memory-storage.js +++ b/src/background/infrastructures/memory-storage.js @@ -2,10 +2,14 @@ const db = {}; export default class MemoryStorage { set(name, value) { - db[name] = value; + let data = JSON.stringify(value); + if (typeof data === 'undefined') { + throw new Error('value is not serializable'); + } + db[name] = data; } get(name) { - return db[name]; + return JSON.parse(db[name]); } } |