UNPKG

@braindb/remark-dataview

Version:

markdown-graph-content-layer-database

29 lines (28 loc) 1.14 kB
import remarkCodeHook from "@beoe/remark-code-hook"; import { generateList, generateTable, parse, processMeta, transform, } from "./sqlUtils.js"; export function remarkDataview(options) { const { getBrainDb, bdb, ...rest } = options; // @ts-expect-error return remarkCodeHook.call(this, { ...rest, language: "dataview", code: async ({ code, meta }) => { if (getBrainDb == null) { console.warn(`[remark-dataview]: "bdb" option is deprecated. Use "getBrainDb" instead`); } const bdbInstance = getBrainDb == null ? bdb : getBrainDb(); await bdbInstance.ready(); try { const options = processMeta(meta); const { query, columns } = transform(parse(code)); if (options.list) return generateList(columns, bdbInstance.__rawQuery(query), options); return generateTable(columns, bdbInstance.__rawQuery(query)); } catch (e) { return String(e); } }, }); } export default remarkDataview;