diff --git a/packages/form-core/package.json b/packages/form-core/package.json index 87850df90..fc45a0e0a 100644 --- a/packages/form-core/package.json +++ b/packages/form-core/package.json @@ -34,6 +34,7 @@ "module": "dist/esm/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" @@ -58,6 +59,7 @@ "devDependencies": { "arktype": "^2.1.22", "valibot": "^1.1.0", - "zod": "^3.25.76" + "zod": "^3.25.76", + "vite-tsconfig-paths": "^5.1.4" } } diff --git a/packages/form-core/tsconfig.json b/packages/form-core/tsconfig.json index 328e2f243..deb8fc224 100644 --- a/packages/form-core/tsconfig.json +++ b/packages/form-core/tsconfig.json @@ -1,8 +1,10 @@ { "extends": "../../tsconfig.json", "compilerOptions": { + "rootDir": ".", + "outDir": "./dist", + "moduleResolution": "Bundler" - // "noErrorTruncation": true }, - "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] + "include": ["src", "tests", "*.config.*", "package.json"] } diff --git a/packages/form-core/tsconfig.prod.json b/packages/form-core/tsconfig.prod.json new file mode 100644 index 000000000..0f4c92da0 --- /dev/null +++ b/packages/form-core/tsconfig.prod.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "incremental": false, + "composite": false, + "rootDir": "../../" + } +} diff --git a/packages/form-core/vite.config.ts b/packages/form-core/vite.config.ts index 6334a53d9..d9f548a73 100644 --- a/packages/form-core/vite.config.ts +++ b/packages/form-core/vite.config.ts @@ -1,8 +1,29 @@ import { defineConfig, mergeConfig } from 'vitest/config' +import tsconfigPaths from 'vite-tsconfig-paths' + import { tanstackViteConfig } from '@tanstack/config/vite' import packageJson from './package.json' const config = defineConfig({ + plugins: [ + tsconfigPaths({ + projects: ['./tsconfig.prod.json'], + }), + ], + + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, + }, + + // tests test: { name: packageJson.name, dir: './tests', diff --git a/packages/react-form/package.json b/packages/react-form/package.json index aebb9f9e7..a9bbaaccc 100644 --- a/packages/react-form/package.json +++ b/packages/react-form/package.json @@ -34,6 +34,7 @@ "module": "dist/esm/index.js", "exports": { ".": { + "@tanstack/custom-condition": "./src/index.ts", "import": { "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" diff --git a/packages/react-form/tsconfig.json b/packages/react-form/tsconfig.json index 52d4fd7bb..987b25706 100644 --- a/packages/react-form/tsconfig.json +++ b/packages/react-form/tsconfig.json @@ -1,11 +1,13 @@ { "extends": "../../tsconfig.json", "compilerOptions": { + "rootDir": ".", + "outDir": "./dist", + "baseUrl": ".", + "jsx": "react-jsx", - "moduleResolution": "Bundler", - "paths": { - "@tanstack/form-core": ["../form-core/src"] - } + "moduleResolution": "Bundler" }, - "include": ["src", "tests", "eslint.config.js", "vite.config.ts"] + "include": ["src", "tests", "*.config.*", "package.json"], + "references": [{ "path": "../form-core" }] } diff --git a/packages/react-form/vite.config.ts b/packages/react-form/vite.config.ts index a013e2fbe..a21fdef32 100644 --- a/packages/react-form/vite.config.ts +++ b/packages/react-form/vite.config.ts @@ -14,6 +14,17 @@ const config = defineConfig({ coverage: { enabled: true, provider: 'istanbul', include: ['src/**/*'] }, typecheck: { enabled: true }, }, + // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + environments: { + ssr: { + resolve: { + conditions: ['@tanstack/custom-condition'], + }, + }, + }, }) export default mergeConfig( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ffb950f6..0190b65f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1193,6 +1193,9 @@ importers: valibot: specifier: ^1.1.0 version: 1.1.0(typescript@5.9.3) + vite-tsconfig-paths: + specifier: ^5.1.4 + version: 5.1.4(typescript@5.9.3)(vite@7.1.11(@types/node@24.1.0)(jiti@2.6.1)(less@4.4.0)(sass@1.90.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.43.1)(tsx@4.19.4)(yaml@2.8.1)) zod: specifier: ^3.25.76 version: 3.25.76 @@ -21767,6 +21770,10 @@ snapshots: optionalDependencies: typescript: 5.8.2 + tsconfck@3.1.6(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -22268,6 +22275,17 @@ snapshots: - supports-color - typescript + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.11(@types/node@24.1.0)(jiti@2.6.1)(less@4.4.0)(sass@1.90.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.43.1)(tsx@4.19.4)(yaml@2.8.1)): + dependencies: + debug: 4.4.3 + globrex: 0.1.2 + tsconfck: 3.1.6(typescript@5.9.3) + optionalDependencies: + vite: 7.1.11(@types/node@24.1.0)(jiti@2.6.1)(less@4.4.0)(sass@1.90.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.43.1)(tsx@4.19.4)(yaml@2.8.1) + transitivePeerDependencies: + - supports-color + - typescript + vite@5.4.19(@types/node@24.1.0)(less@4.4.0)(sass@1.90.0)(sugarss@5.0.1(postcss@8.5.6))(terser@5.43.1): dependencies: esbuild: 0.21.5 diff --git a/tsconfig.json b/tsconfig.json index 3d559fb64..b2aa0b38c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,14 +6,19 @@ "allowUnreachableCode": false, "allowUnusedLabels": false, "checkJs": true, + "composite": true, + "customConditions": ["@tanstack/custom-condition"], "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, + "incremental": true, "isolatedModules": true, "lib": ["DOM", "DOM.Iterable", "ES2022"], "module": "ES2022", "moduleResolution": "Bundler", - "noEmit": true, + "noEmit": false, "noImplicitReturns": true, "noUncheckedIndexedAccess": true, "noUnusedLocals": false, // TODO enable