Arsitektur dan pengembangan
Alur source, packaging, pemeriksaan rilis, dan pemeliharaan docs.
Alur render
- src/index.ts mengekspor API publik. src/components/index.tsx mengekspos AutoForm sebagai ErlForm.
- infer.ts membaca Zod menjadi FieldMeta secara rekursif.
- AutoForm.tsx berlangganan values, mengelompokkan section, memfilter langkah wizard, dan menerapkan error server.
- FieldRenderer.tsx mengatur scope/path, state kondisional, layout, clearOnHide, serta dispatch container/input.
- Field.tsx memasang form.Field dan wrapper label/deskripsi/error. FieldControl.tsx memilih custom input atau input native.
- field-array dan field-object menangani struktur data; utils menangani path, resolver, normalisasi error, dan pengelompokan.
Demo library berada di src/demo. tests/types menguji API TypeScript; tests/runtime/release.test.mjs memeriksa inferensi, renderer, dan perilaku rilis. Website docs berada di repository terpisah.
Menjalankan library
corepack enable
pnpm install
pnpm dev
pnpm checkGunakan Node.js 22 dan pnpm 10.19.0 sesuai package source. check menjalankan typecheck, lint, build tsup, dan runtime tests. pnpm build:app membangun demo Vite; pnpm build membangun package. prepublishOnly menjalankan check.
Package
Output ESM berada di dist/index.js dengan deklarasi dist/index.d.ts dan source map. React, React DOM, TanStack Form, dan Zod dieksternalkan oleh bundler. CSS disisipkan oleh build; package menandai CSS sebagai side effect. Hanya entry point package utama yang diekspor.
Memelihara dokumentasi
Konten publik ada di content/docs, demo React di components, navigasi di meta.json, dan redirect di next.config.mjs. Halaman ini mengikuti source library versi 1.0.0, termasuk batasan renderer yang belum tercermin hanya dari tipe.
npm install
npm run fumadocs-build
npm run lintfumadocs-build menghasilkan modul MDX sebelum build Next.js. Saat menambah fitur, periksa ekspor, tipe konfigurasi, inferensi, renderer, demo, serta tests library sebelum mengubah dokumentasi. Contoh lengkap harus menyertakan useForm dalam komponen, HTML form, handler submit, defaultValues, dan validator.