@brighter/storage
Version:
A JavaScript object storage library that enables local development.
29 lines (22 loc) • 578 B
JavaScript
import iconv from 'iconv-lite'
const readApi = ({ provider, util }) => {
// prettier-ignore
const {
validate,
scope
} = util.path
// prettier-ignore
const defaults = opts => Object.assign({
encoding: provider.config.encoding
}, opts)
return async (path, opts = {}) => {
opts = defaults(opts)
validate(path, 'path', { isObjectPath: true })
const buffer = await provider.read(scope(path))
if (!buffer || opts.encoding === 'binary') {
return buffer
}
return iconv.decode(buffer, opts.encoding)
}
}
export { readApi }