0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-30 22:03:56 -05:00

fix: content types sync in dev (#11727)

Co-authored-by: Princesseuh <3019731+Princesseuh@users.noreply.github.com>
This commit is contained in:
Florian Lefebvre 2024-08-15 16:52:15 +02:00 committed by GitHub
parent 6c1560fb0d
commit 3c2f93b66c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 6 deletions

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Fixes a type issue when using the Content Layer in dev

View file

@ -590,11 +590,9 @@ async function writeContentFiles({
// If it's the first time, we inject types the usual way. sync() will handle creating files and references. If it's not the first time, we just override the dts content // If it's the first time, we inject types the usual way. sync() will handle creating files and references. If it's not the first time, we just override the dts content
if (settings.injectedTypes.some((t) => t.filename === CONTENT_TYPES_FILE)) { if (settings.injectedTypes.some((t) => t.filename === CONTENT_TYPES_FILE)) {
fs.promises.writeFile( const filePath = fileURLToPath(new URL(CONTENT_TYPES_FILE, settings.dotAstroDir));
new URL(CONTENT_TYPES_FILE, settings.dotAstroDir), await fs.promises.mkdir(path.dirname(filePath), { recursive: true });
typeTemplateContent, await fs.promises.writeFile(filePath, typeTemplateContent, 'utf-8');
'utf-8',
);
} else { } else {
settings.injectedTypes.push({ settings.injectedTypes.push({
filename: CONTENT_TYPES_FILE, filename: CONTENT_TYPES_FILE,

View file

@ -29,6 +29,7 @@ import type { Logger } from '../logger/core.js';
import { formatErrorMessage } from '../messages.js'; import { formatErrorMessage } from '../messages.js';
import { ensureProcessNodeEnv } from '../util.js'; import { ensureProcessNodeEnv } from '../util.js';
import { writeFiles } from './write-files.js'; import { writeFiles } from './write-files.js';
import { fileURLToPath } from 'node:url';
export type SyncOptions = { export type SyncOptions = {
/** /**
@ -122,7 +123,7 @@ export async function syncInternal({
}); });
await contentLayer.sync(); await contentLayer.sync();
settings.timer.end('Sync content layer'); settings.timer.end('Sync content layer');
} else if (fs.existsSync(getContentPaths(settings.config, fs).contentDir.href)) { } else if (fs.existsSync(fileURLToPath(getContentPaths(settings.config, fs).contentDir))) {
// Content is synced after writeFiles. That means references are not created // Content is synced after writeFiles. That means references are not created
// To work around it, we create a stub so the reference is created and content // To work around it, we create a stub so the reference is created and content
// sync will override the empty file // sync will override the empty file