Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/add-examples.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/biome-lint.md

This file was deleted.

10 changes: 0 additions & 10 deletions .changeset/build-config-cleanup.md

This file was deleted.

11 changes: 0 additions & 11 deletions .changeset/core-unit-tests.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/esm-only-policy.md

This file was deleted.

10 changes: 0 additions & 10 deletions .changeset/path-key-and-immer-docs.md

This file was deleted.

13 changes: 0 additions & 13 deletions .changeset/svelte-use-field.md

This file was deleted.

42 changes: 42 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,47 @@
# @ilokesto/form

## 1.0.5

### Patch Changes

- 90950d7: Add Vue/Solid/Svelte login form examples and React validation flow example
- d1a6685: Add Biome linter/formatter with `lint`, `lint:fix`, and `format` scripts. Add CI lint step. Remove `.prettierrc` in favor of Biome configuration.
- d57581c: Build config cleanup: enable sourcemaps, preserve JSDoc in declarations, remove dead vite build config, remove redundant .npmignore.

- `tsconfig.json`: `sourceMap: true` — consumers can now debug into library source.
- `tsconfig.json`: `removeComments: false` — Korean JSDoc preserved in `.d.ts` files, visible in IDE tooltips.
- `vite.config.ts`: removed dead `build.lib` block (production build uses `tsc`, not `vite build`). File now clearly scoped to vitest config only.
- Removed `.npmignore` — `package.json` `files` field already controls published files; `.npmignore` was redundant.

- e71b915: Add dedicated unit tests for core modules.

- `test/core/ValueHelper.test.ts` — covers path-based get/set and values reconstruction.
- `test/core/FormPath.test.ts` — covers path ↔ key conversion and path normalization.
- `test/core/FormStateInitializer.test.ts` — covers defaultValues → FormState initialization.
- `test/core/FormArrayMutationPlanner.test.ts` — covers push, insert, remove, move, swap, and replace planning.
- `test/core/FormArrayRebaser.test.ts` — covers field metadata rebase and arrayKeys updates.

- 3a22eab: Document ESM-only policy in README.

The package is ESM-only (`"type": "module"`, no `require` condition in `exports`). This is now explicitly documented in the Installation section of README.md and README.ko.md, with guidance for CJS consumers (dynamic `import()` or bundler transpilation). No code changes — documentation only.

- 18bd869: Document performance considerations for PathKey encoding and immer dependency.

- README.md/README.ko.md FormPath section: note that `JSON.stringify`/`JSON.parse` could be replaced with NUL-separator encoding for large forms; benchmark before migrating.
- README.md/README.ko.md FormStateWriter section: note that immer (~5KB) could be replaced with spread-based updates for flat record structure; benchmark before migrating.

No code changes — documentation of design decisions and future optimization paths.

- afd7fca: Add `useField` to the Svelte adapter for API parity with React/Vue/Solid.

- `useForm(form).useField(options)` returns `{ props, value, setValue, errors, dirty, touched }` matching the shape of the React, Vue, and Solid `useField` hooks.
- `props` is a Svelte `use:`-compatible register action bound to the field's `RegisterOptions`, so `<input use:field.props />` works directly.
- `value`, `errors`, `dirty`, and `touched` read the latest field state from the core form on every access, staying reactive through the existing `form.subscribe` flow.
- `setValue(value)` updates the field programmatically with `{ source: 'program' }`.
- Field-local `schema` in `RegisterOptions` is supported via the existing register action, with cleanup on action destroy restoring the form-level schema.

Resolves #17

## 1.0.4

### Patch Changes
Expand Down
14 changes: 14 additions & 0 deletions examples/react-validation-flow/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# @ilokesto/form-react-validation-flow-example

## 0.0.1

### Patch Changes

- Updated dependencies [90950d7]
- Updated dependencies [d1a6685]
- Updated dependencies [d57581c]
- Updated dependencies [e71b915]
- Updated dependencies [3a22eab]
- Updated dependencies [18bd869]
- Updated dependencies [afd7fca]
- @ilokesto/form@1.0.5
2 changes: 1 addition & 1 deletion examples/react-validation-flow/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ilokesto/form-react-validation-flow-example",
"version": "0.0.0",
"version": "0.0.1",
"private": true,
"type": "module",
"scripts": {
Expand Down
14 changes: 14 additions & 0 deletions examples/solid-login-form/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# @ilokesto/form-solid-login-example

## 0.0.1

### Patch Changes

- Updated dependencies [90950d7]
- Updated dependencies [d1a6685]
- Updated dependencies [d57581c]
- Updated dependencies [e71b915]
- Updated dependencies [3a22eab]
- Updated dependencies [18bd869]
- Updated dependencies [afd7fca]
- @ilokesto/form@1.0.5
2 changes: 1 addition & 1 deletion examples/solid-login-form/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ilokesto/form-solid-login-example",
"version": "0.0.0",
"version": "0.0.1",
"private": true,
"type": "module",
"scripts": {
Expand Down
14 changes: 14 additions & 0 deletions examples/svelte-login-form/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# @ilokesto/form-svelte-login-example

## 0.0.1

### Patch Changes

- Updated dependencies [90950d7]
- Updated dependencies [d1a6685]
- Updated dependencies [d57581c]
- Updated dependencies [e71b915]
- Updated dependencies [3a22eab]
- Updated dependencies [18bd869]
- Updated dependencies [afd7fca]
- @ilokesto/form@1.0.5
2 changes: 1 addition & 1 deletion examples/svelte-login-form/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ilokesto/form-svelte-login-example",
"version": "0.0.0",
"version": "0.0.1",
"private": true,
"type": "module",
"scripts": {
Expand Down
14 changes: 14 additions & 0 deletions examples/vue-login-form/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# @ilokesto/form-vue-login-example

## 0.0.1

### Patch Changes

- Updated dependencies [90950d7]
- Updated dependencies [d1a6685]
- Updated dependencies [d57581c]
- Updated dependencies [e71b915]
- Updated dependencies [3a22eab]
- Updated dependencies [18bd869]
- Updated dependencies [afd7fca]
- @ilokesto/form@1.0.5
2 changes: 1 addition & 1 deletion examples/vue-login-form/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ilokesto/form-vue-login-example",
"version": "0.0.0",
"version": "0.0.1",
"private": true,
"type": "module",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ilokesto/form",
"version": "1.0.4",
"version": "1.0.5",
"type": "module",
"scripts": {
"build": "rm -rf dist && tsc",
Expand Down