@gecut/mixins
Version:
A tiny, TypeScript-powered package of hyper-fast LitElement mixins. Enhance your web components with swift, type-safe functionality that’s easy to integrate.
26 lines • 861 B
JavaScript
import { LitElement } from 'lit';
export function SignalMixin(superClass) {
class SignalMixinClass extends superClass {
constructor() {
super(...arguments);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
Object.defineProperty(this, "signalSubscribers", {
enumerable: true,
configurable: true,
writable: true,
value: []
});
}
disconnectedCallback() {
super.disconnectedCallback();
for (const signalReturn of this.signalSubscribers) {
signalReturn.unsubscribe();
}
}
addSignalSubscriber(signalReturn) {
this.signalSubscribers.push(signalReturn);
}
}
return SignalMixinClass;
}
//# sourceMappingURL=signal.js.map