@magnet-js/common
v0.3.0
Published
Shared foundation: signal types and small runtime helpers.
Readme
@magnet/common
Shared foundation for the Magnet packages.
This package has no runtime dependencies. It provides signal-related types and small runtime helpers used across the rest of the workspace.
Install
JSR
deno add jsr:@magnet/commonnpm via JSR
npx jsr add @magnet/commonnpm
npm install @magnet-js/commonTypes
AnySignal<T>— either a read-only or writable reactive signal.Compute— creates a reactive value derived from other signals.Computed<T>— reactive value that can be read synchronously.State<T>— reactive value that can be read and updated.Store— creates a reactive, writable value.SignalAPI— complete signal implementation to inject as a dependency:isSignal,effect,state,computed.IsSignal— determines whether an unknown value is a signal; implementations decide how the check is performed.SignalOptions<T>— customizes how a signal compares new values to previous ones.Effect/EffectCallback/Cleanup— reactive effect primitives.Maybe<T>— value that may be missing or void.MaybeSignal<T>— plain value or any reactive wrapper of that value.MaybeArray<T>— single value or a list of the same value.MaybeNestedArray<T>— plain value or a recursive array of the same value.MaybeNestedSignals<T>— plain value or a recursive array of reactive values.Dict<T>— plain object whose values all share the same type and keys are strings.CustomElementName— valid tag name for a custom HTML element.Falsy— re-exported from@std/assert.
Runtime helpers
browser()
Detects whether the current environment has a DOM.
import { browser } from "@magnet/common";
if (browser()) {
// DOM-only code
}createEmpty<T>()
Creates a dictionary object with no inherited properties.
import { createEmpty } from "@magnet/common";
const dict = createEmpty<Record<string, number>>();
dict.foo = 1;isArray(value)
Checks whether a value is an array.
isFunction(value)
Checks whether a value is callable.
isString(value)
Checks whether a value is a string.
License
MIT © 2026 Fernando G. Vilar.
