make client env strict (#615)

* make client env strict

* export env

* add types for start package

* fix typecheck

Co-authored-by: Ryan Carniato <ryansolid@gmail.com>
fix-build-duplicate-code
OrJDev 1 year ago committed by GitHub
parent 0efce885d5
commit b24ce3a049
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -8,7 +8,7 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -8,7 +8,7 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client"],
"types": ["solid-start/env"],
"paths": {
"~/*": ["./src/*"]
}

@ -7,7 +7,7 @@
"moduleResolution": "node",
"jsxImportSource": "solid-js",
"jsx": "preserve",
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -8,7 +8,7 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -8,7 +8,7 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -8,7 +8,7 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -8,7 +8,7 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -8,7 +8,7 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -8,11 +8,11 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client", "@testing-library/jest-dom"],
"types": ["solid-start/env", "@testing-library/jest-dom"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]
},
}
},
"types": ["vitest"]
}

@ -8,7 +8,7 @@
"jsxImportSource": "solid-js",
"jsx": "preserve",
"strict": true,
"types": ["vite/client", "dom", "@cloudflare/workers-types"],
"types": ["solid-start/env", "dom", "@cloudflare/workers-types"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -200,7 +200,7 @@ export default async function () {
lib: ["lib.dom.d.ts", "lib.es2015.d.ts"],
jsxImportSource: "solid-js",
jsx: "preserve",
types: ["vite/client"],
types: ["solid-start/env"],
paths: {
"~/*": ["./src/*"]
}

@ -0,0 +1,282 @@
// 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 */
interface ImportMetaEnv extends Record<`VITE_${string}`, any>, SolidStartMetaEnv {
BASE_URL: string;
MODE: string;
DEV: boolean;
PROD: boolean;
SSR: boolean;
}
interface SolidStartMetaEnv {
START_ISLANDS_ROUTER: string;
START_INDEX_HTML: string;
START_ENTRY_CLIENT: string;
START_SSR: string;
START_ISLANDS: string;
START_ENTRY_SERVER: string;
DEBUG: 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;
}
// CSS modules
type CSSModuleClasses = { readonly [key: string]: string };
declare module "*.module.css" {
const classes: CSSModuleClasses;
export default classes;
}
declare module "*.module.scss" {
const classes: CSSModuleClasses;
export default classes;
}
declare module "*.module.sass" {
const classes: CSSModuleClasses;
export default classes;
}
declare module "*.module.less" {
const classes: CSSModuleClasses;
export default classes;
}
declare module "*.module.styl" {
const classes: CSSModuleClasses;
export default classes;
}
declare module "*.module.stylus" {
const classes: CSSModuleClasses;
export default classes;
}
declare module "*.module.pcss" {
const classes: CSSModuleClasses;
export default classes;
}
declare module "*.module.sss" {
const classes: CSSModuleClasses;
export default classes;
}
// CSS
declare module "*.css" {
const css: string;
export default css;
}
declare module "*.scss" {
const css: string;
export default css;
}
declare module "*.sass" {
const css: string;
export default css;
}
declare module "*.less" {
const css: string;
export default css;
}
declare module "*.styl" {
const css: string;
export default css;
}
declare module "*.stylus" {
const css: string;
export default css;
}
declare module "*.pcss" {
const css: string;
export default css;
}
declare module "*.sss" {
const css: string;
export default css;
}
// Built-in asset types
// see `src/node/constants.ts`
// images
declare module "*.png" {
const src: string;
export default src;
}
declare module "*.jpg" {
const src: string;
export default src;
}
declare module "*.jpeg" {
const src: string;
export default src;
}
declare module "*.jfif" {
const src: string;
export default src;
}
declare module "*.pjpeg" {
const src: string;
export default src;
}
declare module "*.pjp" {
const src: string;
export default src;
}
declare module "*.gif" {
const src: string;
export default src;
}
declare module "*.svg" {
const src: string;
export default src;
}
declare module "*.ico" {
const src: string;
export default src;
}
declare module "*.webp" {
const src: string;
export default src;
}
declare module "*.avif" {
const src: string;
export default src;
}
// media
declare module "*.mp4" {
const src: string;
export default src;
}
declare module "*.webm" {
const src: string;
export default src;
}
declare module "*.ogg" {
const src: string;
export default src;
}
declare module "*.mp3" {
const src: string;
export default src;
}
declare module "*.wav" {
const src: string;
export default src;
}
declare module "*.flac" {
const src: string;
export default src;
}
declare module "*.aac" {
const src: string;
export default src;
}
// fonts
declare module "*.woff" {
const src: string;
export default src;
}
declare module "*.woff2" {
const src: string;
export default src;
}
declare module "*.eot" {
const src: string;
export default src;
}
declare module "*.ttf" {
const src: string;
export default src;
}
declare module "*.otf" {
const src: string;
export default src;
}
// other
declare module "*.webmanifest" {
const src: string;
export default src;
}
declare module "*.pdf" {
const src: string;
export default src;
}
declare module "*.txt" {
const src: string;
export default src;
}
// wasm?init
declare module "*.wasm?init" {
const initWasm: (options: WebAssembly.Imports) => Promise<WebAssembly.Instance>;
export default initWasm;
}
// web worker
declare module "*?worker" {
const workerConstructor: {
new (): Worker;
};
export default workerConstructor;
}
declare module "*?worker&inline" {
const workerConstructor: {
new (): Worker;
};
export default workerConstructor;
}
declare module "*?worker&url" {
const src: string;
export default src;
}
declare module "*?sharedworker" {
const sharedWorkerConstructor: {
new (): SharedWorker;
};
export default sharedWorkerConstructor;
}
declare module "*?sharedworker&inline" {
const sharedWorkerConstructor: {
new (): SharedWorker;
};
export default sharedWorkerConstructor;
}
declare module "*?sharedworker&url" {
const src: string;
export default src;
}
declare module "*?raw" {
const src: string;
export default src;
}
declare module "*?url" {
const src: string;
export default src;
}
declare module "*?inline" {
const src: string;
export default src;
}

@ -32,6 +32,7 @@
"index.tsx",
"router.tsx",
"required-user-files.d.ts",
"env.d.ts",
"types.ts"
],
"scripts": {
@ -71,7 +72,8 @@
"./session": "./session/index.ts",
"./session/*": "./session/*",
"./websocket": "./websocket/index.ts",
"./websocket/*": "./websocket/*"
"./websocket/*": "./websocket/*",
"./env": "./env.d.ts"
},
"dependencies": {
"@babel/core": "^7.19.6",

@ -10,7 +10,7 @@
"moduleResolution": "node",
"jsxImportSource": "solid-js",
"jsx": "preserve",
"types": ["vite/client"],
"types": ["./env"],
"strict": true,
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"paths": {

@ -7,7 +7,7 @@
"moduleResolution": "node",
"jsxImportSource": "solid-js",
"jsx": "preserve",
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

@ -7,7 +7,7 @@
"moduleResolution": "node",
"jsxImportSource": "solid-js",
"jsx": "preserve",
"types": ["vite/client"],
"types": ["solid-start/env"],
"baseUrl": "./",
"paths": {
"~/*": ["./src/*"]

Loading…
Cancel
Save