UNPKG

zod-matter

Version:
37 lines (36 loc) 1.08 kB
// src/index.ts import matter from "gray-matter"; function parse(input, schema, options) { return parseFrontMatter(schema, matter(input, options)); } function read(path, schema, options) { return parseFrontMatter(schema, matter.read(path, options)); } var stringify = matter.stringify; var test = matter.test; function parseFrontMatter(schema, grayMatterFile) { const { data, ...dataLessGrayMatterFile } = grayMatterFile; const zodMatterFile = { ...dataLessGrayMatterFile, data: schema.parse(data) }; addNonEnumerableProperty(zodMatterFile, "language", grayMatterFile.language); addNonEnumerableProperty(zodMatterFile, "matter", grayMatterFile.matter); addNonEnumerableProperty(zodMatterFile, "orig", grayMatterFile.orig); addNonEnumerableProperty(zodMatterFile, "stringify", grayMatterFile.stringify); return zodMatterFile; } function addNonEnumerableProperty(object, key, value) { Object.defineProperty(object, key, { configurable: true, enumerable: false, value, writable: true }); } export { parse, read, stringify, test };