From 85e7b549624200ab3bf315bf52e72720203341b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 24 Feb 2025 21:24:38 +0100 Subject: [PATCH] extension-lazyref --- bun.lock | 11 ++++++++ packages/extension-lazyref/README.md | 12 ++++++++ packages/extension-lazyref/package.json | 36 ++++++++++++++++++++++++ packages/extension-lazyref/src/index.ts | 0 packages/extension-lazyref/tsconfig.json | 33 ++++++++++++++++++++++ 5 files changed, 92 insertions(+) create mode 100644 packages/extension-lazyref/README.md create mode 100644 packages/extension-lazyref/package.json create mode 100644 packages/extension-lazyref/src/index.ts create mode 100644 packages/extension-lazyref/tsconfig.json diff --git a/bun.lock b/bun.lock index bf4b7fe..b932993 100644 --- a/bun.lock +++ b/bun.lock @@ -41,6 +41,15 @@ "vite": "^6.1.0", }, }, + "packages/extension-lazyref": { + "name": "@reffuse/extension-lazyref", + "version": "0.1.0", + "devDependencies": { + "@types/react": "^19.0.10", + "effect": "~3.13.1", + "react": "^19.0.0", + }, + }, "packages/reffuse": { "name": "reffuse", "version": "0.1.1", @@ -314,6 +323,8 @@ "@reffuse/example": ["@reffuse/example@workspace:packages/example"], + "@reffuse/extension-lazyref": ["@reffuse/extension-lazyref@workspace:packages/extension-lazyref"], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.34.8", "", { "os": "android", "cpu": "arm" }, "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw=="], "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.34.8", "", { "os": "android", "cpu": "arm64" }, "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q=="], diff --git a/packages/extension-lazyref/README.md b/packages/extension-lazyref/README.md new file mode 100644 index 0000000..dab847a --- /dev/null +++ b/packages/extension-lazyref/README.md @@ -0,0 +1,12 @@ +# Reffuse + +[Effect-TS](https://effect.website/) integration for React 19+ with the aim of integrating the Effect context system within React's component hierarchy, while avoiding touching React's internals. + +This library is in early development. While it is (almost) feature complete and mostly usable, expect bugs and quirks. Things are still being ironed out, so ideas and criticisms are more than welcome. + +Documentation is currently being written. In the meantime, you can take a look at the `packages/example` directory. + +## Dependencies +(needs to be manually installed) +- `effect` +- `react` 19+ diff --git a/packages/extension-lazyref/package.json b/packages/extension-lazyref/package.json new file mode 100644 index 0000000..17434bd --- /dev/null +++ b/packages/extension-lazyref/package.json @@ -0,0 +1,36 @@ +{ + "name": "@reffuse/extension-lazyref", + "version": "0.1.0", + "type": "module", + "files": [ + "./README.md", + "./dist" + ], + "license": "MIT", + "repository": { + "url": "git+https://github.com/Thiladev/reffuse.git" + }, + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./*": { + "types": "./dist/*.d.ts", + "default": "./dist/*.js" + } + }, + "scripts": { + "build": "tsc", + "lint:tsc": "tsc --noEmit", + "clean:cache": "rm -f tsconfig.tsbuildinfo", + "clean:dist": "rm -rf dist", + "clean:node": "rm -rf node_modules" + }, + "devDependencies": { + "@types/react": "^19.0.10", + "effect": "~3.13.1", + "react": "^19.0.0" + } +} diff --git a/packages/extension-lazyref/src/index.ts b/packages/extension-lazyref/src/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/extension-lazyref/tsconfig.json b/packages/extension-lazyref/tsconfig.json new file mode 100644 index 0000000..eea16a8 --- /dev/null +++ b/packages/extension-lazyref/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "NodeNext", + "moduleDetection": "force", + "jsx": "react-jsx", + // "allowJs": true, + + // Bundler mode + "moduleResolution": "NodeNext", + // "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + // "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false, + + // Build + "outDir": "./dist", + "declaration": true + }, + + "include": ["./src"] +}