Formatting

This commit is contained in:
2026-08-10 02:32:32 +00:00
parent 95dc998b93
commit c5b0d484d4
4 changed files with 15 additions and 16 deletions
+5 -1
View File
@@ -187,7 +187,11 @@ export class EventEmitter<T extends EventMap> {
* @param timeoutMs - The timeout in milliseconds.
* @returns The event payload.
*/
async waitFor<K extends keyof T>(type: K, predicate: (payload: DeeplyReadonly<T[K]>) => boolean, timeoutMs?: number): Promise<DeeplyReadonly<T[K]>> {
async waitFor<K extends keyof T>(
type: K,
predicate: (payload: DeeplyReadonly<T[K]>) => boolean,
timeoutMs?: number,
): Promise<DeeplyReadonly<T[K]>> {
// Create a promise to wait for the event to be emitted.
return new Promise((resolve, reject) => {
let timeoutId: ReturnType<typeof setTimeout> | undefined;
+7 -10
View File
@@ -1,4 +1,4 @@
import { DeeplyReadonly } from "./types";
import type { DeeplyReadonly } from './types';
/**
* Recursively freezes an object by iterating over all properties and freezing them.
@@ -6,20 +6,17 @@ import { DeeplyReadonly } from "./types";
* @returns The frozen object.
*/
export const deepFreeze = <T>(value: T): DeeplyReadonly<T> => {
if (
value !== null &&
(typeof value === 'object' || typeof value === 'function')
) {
if (value !== null && (typeof value === 'object' || typeof value === 'function')) {
for (const key of Reflect.ownKeys(value)) {
const descriptor = Reflect.getOwnPropertyDescriptor(value, key);
const descriptor = Reflect.getOwnPropertyDescriptor(value, key);
if (descriptor && 'value' in descriptor) {
deepFreeze(descriptor.value);
}
if (descriptor && 'value' in descriptor) {
deepFreeze(descriptor.value);
}
}
Object.freeze(value);
}
return value;
}
};
+2 -5
View File
@@ -4,8 +4,5 @@
* @returns The deeply readonly type.
*/
export type DeeplyReadonly<T> = {
readonly [K in keyof T]:
T[K] extends (...args: never[]) => unknown
? T[K]
: DeeplyReadonly<T[K]>;
};
readonly [K in keyof T]: T[K] extends (...args: never[]) => unknown ? T[K] : DeeplyReadonly<T[K]>;
};
+1
View File
@@ -5,6 +5,7 @@ import { EventEmitter } from '../source/event-emitter.ts';
type TestEvents = {
message: string;
count: number;
nested: { nested: { value: number } };
};
/**