UNPKG

@sidekick-coder/db

Version:

Cli Tool to manipulate data from diferent sources

76 lines (70 loc) 1.51 kB
'use strict'; var yaml = require('yaml'); // src/core/parsers/yaml.ts var parse = yaml.parse; var stringify = yaml.stringify; var YAML = { parse, stringify }; // src/core/parsers/markdown.ts function parse2(contents) { let body = contents; const result = {}; if (contents.startsWith("---")) { const [, frontmatter, rest] = contents.split("---"); Object.assign(result, YAML.parse(frontmatter)); body = rest.trim(); } result["body"] = body || ""; return result; } function stringify2(data) { const { body, ...properties } = data; let result = ""; if (properties && Object.keys(properties).length) { result += `--- ${YAML.stringify(properties)}--- `; } if (body) { result += body; } return result; } var MD = { parse: parse2, stringify: stringify2 }; // src/core/parsers/all.ts var parsers = []; var json = { name: "json", ext: "json", parse: JSON.parse, stringify: (contents) => JSON.stringify(contents, null, 4) }; var markdown = { name: "markdown", ext: "md", parse: MD.parse, stringify: (contents) => MD.stringify(contents) }; parsers.push(json, markdown); parsers.push({ name: "yaml", ext: "yaml", parse: YAML.parse, stringify: (contents) => YAML.stringify(contents, null, 4) }); parsers.push({ name: "yml", ext: "yml", parse: YAML.parse, stringify: (contents) => YAML.stringify(contents, null, 4) }); exports.MD = MD; exports.YAML = YAML; exports.json = json; exports.markdown = markdown; exports.parsers = parsers;