refactor: rename Event Emitter

This commit is contained in:
Yann Amsellem
2025-02-24 18:57:48 +01:00
parent fab807b54f
commit bfc9a2bce9
4 changed files with 9 additions and 10 deletions

View File

@@ -2,12 +2,11 @@ type Callback = (...param: any[]) => void;
type OptionalRecord<K extends keyof any, T> = { [P in K]?: T };
export interface IEventEmitter<Events extends string> {
export interface IListener<Events extends string> {
on(event: Events, fn: Callback): () => any;
emit(event: Events, param: any): void;
}
export abstract class EventEmitter<Events extends string> implements IEventEmitter<Events> {
export abstract class InternalEventEmitter<Events extends string> implements IListener<Events> {
#listeners: OptionalRecord<Events, Set<Callback>> = {};
on(event: Events, fn: Callback) {
@@ -17,7 +16,7 @@ export abstract class EventEmitter<Events extends string> implements IEventEmitt
return () => this.#listeners[event]?.delete(fn);
}
emit(event: Events, ...param: any[]) {
protected emit(event: Events, ...param: any[]) {
if (!this.#listeners[event]?.size) return;
queueMicrotask(() => {

View File

@@ -1,12 +1,12 @@
import { invoke } from '@tauri-apps/api/core';
import { EventEmitter } from './EventEmitter';
import { InternalEventEmitter } from './EventListener';
import type { Events, OLAPEngine, OLAPResponse, Table } from './index';
import CLICKHOUSE_GET_SCHEMA from './queries/clickhouse_get_schema.sql?raw';
import CLICKHOUSE_GET_UDFS from './queries/clickhouse_get_udfs.sql?raw';
import CLICKHOUSE_INIT_DB from './queries/clickhouse_init_db.sql?raw';
export class CHDBEngine extends EventEmitter<Events> implements OLAPEngine {
export class CHDBEngine extends InternalEventEmitter<Events> implements OLAPEngine {
async init() {
await this.exec(CLICKHOUSE_INIT_DB);
}

View File

@@ -1,10 +1,10 @@
import { EventEmitter } from './EventEmitter';
import { InternalEventEmitter } from './EventListener';
import type { Events, OLAPEngine, OLAPResponse, Table } from './index';
import CLICKHOUSE_GET_SCHEMA from './queries/clickhouse_get_schema.sql?raw';
import CLICKHOUSE_GET_UDFS from './queries/clickhouse_get_udfs.sql?raw';
export class RemoteEngine extends EventEmitter<Events> implements OLAPEngine {
export class RemoteEngine extends InternalEventEmitter<Events> implements OLAPEngine {
async init() {}
async exec(query: string, _emit = true) {

View File

@@ -1,6 +1,6 @@
import { CHDBEngine } from './engine-chdb';
import { RemoteEngine } from './engine-remote';
import type { IEventEmitter } from './EventEmitter';
import type { IListener } from './EventListener';
export type OLAPResponse = {
meta: Array<ColumnDescriptor>;
@@ -26,7 +26,7 @@ export interface Table {
export type Events = 'error' | 'success';
export interface OLAPEngine extends IEventEmitter<Events> {
export interface OLAPEngine extends IListener<Events> {
init(): Promise<void>;
exec(query: string): Promise<OLAPResponse | undefined>;
getSchema(): Promise<Table[]>;