UNPKG

@alinex/datastore

Version:

Read, work and write data structures from and to differents locations and formats.

31 lines 1.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.format = exports.parse = void 0; const path_1 = require("path"); const debug_1 = require("debug"); const BSON = require("bson"); const debug = debug_1.default('datastore:format:bson'); const parse = async function (parsedUri, buffer) { if (!parsedUri.pathname) return Promise.reject(`No pathname given in ${parsedUri.href}`); const pathname = parsedUri.hash || path_1.basename(parsedUri.pathname); debug(`parsing ${pathname}`); let data = await BSON.deserialize(buffer); let num = 0; let isArray = true; Object.keys(data).forEach(k => { if (k !== `${num++}`) isArray = false; }); return isArray ? Object.keys(data).map(k => data[k]) : data; }; exports.parse = parse; const format = function (parsedUri, data) { if (!parsedUri.pathname) return Promise.reject(`No pathname given in ${parsedUri.href}`); const pathname = parsedUri.hash || path_1.basename(parsedUri.pathname); debug(`formatting for ${pathname}`); return Promise.resolve(Buffer.from(BSON.serialize(data))); }; exports.format = format; //# sourceMappingURL=bson.js.map