Avoid loop rebuild in watch mode

This commit is contained in:
Joseph Garrone 2024-06-09 10:28:06 +02:00
parent 379301eb9d
commit 2015882688

View File

@ -3,6 +3,7 @@ import type { BuildContext } from "./buildContext";
import { getThemeSrcDirPath } from "./getThemeSrcDirPath";
import * as fs from "fs/promises";
import { join as pathJoin } from "path";
import { existsAsync } from "../tools/fs.existsAsync";
export type BuildContextLike = {
projectDirPath: string;
@ -21,9 +22,13 @@ export async function generateKcGenTs(params: {
projectDirPath: buildContext.projectDirPath
});
await fs.writeFile(
pathJoin(themeSrcDirPath, "kc.gen.ts"),
Buffer.from(
const filePath = pathJoin(themeSrcDirPath, "kc.gen.ts");
const currentContent = (await existsAsync(filePath))
? await fs.readFile(filePath)
: undefined;
const newContent = Buffer.from(
[
`/* prettier-ignore-start */`,
``,
@ -56,6 +61,11 @@ export async function generateKcGenTs(params: {
`/* prettier-ignore-end */`
].join("\n"),
"utf8"
)
);
if (currentContent !== undefined && currentContent.equals(newContent)) {
return;
}
await fs.writeFile(filePath, newContent);
}