Skip to content

Commit

Permalink
Fix env.d.ts switching back between types on every restart when ass…
Browse files Browse the repository at this point in the history
…ets are enabled (#6532)

* fix(assets): Fix assets types reverting back on every dev server starts

* chore: changeset
  • Loading branch information
Princesseuh committed Mar 13, 2023
1 parent acf78c5 commit 637f9bc
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/tough-sheep-grab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'astro': patch
---

Fix `env.d.ts` changing types wrongly on every restart when `experimental.assets` is enabled
9 changes: 8 additions & 1 deletion packages/astro/src/vite-plugin-inject-env-ts/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,18 +49,25 @@ export async function setUpEnvTs({

if (fs.existsSync(envTsPath)) {
let typesEnvContents = await fs.promises.readFile(envTsPath, 'utf-8');

// TODO: Remove this logic in 3.0, as `astro/client-image` will be merged into `astro/client`
if (settings.config.experimental.assets && typesEnvContents.includes('types="astro/client"')) {
typesEnvContents = typesEnvContents.replace(
'types="astro/client"',
'types="astro/client-image"'
);
await fs.promises.writeFile(envTsPath, typesEnvContents, 'utf-8');
} else if (typesEnvContents.includes('types="astro/client-image"')) {
info(logging, 'assets', `Added ${bold(envTsPathRelativetoRoot)} types`);
} else if (
!settings.config.experimental.assets &&
typesEnvContents.includes('types="astro/client-image"')
) {
typesEnvContents = typesEnvContents.replace(
'types="astro/client-image"',
'types="astro/client"'
);
await fs.promises.writeFile(envTsPath, typesEnvContents, 'utf-8');
info(logging, 'assets', `Removed ${bold(envTsPathRelativetoRoot)} types`);
}

if (!fs.existsSync(dotAstroDir))
Expand Down

0 comments on commit 637f9bc

Please sign in to comment.