@tradle/aws-s3-client
Version:
> TODO: description
24 lines • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createGzippedJsonKVStore = exports.createGzippedKVStore = exports.createJsonKVStore = exports.createKVStore = void 0;
const noParse = str => str;
const parseJSON = str => JSON.parse(str);
exports.createKVStore = ({ folder, parse = noParse }) => {
return {
has: folder.has.bind(folder),
get: (key) => folder.get(key).then(({ Body }) => parse(Body.toString())),
del: folder.del.bind(folder),
put: folder.put.bind(folder),
sub: (prefix) => exports.createKVStore({
folder: folder.sub(prefix),
parse
})
};
};
exports.createJsonKVStore = (opts) => exports.createKVStore(Object.assign({ parse: parseJSON }, opts));
exports.createGzippedKVStore = (opts) => {
const { folder } = opts;
return Object.assign(Object.assign({}, exports.createKVStore(opts)), { put: folder.gzipAndPut.bind(folder), sub: (prefix) => exports.createGzippedKVStore(Object.assign(Object.assign({}, opts), { folder: folder.sub(prefix) })) });
};
exports.createGzippedJsonKVStore = (opts) => exports.createGzippedKVStore(Object.assign(Object.assign({}, opts), { parse: parseJSON }));
//# sourceMappingURL=kv.js.map