@tanstack/store
Version:
Framework agnostic type-safe store w/ reactive framework adapters
49 lines (48 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const atom = require("./atom.cjs");
class Store {
constructor(valueOrFn) {
this.atom = atom.createAtom(
valueOrFn
);
}
setState(updater) {
this.atom.set(updater);
}
get state() {
return this.atom.get();
}
get() {
return this.state;
}
subscribe(observerOrFn) {
return this.atom.subscribe(atom.toObserver(observerOrFn));
}
}
class ReadonlyStore {
constructor(valueOrFn) {
this.atom = atom.createAtom(
valueOrFn
);
}
get state() {
return this.atom.get();
}
get() {
return this.state;
}
subscribe(observerOrFn) {
return this.atom.subscribe(atom.toObserver(observerOrFn));
}
}
function createStore(valueOrFn) {
if (typeof valueOrFn === "function") {
return new ReadonlyStore(valueOrFn);
}
return new Store(valueOrFn);
}
exports.ReadonlyStore = ReadonlyStore;
exports.Store = Store;
exports.createStore = createStore;
//# sourceMappingURL=store.cjs.map