## Summary Add mount-lifetime layer provisioning through `Component.provide` and improve mutation state handling. ## Changes - Add dual-form `Component.provide` support for direct and pipeline usage. - Build provided layers once per mounted component and release them on unmount. - Refactor mutation state to retain mutation keys and finalized results. - Add non-blocking `mutateView` behavior and failure-state handling. - Update `MutationForm` to use the new mutation state shape. - Add Component and Mutation tests. - Update documentation and the lens form example. - Bump `effect-view` to `0.1.4`. ## Testing - `bun run --cwd packages/effect-view test` - 7 test files passed, 32 tests passed. --------- Co-authored-by: Julien Valverdé <julien.valverde@mailo.com> Reviewed-on: #73
119 lines
2.9 KiB
JSON
119 lines
2.9 KiB
JSON
{
|
|
"name": "effect-view",
|
|
"description": "Write React function components with Effect",
|
|
"version": "0.1.4",
|
|
"type": "module",
|
|
"files": [
|
|
"./README.md",
|
|
"./src/**/*.ts",
|
|
"./dist/**/*.js",
|
|
"./dist/**/*.js.map",
|
|
"./dist/**/*.d.ts"
|
|
],
|
|
"license": "MIT",
|
|
"repository": {
|
|
"url": "git+https://github.com/Thiladev/effect-view.git"
|
|
},
|
|
"types": "./dist/index.d.ts",
|
|
"exports": {
|
|
".": {
|
|
"types": "./dist/index.d.ts",
|
|
"default": "./dist/index.js"
|
|
},
|
|
"./Async": {
|
|
"types": "./dist/Async.d.ts",
|
|
"default": "./dist/Async.js"
|
|
},
|
|
"./Component": {
|
|
"types": "./dist/Component.d.ts",
|
|
"default": "./dist/Component.js"
|
|
},
|
|
"./Form": {
|
|
"types": "./dist/Form.d.ts",
|
|
"default": "./dist/Form.js"
|
|
},
|
|
"./Lens": {
|
|
"types": "./dist/Lens.d.ts",
|
|
"default": "./dist/Lens.js"
|
|
},
|
|
"./LensForm": {
|
|
"types": "./dist/LensForm.d.ts",
|
|
"default": "./dist/LensForm.js"
|
|
},
|
|
"./Memoized": {
|
|
"types": "./dist/Memoized.d.ts",
|
|
"default": "./dist/Memoized.js"
|
|
},
|
|
"./Mutation": {
|
|
"types": "./dist/Mutation.d.ts",
|
|
"default": "./dist/Mutation.js"
|
|
},
|
|
"./MutationForm": {
|
|
"types": "./dist/MutationForm.d.ts",
|
|
"default": "./dist/MutationForm.js"
|
|
},
|
|
"./PubSub": {
|
|
"types": "./dist/PubSub.d.ts",
|
|
"default": "./dist/PubSub.js"
|
|
},
|
|
"./Query": {
|
|
"types": "./dist/Query.d.ts",
|
|
"default": "./dist/Query.js"
|
|
},
|
|
"./QueryClient": {
|
|
"types": "./dist/QueryClient.d.ts",
|
|
"default": "./dist/QueryClient.js"
|
|
},
|
|
"./ReactRuntime": {
|
|
"types": "./dist/ReactRuntime.d.ts",
|
|
"default": "./dist/ReactRuntime.js"
|
|
},
|
|
"./Refreshable": {
|
|
"types": "./dist/Refreshable.d.ts",
|
|
"default": "./dist/Refreshable.js"
|
|
},
|
|
"./ScopeRegistry": {
|
|
"types": "./dist/ScopeRegistry.d.ts",
|
|
"default": "./dist/ScopeRegistry.js"
|
|
},
|
|
"./SetStateAction": {
|
|
"types": "./dist/SetStateAction.d.ts",
|
|
"default": "./dist/SetStateAction.js"
|
|
},
|
|
"./Stream": {
|
|
"types": "./dist/Stream.d.ts",
|
|
"default": "./dist/Stream.js"
|
|
},
|
|
"./View": {
|
|
"types": "./dist/View.d.ts",
|
|
"default": "./dist/View.js"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"lint:tsc": "tsc -b --noEmit",
|
|
"lint:biome": "biome lint",
|
|
"test": "vitest run",
|
|
"build": "tsc -b tsconfig.build.json",
|
|
"pack": "npm pack",
|
|
"clean:cache": "rm -rf .turbo *.tsbuildinfo",
|
|
"clean:dist": "rm -rf dist",
|
|
"clean:modules": "rm -rf node_modules"
|
|
},
|
|
"devDependencies": {
|
|
"@effect/platform-browser": "4.0.0-rc.109",
|
|
"@testing-library/react": "^16.3.0",
|
|
"effect": "4.0.0-rc.109",
|
|
"jsdom": "^26.1.0",
|
|
"vitest": "^3.2.4"
|
|
},
|
|
"peerDependencies": {
|
|
"@types/react": "^19.2.0",
|
|
"effect": "4.0.0-rc.109",
|
|
"react": "^19.2.0"
|
|
},
|
|
"dependencies": {
|
|
"@standard-schema/spec": "^1.1.0",
|
|
"effect-lens": "2.0.1-rc.109"
|
|
}
|
|
}
|