import { AsyncIterableX } from './asynciterablex.js'; import { throwIfAborted, AbortError } from '../aborterror.js'; /** @ignore */ export class NeverAsyncIterable extends AsyncIterableX { constructor() { super(); } async *[Symbol.asyncIterator](signal?: AbortSignal) { throwIfAborted(signal); await new Promise((_, reject) => { if (signal) { signal.addEventListener('abort', () => reject(new AbortError()), { once: true }); } }); } } /** * An async-iterable sequence that never returns a value. * * @returns {AsyncIterableX} An async-iterable sequence that never returns a value. */ export function never(): AsyncIterableX { return new NeverAsyncIterable(); }