arimelody.me/public/script/silver.min.js
ari melody 10f19d46db release edit page! + a lot of other stuff oml
Signed-off-by: ari melody <ari@arimelody.me>
2024-08-31 01:52:39 +01:00

2 lines
276 B
JavaScript

export default class Stateful{#e;#t=[];constructor(e){this.#e=e}get(){return this.#e}set(e){let t=this.#e;this.#e=e;for(let s in this.#t)this.#t[s](e,t)}update(e){this.set(e(this.#e))}onUpdate(e){return this.#t.push(e),e}removeListener(e){this.#t=this.#t.filter((t=>t!==e))}}