Files
SnowLuma/.pnpm-store/v11/files/e0/e0b599fe2e854963ffa081f726897ab6a91277c4b73107a3f6f57911ee124b18635175f8a8a167c05bf583de8221f0f77006739350b232ce4210a4727b5729
TanTan 2a69b23b47
Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Skipped
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

49 lines
899 B
Plaintext

import { createAtom, toObserver } from "./atom.js";
class Store {
constructor(valueOrFn) {
this.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(toObserver(observerOrFn));
}
}
class ReadonlyStore {
constructor(valueOrFn) {
this.atom = createAtom(
valueOrFn
);
}
get state() {
return this.atom.get();
}
get() {
return this.state;
}
subscribe(observerOrFn) {
return this.atom.subscribe(toObserver(observerOrFn));
}
}
function createStore(valueOrFn) {
if (typeof valueOrFn === "function") {
return new ReadonlyStore(valueOrFn);
}
return new Store(valueOrFn);
}
export {
ReadonlyStore,
Store,
createStore
};
//# sourceMappingURL=store.js.map