refactor: pass file contents
This commit is contained in:
parent
e4d38c3498
commit
e17e8735be
4 changed files with 9 additions and 9 deletions
|
@ -980,7 +980,7 @@ export interface AstroConfig extends z.output<typeof AstroConfigSchema> {
|
|||
|
||||
export interface ContentEntryType {
|
||||
extensions: string[];
|
||||
getEntryInfo(params: { fileUrl: URL }): Promise<{
|
||||
getEntryInfo(params: { fileUrl: URL; contents: string }): Promise<{
|
||||
data: Record<string, unknown>;
|
||||
/**
|
||||
* Used for error hints to point to correct line and location
|
||||
|
|
|
@ -79,7 +79,10 @@ export function astroContentImportPlugin({
|
|||
unvalidatedSlug: string,
|
||||
rawData: string;
|
||||
if (contentEntryType) {
|
||||
const info = await contentEntryType.getEntryInfo({ fileUrl: pathToFileURL(fileId) });
|
||||
const info = await contentEntryType.getEntryInfo({
|
||||
fileUrl: pathToFileURL(fileId),
|
||||
contents: rawContents,
|
||||
});
|
||||
body = info.body;
|
||||
unvalidatedData = info.data;
|
||||
unvalidatedSlug = info.slug;
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
import type { AstroIntegration } from 'astro';
|
||||
import type { InlineConfig } from 'vite';
|
||||
import _Markdoc from '@markdoc/markdoc';
|
||||
import fs from 'node:fs';
|
||||
import { parseFrontmatter } from './utils.js';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
const contentEntryType = {
|
||||
extensions: ['.mdoc'],
|
||||
async getEntryInfo({ fileUrl }: { fileUrl: URL }) {
|
||||
const rawContents = await fs.promises.readFile(fileUrl, 'utf-8');
|
||||
const parsed = parseFrontmatter(rawContents, fileURLToPath(fileUrl));
|
||||
async getEntryInfo({ fileUrl, contents }: { fileUrl: URL; contents: string }) {
|
||||
const parsed = parseFrontmatter(contents, fileURLToPath(fileUrl));
|
||||
return {
|
||||
data: parsed.data,
|
||||
body: parsed.content,
|
||||
|
|
|
@ -25,9 +25,8 @@ export type MdxOptions = Omit<typeof markdownConfigDefaults, 'remarkPlugins' | '
|
|||
|
||||
const contentEntryType = {
|
||||
extensions: ['.mdx'],
|
||||
async getEntryInfo({ fileUrl }: { fileUrl: URL }) {
|
||||
const rawContents = await fs.readFile(fileUrl, 'utf-8');
|
||||
const parsed = parseFrontmatter(rawContents, fileURLToPath(fileUrl));
|
||||
async getEntryInfo({ fileUrl, contents }: { fileUrl: URL; contents: string }) {
|
||||
const parsed = parseFrontmatter(contents, fileURLToPath(fileUrl));
|
||||
return {
|
||||
data: parsed.data,
|
||||
body: parsed.content,
|
||||
|
|
Loading…
Reference in a new issue