@piqit/resolvers

@piqit/resolvers exports resolver factories and parsing utilities for filesystem-backed and precompiled content sources.

Install

npm install @piqit/resolvers

Imports

import { fileMarkdown, staticContent, staticResolver } from '@piqit/resolvers'
import { staticContent as edgeStaticContent } from '@piqit/resolvers/edge'

Exports

Resolver factories

  • fileMarkdown(options)
  • staticContent(data)
  • staticResolver (alias)

Utility APIs

  • Path patterns: compilePattern, createParamsSchema
  • Frontmatter: parseFrontmatter, readFrontmatter, readFrontmatterWithOffset
  • Markdown: parseMarkdownBody, extractHeadings, slugify, markdownToHtml

fileMarkdown

const posts = fileMarkdown({
  base: 'content/posts',
  path: '{year}/{slug}.md',
  frontmatter: z.object({
    title: z.string(),
    status: z.enum(['draft', 'published']),
  }),
  body: { html: true, headings: true },
})
  • Bun runtime required.
  • Scan values come from path placeholders.
  • Filter checks frontmatter equality.

staticContent

const postsResolver = staticContent(precompiledPosts)
  • No filesystem dependency.
  • Intended for edge and other runtime-safe execution environments.

Build/Check (Workspace)

bun run --filter @piqit/resolvers build
bun run --filter @piqit/resolvers check