UNPKG

@sidekick-coder/db

Version:

Cli Tool to manipulate data from diferent sources

70 lines (65 loc) 1.46 kB
import { stringify as stringify$1, parse as parse$1 } from 'yaml'; // src/core/parsers/yaml.ts var parse = parse$1; var stringify = stringify$1; 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) }); export { MD, YAML, json, markdown, parsers };