@alinex/datastore
Version:
Read, work and write data structures from and to differents locations and formats.
32 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.format = exports.parse = void 0;
const path_1 = require("path");
const debug_1 = require("debug");
const util_1 = require("util");
const debug = debug_1.default('datastore:format:text');
const parse = function (parsedUri, buffer, options) {
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 text = buffer.toString();
if (text && options && options.pattern) {
const data = [...text.matchAll(options.pattern)].map(e => {
return { ...e.groups };
});
debug('Found %d matches using pattern matching', data.length);
text = data;
}
return Promise.resolve(text);
};
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(typeof data === 'object' ? util_1.inspect(data, { depth: null }) : data));
};
exports.format = format;
//# sourceMappingURL=text.js.map