Files
soulspace/node_modules/store/plugins/compression.js
2025-03-05 15:16:45 +08:00

24 lines
541 B
JavaScript

const LZString = require('./lib/lz-string')
module.exports = compressionPlugin
function compressionPlugin() {
return {
get: get,
set: set,
}
function get(super_fn, key) {
var val = super_fn(key)
if (!val) { return val }
var decompressed = LZString.decompress(val)
// fallback to existing values that are not compressed
return (decompressed == null) ? val : this._deserialize(decompressed)
}
function set(super_fn, key, val) {
var compressed = LZString.compress(this._serialize(val))
super_fn(key, compressed)
}
}