Skip to content

Latest commit

 

History

History
64 lines (50 loc) · 1.58 KB

File metadata and controls

64 lines (50 loc) · 1.58 KB

@preact-signals/unified-signals

@preact-signals/unified-signals is runtime agnostic @preact/signals reexport. That can be used for library developers that want to rely on user preact signals runtime. If you want to write library that uses preact signals you can take benefit from @preact-signals/unified-signals. It uses shims instead of hooks if runtime is not providing it, also we polyfilling untracked API.

Installation

You can install @preact-signals/unified-signals using your package manager of choice:

# npm
npm i @preact-signals/unified-signals
# yarn
yarn i @preact-signals/unified-signals
# pnpm
pnpm i @preact-signals/unified-signals

Usage in library

If you are using @preact-signals/unified-signals in your library to preserve runtime agnosticism you can use should add this lines into your package.json:

{
  "peerDependencies": {
    "@preact/signals-react": ">=1.2.0",
    "@preact/signals": ">=1.1.0",
    "@preact/signals-core": ">=1.1.0"
  },
  "peerDependenciesMeta": {
    "@preact/signals-react": {
      "optional": true
    },
    "@preact/signals": {
      "optional": true
    },
    "@preact/signals-core": {
      "optional": true
    }
  }
}

API Overview

Basic @preact/signals API and untracked

untracked

const a = signal(1);
const b = signal(2);
const c = computed(() => a.value + untracked(() => b.value));

console.log(c.value); // 3
a.value = 2;
console.log(c.value); // 4
b.value = 3;
console.log(c.value); // 4

License

@preact-signals/unified-signals is licensed under the MIT License.