diff --git a/packages/keystatic/src/reader/generic.ts b/packages/keystatic/src/reader/generic.ts index 9d6d4ba39..6fac61423 100644 --- a/packages/keystatic/src/reader/generic.ts +++ b/packages/keystatic/src/reader/generic.ts @@ -196,6 +196,8 @@ export type MinimalFs = { fileExists(path: string): Promise; }; +const decoder = new TextDecoder(); + async function getAllEntries( parent: string, fsReader: MinimalFs @@ -350,7 +352,7 @@ const readItem = cache(async function readItem( } if (schema.formKind === 'content') { contentFieldPathsToEagerlyResolve?.push(path); - return async () => { + return async (options?: { raw: boolean }) => { let content: undefined | Uint8Array; const filename = pathWithArrayFieldSlugs.join('/') + schema.contentExtension; @@ -362,6 +364,10 @@ const readItem = cache(async function readItem( undefined; } + if (options?.raw) { + return decoder.decode(content); + } + return schema.reader.parse(value, { content }); }; }