summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Erika <3019731+Princesseuh@users.noreply.github.com> 2022-08-26 12:47:39 -0300
committerGravatar GitHub <noreply@github.com> 2022-08-26 12:47:39 -0300
commit1f42c0791c342740d3650dc04a15c3610f9ab00a (patch)
tree3f703e4e541c5f366ea1aaab50f7960595cda800
parent78e06c8ec01e041e3f78625cb85bcce0cf5be029 (diff)
downloadastro-1f42c0791c342740d3650dc04a15c3610f9ab00a.tar.gz
astro-1f42c0791c342740d3650dc04a15c3610f9ab00a.tar.zst
astro-1f42c0791c342740d3650dc04a15c3610f9ab00a.zip
Vendor Vite's importMeta.d.ts inside our repo to workaround issue with `tsc` on Linux (#4499)
* Update @astrojs/language-server to latest version * Vendor importMeta.d.ts from Vite inside our repo to workaround TypeScript issue on Linux * Remove unnecessary change * Add changeset
-rw-r--r--.changeset/hungry-adults-juggle.md5
-rw-r--r--packages/astro/client-base.d.ts2
-rw-r--r--packages/astro/import-meta.d.ts37
3 files changed, 43 insertions, 1 deletions
diff --git a/.changeset/hungry-adults-juggle.md b/.changeset/hungry-adults-juggle.md
new file mode 100644
index 000000000..c174d7158
--- /dev/null
+++ b/.changeset/hungry-adults-juggle.md
@@ -0,0 +1,5 @@
+---
+'astro': patch
+---
+
+Fix `tsc` not being able to find Vite's import.meta types on Linux
diff --git a/packages/astro/client-base.d.ts b/packages/astro/client-base.d.ts
index 1e65d7f71..1219e150c 100644
--- a/packages/astro/client-base.d.ts
+++ b/packages/astro/client-base.d.ts
@@ -1,4 +1,4 @@
-/// <reference types="vite/types/importMeta" />
+/// <reference path="./import-meta.d.ts" />
// CSS modules
type CSSModuleClasses = { readonly [key: string]: string };
diff --git a/packages/astro/import-meta.d.ts b/packages/astro/import-meta.d.ts
new file mode 100644
index 000000000..2b05d0a65
--- /dev/null
+++ b/packages/astro/import-meta.d.ts
@@ -0,0 +1,37 @@
+// File vendored from Vite itself, as a workaround to https://github.com/vitejs/vite/pull/9827 until Vite 4 comes out
+
+// This file is an augmentation to the built-in ImportMeta interface
+// Thus cannot contain any top-level imports
+// <https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation>
+
+/* eslint-disable @typescript-eslint/consistent-type-imports */
+
+// Duplicate of import('../src/node/importGlob').GlobOptions in order to
+// avoid breaking the production client type. Because this file is referenced
+// in vite/client.d.ts and in production src/node/importGlob.ts doesn't exist.
+interface GlobOptions {
+ as?: string;
+}
+
+interface ImportMeta {
+ url: string;
+
+ readonly hot?: import('vite/types/hot').ViteHotContext;
+
+ readonly env: ImportMetaEnv;
+
+ glob: import('vite/types/importGlob').ImportGlobFunction;
+ /**
+ * @deprecated Use `import.meta.glob('*', { eager: true })` instead
+ */
+ globEager: import('vite/types/importGlob').ImportGlobEagerFunction;
+}
+
+interface ImportMetaEnv {
+ [key: string]: any;
+ BASE_URL: string;
+ MODE: string;
+ DEV: boolean;
+ PROD: boolean;
+ SSR: boolean;
+}