added format command and added trailing commas to reduce conflicts

This commit is contained in:
dswbx
2025-02-26 20:06:03 +01:00
parent 88b5359f1c
commit 7743f71a11
414 changed files with 3622 additions and 3610 deletions

View File

@@ -20,7 +20,7 @@ export abstract class Event<Params = any, Returning = void> {
protected clone<This extends Event<Params, Returning> = Event<Params, Returning>>(
this: This,
params: Params
params: Params,
): This {
const cloned = new (this.constructor as any)(params);
cloned.returned = true;
@@ -50,7 +50,7 @@ export class InvalidEventReturn extends Error {
export class EventReturnedWithoutValidation extends Error {
constructor(
event: EventClass,
public data: any
public data: any,
) {
// @ts-expect-error slug is static
super(`Event "${event.constructor.slug}" returned without validation`);

View File

@@ -6,7 +6,7 @@ export type ListenerMode = (typeof ListenerModes)[number];
export type ListenerHandler<E extends Event<any, any>> = (
event: E,
slug: string
slug: string,
) => E extends Event<any, infer R> ? R | Promise<R | void> : never;
export class EventListener<E extends Event = Event> {
@@ -20,7 +20,7 @@ export class EventListener<E extends Event = Event> {
event: EventClass,
handler: ListenerHandler<E>,
mode: ListenerMode = "async",
id?: string
id?: string,
) {
this.event = event;
this.handler = handler;

View File

@@ -17,7 +17,7 @@ export interface EmitsEvents {
export type { EventClass };
export class EventManager<
RegisteredEvents extends Record<string, EventClass> = Record<string, EventClass>
RegisteredEvents extends Record<string, EventClass> = Record<string, EventClass>,
> {
protected events: EventClass[] = [];
protected listeners: EventListener[] = [];
@@ -30,7 +30,7 @@ export class EventManager<
onError?: (event: Event, e: unknown) => void;
onInvalidReturn?: (event: Event, e: InvalidEventReturn) => void;
asyncExecutor?: typeof Promise.all;
}
},
) {
if (events) {
this.registerEvents(events);
@@ -69,7 +69,7 @@ export class EventManager<
return new Proxy(this, {
get: (_, prop: string) => {
return this.events.find((e) => e.slug === prop);
}
},
}) as any;
}
@@ -141,7 +141,7 @@ export class EventManager<
protected createEventListener(
_event: EventClass | string,
handler: ListenerHandler<any>,
_config: RegisterListenerConfig = "async"
_config: RegisterListenerConfig = "async",
) {
const event =
typeof _event === "string" ? this.events.find((e) => e.slug === _event)! : _event;
@@ -159,7 +159,7 @@ export class EventManager<
onEvent<ActualEvent extends EventClass, Instance extends InstanceType<ActualEvent>>(
event: ActualEvent,
handler: ListenerHandler<Instance>,
config?: RegisterListenerConfig
config?: RegisterListenerConfig,
) {
this.createEventListener(event, handler, config);
}
@@ -167,7 +167,7 @@ export class EventManager<
on<Params = any>(
slug: string,
handler: ListenerHandler<Event<Params>>,
config?: RegisterListenerConfig
config?: RegisterListenerConfig,
) {
this.createEventListener(slug, handler, config);
}
@@ -225,7 +225,7 @@ export class EventManager<
if (!newEvent.returned) {
throw new Error(
// @ts-expect-error slug is static
`Returned event ${newEvent.constructor.slug} must be marked as returned.`
`Returned event ${newEvent.constructor.slug} must be marked as returned.`,
);
}
_event = newEvent as Actual;

View File

@@ -3,6 +3,6 @@ export {
EventListener,
ListenerModes,
type ListenerMode,
type ListenerHandler
type ListenerHandler,
} from "./EventListener";
export { EventManager, type EmitsEvents, type EventClass } from "./EventManager";