@assistant-ui/react
Version:
TypeScript/React library for AI Chat
35 lines • 921 B
JavaScript
export class BaseSubscribable {
_subscribers = new Set();
subscribe(callback) {
this._subscribers.add(callback);
return () => this._subscribers.delete(callback);
}
waitForUpdate() {
return new Promise((resolve) => {
const unsubscribe = this.subscribe(() => {
unsubscribe();
resolve();
});
});
}
_notifySubscribers() {
const errors = [];
for (const callback of this._subscribers) {
try {
callback();
}
catch (error) {
errors.push(error);
}
}
if (errors.length > 0) {
if (errors.length === 1) {
throw errors[0];
}
else {
throw new AggregateError(errors);
}
}
}
}
//# sourceMappingURL=BaseSubscribable.js.map