From d6799829497c79a36c31504b50dc04484a53adb0 Mon Sep 17 00:00:00 2001 From: Jacob Marshall Date: Sun, 23 Feb 2025 13:17:23 +0000 Subject: [PATCH] feat(env): setup env prefix and typescript for client-side (#584) --- examples/tuono-app/.gitignore | 3 +++ examples/tuono-app/tsconfig.json | 1 + examples/tuono-tutorial/.gitignore | 3 +++ examples/tuono-tutorial/src/css-modules.d.ts | 4 ---- examples/tuono-tutorial/tsconfig.json | 1 + examples/with-mdx/.gitignore | 3 +++ examples/with-mdx/tsconfig.json | 1 + examples/with-tailwind/.gitignore | 3 +++ examples/with-tailwind/tsconfig.json | 1 + packages/tuono/package.json | 3 +++ packages/tuono/src/build-client/index.ts | 1 + packages/tuono/src/build/constants.ts | 1 + packages/tuono/src/build/index.ts | 2 ++ packages/tuono/vite.config.ts | 1 + 14 files changed, 24 insertions(+), 4 deletions(-) delete mode 100644 examples/tuono-tutorial/src/css-modules.d.ts create mode 100644 packages/tuono/src/build-client/index.ts diff --git a/examples/tuono-app/.gitignore b/examples/tuono-app/.gitignore index 071acad0..d3d4458f 100644 --- a/examples/tuono-app/.gitignore +++ b/examples/tuono-app/.gitignore @@ -11,3 +11,6 @@ node_modules .tuono out target + +# Ignore local env files +*.local diff --git a/examples/tuono-app/tsconfig.json b/examples/tuono-app/tsconfig.json index 39d76807..e1bbce25 100644 --- a/examples/tuono-app/tsconfig.json +++ b/examples/tuono-app/tsconfig.json @@ -5,6 +5,7 @@ "lib": ["ES2020", "DOM", "DOM.Iterable"], "module": "ESNext", "skipLibCheck": true, + "types": ["tuono/build-client"], /* Bundler mode */ "moduleResolution": "bundler", diff --git a/examples/tuono-tutorial/.gitignore b/examples/tuono-tutorial/.gitignore index 071acad0..d3d4458f 100644 --- a/examples/tuono-tutorial/.gitignore +++ b/examples/tuono-tutorial/.gitignore @@ -11,3 +11,6 @@ node_modules .tuono out target + +# Ignore local env files +*.local diff --git a/examples/tuono-tutorial/src/css-modules.d.ts b/examples/tuono-tutorial/src/css-modules.d.ts deleted file mode 100644 index 8811db12..00000000 --- a/examples/tuono-tutorial/src/css-modules.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '*.module.css' { - const classes: Record - export default classes -} diff --git a/examples/tuono-tutorial/tsconfig.json b/examples/tuono-tutorial/tsconfig.json index 476f2fde..0a483ca5 100644 --- a/examples/tuono-tutorial/tsconfig.json +++ b/examples/tuono-tutorial/tsconfig.json @@ -5,6 +5,7 @@ "lib": ["ES2020", "DOM", "DOM.Iterable"], "jsx": "react-jsx", "useDefineForClassFields": true, + "types": ["tuono/build-client"], // Modules "module": "ESNext", diff --git a/examples/with-mdx/.gitignore b/examples/with-mdx/.gitignore index 071acad0..d3d4458f 100644 --- a/examples/with-mdx/.gitignore +++ b/examples/with-mdx/.gitignore @@ -11,3 +11,6 @@ node_modules .tuono out target + +# Ignore local env files +*.local diff --git a/examples/with-mdx/tsconfig.json b/examples/with-mdx/tsconfig.json index 39d76807..e1bbce25 100644 --- a/examples/with-mdx/tsconfig.json +++ b/examples/with-mdx/tsconfig.json @@ -5,6 +5,7 @@ "lib": ["ES2020", "DOM", "DOM.Iterable"], "module": "ESNext", "skipLibCheck": true, + "types": ["tuono/build-client"], /* Bundler mode */ "moduleResolution": "bundler", diff --git a/examples/with-tailwind/.gitignore b/examples/with-tailwind/.gitignore index 071acad0..d3d4458f 100644 --- a/examples/with-tailwind/.gitignore +++ b/examples/with-tailwind/.gitignore @@ -11,3 +11,6 @@ node_modules .tuono out target + +# Ignore local env files +*.local diff --git a/examples/with-tailwind/tsconfig.json b/examples/with-tailwind/tsconfig.json index 39d76807..e1bbce25 100644 --- a/examples/with-tailwind/tsconfig.json +++ b/examples/with-tailwind/tsconfig.json @@ -5,6 +5,7 @@ "lib": ["ES2020", "DOM", "DOM.Iterable"], "module": "ESNext", "skipLibCheck": true, + "types": ["tuono/build-client"], /* Bundler mode */ "moduleResolution": "bundler", diff --git a/packages/tuono/package.json b/packages/tuono/package.json index 0eb2b047..6a128bea 100644 --- a/packages/tuono/package.json +++ b/packages/tuono/package.json @@ -27,6 +27,9 @@ "types": "./dist/esm/build/index.d.ts", "default": "./dist/esm/build/index.js" }, + "./build-client": { + "types": "./dist/esm/build-client/index.d.ts" + }, "./config": { "types": "./dist/esm/config/index.d.ts", "default": "./dist/esm/config/index.js" diff --git a/packages/tuono/src/build-client/index.ts b/packages/tuono/src/build-client/index.ts new file mode 100644 index 00000000..5597b4fb --- /dev/null +++ b/packages/tuono/src/build-client/index.ts @@ -0,0 +1 @@ +import 'vite/client' diff --git a/packages/tuono/src/build/constants.ts b/packages/tuono/src/build/constants.ts index c298bebd..da24c614 100644 --- a/packages/tuono/src/build/constants.ts +++ b/packages/tuono/src/build/constants.ts @@ -2,3 +2,4 @@ export const DOT_TUONO_FOLDER_NAME = '.tuono' export const CONFIG_FOLDER_NAME = 'config' export const CONFIG_FILE_NAME = 'config.mjs' export const SERVER_CONFIG_NAME = 'config.json' +export const ENV_PREFIX = 'TUONO_PUBLIC_' diff --git a/packages/tuono/src/build/index.ts b/packages/tuono/src/build/index.ts index 44188174..25b0db7e 100644 --- a/packages/tuono/src/build/index.ts +++ b/packages/tuono/src/build/index.ts @@ -8,6 +8,7 @@ import type { TuonoConfig } from '../config' import { blockingAsync } from './utils' import { createJsonConfig, loadConfig } from './config' +import { ENV_PREFIX } from './constants' const VITE_SSR_PLUGINS: Array = [ { @@ -45,6 +46,7 @@ function createBaseViteConfigFromTuonoConfig( publicDir: '../public', cacheDir: 'cache', envDir: '../', + envPrefix: ENV_PREFIX, resolve: { alias: tuonoConfig.vite?.alias ?? {}, diff --git a/packages/tuono/vite.config.ts b/packages/tuono/vite.config.ts index d131d7ee..f1bca04d 100644 --- a/packages/tuono/vite.config.ts +++ b/packages/tuono/vite.config.ts @@ -13,6 +13,7 @@ export default mergeConfig( './src/index.ts', './src/build/index.ts', './src/config/index.ts', + './src/build-client/index.ts', './src/ssr/index.ts', './src/hydration/index.tsx', ],