From 6429dde310941949b0576f42c9901b03dbd1ac5a Mon Sep 17 00:00:00 2001 From: Lachlan Collins <1667261+lachlancollins@users.noreply.github.com> Date: Thu, 20 Jun 2024 13:10:42 +1000 Subject: [PATCH] chore: Tidy up solid-form build, use tsc for lit-form --- packages/angular-form/tsconfig.json | 1 - packages/lit-form/.eslintrc.cjs | 2 +- packages/lit-form/package.json | 16 ++++++---------- .../lit-form/{src => }/tests/simple.test.ts | 3 ++- packages/lit-form/{src => }/tests/simple.ts | 4 ++-- packages/lit-form/tsconfig.build.json | 12 ++++++++++++ packages/lit-form/tsconfig.eslint.json | 7 ------- packages/lit-form/tsconfig.json | 9 ++------- packages/lit-form/vite.config.ts | 18 +++++------------- packages/solid-form/package.json | 1 + .../{src => }/tests/createField.test-d.tsx | 2 +- .../{src => }/tests/createField.test.tsx | 6 +++--- .../{src => }/tests/createForm.test.tsx | 4 ++-- packages/solid-form/{src => }/tests/utils.ts | 0 packages/solid-form/tsconfig.build.json | 13 ++++++------- packages/solid-form/tsconfig.json | 4 ++-- packages/solid-form/tsconfig.legacy.json | 3 +-- packages/solid-form/vite.config.ts | 19 +++++-------------- 18 files changed, 51 insertions(+), 73 deletions(-) rename packages/lit-form/{src => }/tests/simple.test.ts (95%) rename packages/lit-form/{src => }/tests/simple.ts (97%) create mode 100644 packages/lit-form/tsconfig.build.json delete mode 100644 packages/lit-form/tsconfig.eslint.json rename packages/solid-form/{src => }/tests/createField.test-d.tsx (96%) rename packages/solid-form/{src => }/tests/createField.test.tsx (99%) rename packages/solid-form/{src => }/tests/createForm.test.tsx (99%) rename packages/solid-form/{src => }/tests/utils.ts (100%) diff --git a/packages/angular-form/tsconfig.json b/packages/angular-form/tsconfig.json index 69a13789f..34f210a0e 100644 --- a/packages/angular-form/tsconfig.json +++ b/packages/angular-form/tsconfig.json @@ -11,7 +11,6 @@ "experimentalDecorators": true, "moduleResolution": "node", "module": "ES2022", - "types": ["vitest/globals"], "paths": { "@tanstack/form-core": ["../form-core/src"] } diff --git a/packages/lit-form/.eslintrc.cjs b/packages/lit-form/.eslintrc.cjs index e0ee3beb4..31c1c4501 100644 --- a/packages/lit-form/.eslintrc.cjs +++ b/packages/lit-form/.eslintrc.cjs @@ -5,7 +5,7 @@ const config = { extends: ['plugin:react/recommended', 'plugin:react-hooks/recommended'], parserOptions: { tsconfigRootDir: __dirname, - project: './tsconfig.eslint.json', + project: './tsconfig.json', }, rules: { 'react/jsx-key': ['error', { checkFragmentShorthand: true }], diff --git a/packages/lit-form/package.json b/packages/lit-form/package.json index 22866d80f..166a738db 100644 --- a/packages/lit-form/package.json +++ b/packages/lit-form/package.json @@ -18,25 +18,21 @@ "test:lib": "vitest", "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict", - "build": "vite build" + "build": "tsc -p tsconfig.build.json" }, "files": [ "dist", "src" ], "type": "module", - "types": "dist/esm/index.d.ts", - "main": "dist/cjs/index.cjs", - "module": "dist/esm/index.js", + "types": "dist/index.d.ts", + "main": "dist/index.js", + "module": "dist/index.js", "exports": { ".": { "import": { - "types": "./dist/esm/index.d.ts", - "default": "./dist/esm/index.js" - }, - "require": { - "types": "./dist/cjs/index.d.cts", - "default": "./dist/cjs/index.cjs" + "types": "./dist/index.d.ts", + "default": "./dist/index.js" } }, "./package.json": "./package.json" diff --git a/packages/lit-form/src/tests/simple.test.ts b/packages/lit-form/tests/simple.test.ts similarity index 95% rename from packages/lit-form/src/tests/simple.test.ts rename to packages/lit-form/tests/simple.test.ts index 8881a4426..3c27ac8d7 100644 --- a/packages/lit-form/src/tests/simple.test.ts +++ b/packages/lit-form/tests/simple.test.ts @@ -1,6 +1,7 @@ /// +import { afterEach, beforeEach, describe, expect, it } from 'vitest' import '@testing-library/jest-dom' -import userEvent from '@testing-library/user-event' +import { userEvent } from '@testing-library/user-event' import { TestForm, sampleData } from './simple' window.customElements.define('test-form', TestForm) diff --git a/packages/lit-form/src/tests/simple.ts b/packages/lit-form/tests/simple.ts similarity index 97% rename from packages/lit-form/src/tests/simple.ts rename to packages/lit-form/tests/simple.ts index 5e79935bf..9d143dbd2 100644 --- a/packages/lit-form/src/tests/simple.ts +++ b/packages/lit-form/tests/simple.ts @@ -1,6 +1,6 @@ import { LitElement, html } from 'lit' -import { TanStackFormController } from '../index.js' -import type { FieldApi, FormOptions } from '../index.js' +import { TanStackFormController } from '../src/index.js' +import type { FieldApi, FormOptions } from '../src/index.js' interface Employee { firstName: string diff --git a/packages/lit-form/tsconfig.build.json b/packages/lit-form/tsconfig.build.json new file mode 100644 index 000000000..f1bd5606f --- /dev/null +++ b/packages/lit-form/tsconfig.build.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "moduleResolution": "Bundler", + "rootDir": "src", + "outDir": "dist", + "noEmit": false, + "declaration": true, + "sourceMap": true + }, + "include": ["src"] +} diff --git a/packages/lit-form/tsconfig.eslint.json b/packages/lit-form/tsconfig.eslint.json deleted file mode 100644 index bd0895c40..000000000 --- a/packages/lit-form/tsconfig.eslint.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "noEmit": true - }, - "include": ["**/*.ts", ".eslintrc.cjs", "tsup.config.js"] -} diff --git a/packages/lit-form/tsconfig.json b/packages/lit-form/tsconfig.json index dfdf1d959..848acbd5f 100644 --- a/packages/lit-form/tsconfig.json +++ b/packages/lit-form/tsconfig.json @@ -1,12 +1,7 @@ { - "composite": true, "extends": "../../tsconfig.json", "compilerOptions": { - "lib": ["DOM"], - "outDir": "./build/lib", - "module": "ESNext", - "moduleResolution": "bundler", - "types": ["vitest/globals"] + "moduleResolution": "Bundler" }, - "include": ["src"] + "include": ["src", "tests", ".eslintrc.cjs", "vite.config.ts"] } diff --git a/packages/lit-form/vite.config.ts b/packages/lit-form/vite.config.ts index 65d17b25d..8de48919a 100644 --- a/packages/lit-form/vite.config.ts +++ b/packages/lit-form/vite.config.ts @@ -1,10 +1,10 @@ -import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { defineConfig } from 'vitest/config' +import packageJson from './package.json' -const config = defineConfig({ +export default defineConfig({ test: { - name: 'lit-form', - dir: './src', + name: packageJson.name, + dir: './tests', watch: false, environment: 'jsdom', globals: true, @@ -12,11 +12,3 @@ const config = defineConfig({ typecheck: { enabled: true }, }, }) -export default mergeConfig( - config, - tanstackBuildConfig({ - entry: './src/index.ts', - srcDir: './src', - exclude: ['./src/tests'], - }), -) diff --git a/packages/solid-form/package.json b/packages/solid-form/package.json index 1ef1eb8a2..58ef15f2f 100644 --- a/packages/solid-form/package.json +++ b/packages/solid-form/package.json @@ -32,6 +32,7 @@ ], "type": "module", "types": "dist/index.d.ts", + "main": "dist/index.js", "module": "dist/index.js", "exports": { ".": { diff --git a/packages/solid-form/src/tests/createField.test-d.tsx b/packages/solid-form/tests/createField.test-d.tsx similarity index 96% rename from packages/solid-form/src/tests/createField.test-d.tsx rename to packages/solid-form/tests/createField.test-d.tsx index 8e691f0fe..58f48b44c 100644 --- a/packages/solid-form/src/tests/createField.test-d.tsx +++ b/packages/solid-form/tests/createField.test-d.tsx @@ -1,5 +1,5 @@ import { assertType, it } from 'vitest' -import { createForm } from '../createForm' +import { createForm } from '../src/createForm' it('should type state.value properly', () => { function Comp() { diff --git a/packages/solid-form/src/tests/createField.test.tsx b/packages/solid-form/tests/createField.test.tsx similarity index 99% rename from packages/solid-form/src/tests/createField.test.tsx rename to packages/solid-form/tests/createField.test.tsx index 6a13d78e4..d2e8df123 100644 --- a/packages/solid-form/src/tests/createField.test.tsx +++ b/packages/solid-form/tests/createField.test.tsx @@ -1,9 +1,9 @@ import { describe, expect, it, vi } from 'vitest' import { render, waitFor } from '@solidjs/testing-library' -import userEvent from '@testing-library/user-event' +import { userEvent } from '@testing-library/user-event' import '@testing-library/jest-dom/vitest' -import { Index, Show, createEffect } from 'solid-js' -import { createForm } from '../index' +import { Index, Show } from 'solid-js' +import { createForm } from '../src/index' import { sleep } from './utils' const user = userEvent.setup() diff --git a/packages/solid-form/src/tests/createForm.test.tsx b/packages/solid-form/tests/createForm.test.tsx similarity index 99% rename from packages/solid-form/src/tests/createForm.test.tsx rename to packages/solid-form/tests/createForm.test.tsx index cff91026b..1076f2503 100644 --- a/packages/solid-form/src/tests/createForm.test.tsx +++ b/packages/solid-form/tests/createForm.test.tsx @@ -1,8 +1,8 @@ import { describe, expect, it, vi } from 'vitest' import { render, screen, waitFor } from '@solidjs/testing-library' -import userEvent from '@testing-library/user-event' +import { userEvent } from '@testing-library/user-event' import { Show, createSignal, onCleanup } from 'solid-js' -import { createForm } from '../index' +import { createForm } from '../src/index' import { sleep } from './utils' import type { ValidationErrorMap } from '@tanstack/form-core' diff --git a/packages/solid-form/src/tests/utils.ts b/packages/solid-form/tests/utils.ts similarity index 100% rename from packages/solid-form/src/tests/utils.ts rename to packages/solid-form/tests/utils.ts diff --git a/packages/solid-form/tsconfig.build.json b/packages/solid-form/tsconfig.build.json index fb799aeb7..1fe6972f2 100644 --- a/packages/solid-form/tsconfig.build.json +++ b/packages/solid-form/tsconfig.build.json @@ -4,15 +4,14 @@ "jsx": "preserve", "jsxImportSource": "solid-js", "moduleResolution": "Bundler", - "paths": { - "@tanstack/form-core": ["../../form-core/src"] - }, + "rootDir": "src", "outDir": "dist", "noEmit": false, "declaration": true, - "rootDir": "src", - "sourceMap": true + "sourceMap": true, + "paths": { + "@tanstack/form-core": ["../../form-core/src"] + } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/solid-form/tsconfig.json b/packages/solid-form/tsconfig.json index e695d4190..e585aa5c8 100644 --- a/packages/solid-form/tsconfig.json +++ b/packages/solid-form/tsconfig.json @@ -9,8 +9,8 @@ } }, "include": [ - "src/**/*.ts", - "src/**/*.tsx", + "src", + "tests", ".eslintrc.cjs", "test-setup.ts", "vite.config.ts" diff --git a/packages/solid-form/tsconfig.legacy.json b/packages/solid-form/tsconfig.legacy.json index 0041e6679..7de52e069 100644 --- a/packages/solid-form/tsconfig.legacy.json +++ b/packages/solid-form/tsconfig.legacy.json @@ -8,6 +8,5 @@ "@tanstack/form-core": ["../form-core/src"] } }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["src/tests/**"] + "include": ["src"] } diff --git a/packages/solid-form/vite.config.ts b/packages/solid-form/vite.config.ts index 013a9a280..c26e9fc92 100644 --- a/packages/solid-form/vite.config.ts +++ b/packages/solid-form/vite.config.ts @@ -1,12 +1,12 @@ -import { defineConfig, mergeConfig } from 'vitest/config' -import { tanstackBuildConfig } from '@tanstack/config/build' +import { defineConfig } from 'vitest/config' import solid from 'vite-plugin-solid' +import packageJson from './package.json' -const config = defineConfig({ +export default defineConfig({ plugins: [solid()], test: { - name: 'solid-form', - dir: './src', + name: packageJson.name, + dir: './tests', watch: false, environment: 'jsdom', setupFiles: ['test-setup.ts'], @@ -14,12 +14,3 @@ const config = defineConfig({ typecheck: { enabled: true }, }, }) - -export default mergeConfig( - config, - tanstackBuildConfig({ - entry: './src/index.ts', - srcDir: './src', - exclude: ['./src/tests'], - }), -)