UNPKG

@alinex/datastore

Version:

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

36 lines 1.42 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 CSON = require("cson-parser"); const coffee = require("coffeescript"); const Format = require("./index"); const debug = debug_1.default('datastore:format:coffee'); const parse = 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 text = buffer.toString(); try { text = 'module.exports =\n ' + text.replace(/\n/g, '\n '); let m = new module.constructor(); m._compile(coffee.compile(text), 'inline.coffee'); return Promise.resolve(Format.cast(m.exports, 'date')); } catch (error) { error.data = buffer.toString(); return Promise.reject(error); } }; 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(CSON.stringify(data, null, 4))); }; exports.format = format; //# sourceMappingURL=coffee.js.map