UNPKG

@benpsnyder/analogjs-esm-vite-plugin-nitro

Version:

A Vite plugin for adding a nitro API server

36 lines 1.44 kB
import { readFileSync } from 'node:fs'; import { join, relative, resolve } from 'node:path'; import { normalizePath } from 'vite'; import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); export function getMatchingContentFilesWithFrontMatter(workspaceRoot, rootDir, glob) { // eslint-disable-next-line @typescript-eslint/no-var-requires const fg = require('fast-glob'); // eslint-disable-next-line @typescript-eslint/no-var-requires const fm = require('front-matter'); const root = normalizePath(resolve(workspaceRoot, rootDir)); const resolvedDir = normalizePath(relative(root, join(root, glob))); const contentFiles = fg.sync([`${root}/${resolvedDir}/*`], { dot: true, }); const mappedFilesWithFm = contentFiles.map((f) => { const fileContents = readFileSync(f, 'utf8'); const raw = fm(fileContents); const filepath = f.replace(root, ''); const match = filepath.match(/\/([^/.]+)(\.([^/.]+))?$/); let name = ''; let extension = ''; if (match) { name = match[1]; extension = match[3] || ''; // Using an empty string if there's no extension } return { name, extension, path: resolvedDir, attributes: raw.attributes, }; }); return mappedFilesWithFm; } //# sourceMappingURL=get-content-files.js.map