From bfc9a2bce93b3cefe8ccffca479166986d077035 Mon Sep 17 00:00:00 2001 From: Yann Amsellem Date: Mon, 24 Feb 2025 18:57:48 +0100 Subject: [PATCH] refactor: rename Event Emitter --- src/lib/olap-engine/{EventEmitter.ts => EventListener.ts} | 7 +++---- src/lib/olap-engine/engine-chdb.ts | 4 ++-- src/lib/olap-engine/engine-remote.ts | 4 ++-- src/lib/olap-engine/index.ts | 4 ++-- 4 files changed, 9 insertions(+), 10 deletions(-) rename src/lib/olap-engine/{EventEmitter.ts => EventListener.ts} (70%) diff --git a/src/lib/olap-engine/EventEmitter.ts b/src/lib/olap-engine/EventListener.ts similarity index 70% rename from src/lib/olap-engine/EventEmitter.ts rename to src/lib/olap-engine/EventListener.ts index 23eef1d..2ef2dda 100644 --- a/src/lib/olap-engine/EventEmitter.ts +++ b/src/lib/olap-engine/EventListener.ts @@ -2,12 +2,11 @@ type Callback = (...param: any[]) => void; type OptionalRecord = { [P in K]?: T }; -export interface IEventEmitter { +export interface IListener { on(event: Events, fn: Callback): () => any; - emit(event: Events, param: any): void; } -export abstract class EventEmitter implements IEventEmitter { +export abstract class InternalEventEmitter implements IListener { #listeners: OptionalRecord> = {}; on(event: Events, fn: Callback) { @@ -17,7 +16,7 @@ export abstract class EventEmitter 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(() => { diff --git a/src/lib/olap-engine/engine-chdb.ts b/src/lib/olap-engine/engine-chdb.ts index 2c5c248..532260f 100644 --- a/src/lib/olap-engine/engine-chdb.ts +++ b/src/lib/olap-engine/engine-chdb.ts @@ -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 implements OLAPEngine { +export class CHDBEngine extends InternalEventEmitter implements OLAPEngine { async init() { await this.exec(CLICKHOUSE_INIT_DB); } diff --git a/src/lib/olap-engine/engine-remote.ts b/src/lib/olap-engine/engine-remote.ts index a6b5e66..60634b1 100644 --- a/src/lib/olap-engine/engine-remote.ts +++ b/src/lib/olap-engine/engine-remote.ts @@ -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 implements OLAPEngine { +export class RemoteEngine extends InternalEventEmitter implements OLAPEngine { async init() {} async exec(query: string, _emit = true) { diff --git a/src/lib/olap-engine/index.ts b/src/lib/olap-engine/index.ts index 4bc511b..d9fd7d1 100644 --- a/src/lib/olap-engine/index.ts +++ b/src/lib/olap-engine/index.ts @@ -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; @@ -26,7 +26,7 @@ export interface Table { export type Events = 'error' | 'success'; -export interface OLAPEngine extends IEventEmitter { +export interface OLAPEngine extends IListener { init(): Promise; exec(query: string): Promise; getSchema(): Promise;