@wuchale/svelte
Version:
Protobuf-like i18n from normal code
28 lines • 920 B
JavaScript
import { createSubscriber } from "svelte/reactivity";
/**
* This is a way to bypass svelte's reactivity restriction
* outside .svelte.js files The purpose is dev mode HMR
* without invalidating whole trees
*/
export class ReactiveArray extends Array {
constructor(...args) {
super(...args);
let update;
const subscribe = createSubscriber((updateArg) => {
update = updateArg;
});
return new Proxy(this, {
get(target, prop, receiver) {
subscribe();
return Reflect.get(target, prop, receiver);
},
set(target, prop, value, receiver) {
target[prop] = value;
update?.();
return Reflect.set(target, prop, value, receiver);
},
});
}
static from = (array) => new ReactiveArray(...array);
}
//# sourceMappingURL=reactive.js.map