From ccc05a8ee8b86e410be8e2b10fb425b697606c51 Mon Sep 17 00:00:00 2001 From: imbytecat Date: Sat, 17 Jan 2026 02:12:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E7=AE=A1=E7=90=86=E4=B8=8E=E9=80=9A=E7=94=A8?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 @t3-oss/env-core 依赖并指定其版本及对 peerDependencies 和 optionalPeers 的要求 - 添加 OpenCode 配置文件,定义本地和远程 MCP 服务以支持 shadcn 和 tanstack 工具集成。 - 添加 @t3-oss/env-core 依赖以支持环境变量配置管理 - 使用 t3-oss/env-core 创建环境变量配置,支持服务器和客户端环境变量解析,并启用空字符串转为 undefined。 - 添加工具函数库以支持项目中的通用功能需求 --- bun.lock | 3 +++ opencode.jsonc | 13 +++++++++++++ package.json | 1 + src/env.ts | 15 +++++++++++---- src/lib/utils.ts | 0 5 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 opencode.jsonc create mode 100644 src/lib/utils.ts diff --git a/bun.lock b/bun.lock index ea8d6b4..f405aee 100644 --- a/bun.lock +++ b/bun.lock @@ -5,6 +5,7 @@ "": { "name": "fullstack-starter", "dependencies": { + "@t3-oss/env-core": "^0.13.10", "@tanstack/react-query": "^5.90.18", "@tanstack/react-query-devtools": "^5.91.2", "@tanstack/react-router": "^1.150.0", @@ -388,6 +389,8 @@ "@solid-primitives/utils": ["@solid-primitives/utils@6.3.2", "", { "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ=="], + "@t3-oss/env-core": ["@t3-oss/env-core@0.13.10", "", { "peerDependencies": { "arktype": "^2.1.0", "typescript": ">=5.0.0", "valibot": "^1.0.0-beta.7 || ^1.0.0", "zod": "^3.24.0 || ^4.0.0" }, "optionalPeers": ["arktype", "typescript", "valibot", "zod"] }, "sha512-NNFfdlJ+HmPHkLi2HKy7nwuat9SIYOxei9K10lO2YlcSObDILY7mHZNSHsieIM3A0/5OOzw/P/b+yLvPdaG52g=="], + "@tailwindcss/node": ["@tailwindcss/node@4.1.18", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.18" } }, "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ=="], "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.18", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.18", "@tailwindcss/oxide-darwin-arm64": "4.1.18", "@tailwindcss/oxide-darwin-x64": "4.1.18", "@tailwindcss/oxide-freebsd-x64": "4.1.18", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", "@tailwindcss/oxide-linux-x64-musl": "4.1.18", "@tailwindcss/oxide-wasm32-wasi": "4.1.18", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" } }, "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A=="], diff --git a/opencode.jsonc b/opencode.jsonc new file mode 100644 index 0000000..3724905 --- /dev/null +++ b/opencode.jsonc @@ -0,0 +1,13 @@ +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "shadcn": { + "type": "local", + "command": ["bunx", "--bun", "shadcn", "mcp"] + }, + "tanstack": { + "type": "remote", + "url": "https://tanstack.com/api/mcp" + } + } +} diff --git a/package.json b/package.json index 85dfb9e..30b31e6 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "typecheck": "tsc -b" }, "dependencies": { + "@t3-oss/env-core": "^0.13.10", "@tanstack/react-query": "^5.90.18", "@tanstack/react-query-devtools": "^5.91.2", "@tanstack/react-router": "^1.150.0", diff --git a/src/env.ts b/src/env.ts index 5354b99..2465614 100644 --- a/src/env.ts +++ b/src/env.ts @@ -1,7 +1,14 @@ +import { createEnv } from '@t3-oss/env-core' import { z } from 'zod' -const envSchema = z.object({ - DATABASE_URL: z.url(), +export const env = createEnv({ + server: { + DATABASE_URL: z.url(), + }, + clientPrefix: 'VITE_', + client: { + VITE_APP_TITLE: z.string().min(1).optional(), + }, + runtimeEnv: import.meta.env, + emptyStringAsUndefined: true, }) - -export const env = envSchema.parse(process.env) diff --git a/src/lib/utils.ts b/src/lib/utils.ts new file mode 100644 index 0000000..e69de29