diff --git a/package.json b/package.json index 17f5325..319b7a0 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,6 @@ "precise-now": "^3.0.0", "stream-json": "^1.8.0", "tsd": "^0.31.0", - "xo": "^0.58.0" + "xo": "^0.59.0" } } diff --git a/source/array-buffer.js b/source/array-buffer.js index fb90e93..4fc864c 100644 --- a/source/array-buffer.js +++ b/source/array-buffer.js @@ -46,6 +46,7 @@ const resizeArrayBuffer = (contents, length) => { return contents; } + // eslint-disable-next-line n/no-unsupported-features/es-syntax const arrayBuffer = new ArrayBuffer(length, {maxByteLength: getNewContentsLength(length)}); new Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0); return arrayBuffer; diff --git a/source/index.d.ts b/source/index.d.ts index 3f8ecff..724a45c 100644 --- a/source/index.d.ts +++ b/source/index.d.ts @@ -8,6 +8,7 @@ export class MaxBufferError extends Error { // eslint-disable-next-line @typescript-eslint/ban-types type TextStreamItem = string | Buffer | ArrayBuffer | ArrayBufferView; +// eslint-disable-next-line n/no-unsupported-features/node-builtins export type AnyStream = Readable | ReadableStream | AsyncIterable; export type Options = { diff --git a/source/index.test-d.ts b/source/index.test-d.ts index 8415448..ddc7e69 100644 --- a/source/index.test-d.ts +++ b/source/index.test-d.ts @@ -80,6 +80,7 @@ expectError(await getStreamAsArrayBuffer(nodeStream, {maxBuffer: 10}, {})); expectType(await getStreamAsArray(nodeStream)); expectType(await getStreamAsArray(nodeStream, {maxBuffer: 10})); expectType(await getStreamAsArray(readableStream)); +// eslint-disable-next-line n/no-unsupported-features/node-builtins expectType(await getStreamAsArray(readableStream as ReadableStream)); expectType(await getStreamAsArray(stringAsyncIterable)); // eslint-disable-next-line @typescript-eslint/ban-types diff --git a/test/browser.js b/test/browser.js index c417064..efd4bb7 100644 --- a/test/browser.js +++ b/test/browser.js @@ -1,12 +1,12 @@ import {execFile} from 'node:child_process'; -import {dirname} from 'node:path'; +import path from 'node:path'; import {fileURLToPath} from 'node:url'; import {promisify} from 'node:util'; import test from 'ava'; import {fixtureString} from './fixtures/index.js'; const pExecFile = promisify(execFile); -const cwd = dirname(fileURLToPath(import.meta.url)); +const cwd = path.dirname(fileURLToPath(import.meta.url)); const nodeStreamFixture = './fixtures/node-stream.js'; const webStreamFixture = './fixtures/web-stream.js'; const iterableFixture = './fixtures/iterable.js'; diff --git a/test/helpers/index.js b/test/helpers/index.js index 4fe4631..943c9e4 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -5,6 +5,7 @@ import {finished} from 'node:stream/promises'; export {fromAnyIterable as readableStreamFrom} from '@sec-ant/readable-stream/ponyfill'; export const createStream = streamDefinition => typeof streamDefinition === 'function' + // eslint-disable-next-line n/no-unsupported-features/node-builtins ? Duplex.from(streamDefinition) : Readable.from(streamDefinition); diff --git a/test/integration.js b/test/integration.js index 5945114..21ad021 100644 --- a/test/integration.js +++ b/test/integration.js @@ -9,6 +9,7 @@ import {fixtureString, fixtureBuffer, fixtureUtf16} from './fixtures/index.js'; const TEST_URL = 'https://nodejs.org/dist/index.json'; +// eslint-disable-next-line n/no-unsupported-features/node-builtins const createReadableStream = streamDefinition => Duplex.toWeb(Duplex.from(streamDefinition)).readable; test('works with opendir()', async t => { @@ -63,6 +64,7 @@ if (!nodeVersion.startsWith('v16.')) { test('works with readableWebStream({ type: "bytes" })', readableWebStream, 'bytes'); test('works with fetch()', async t => { + // eslint-disable-next-line n/no-unsupported-features/node-builtins const {body} = await fetch(TEST_URL); const result = await getStream(body); const parsedResult = JSON.parse(result); @@ -70,6 +72,7 @@ if (!nodeVersion.startsWith('v16.')) { }); test('can use TextDecoderStream', async t => { + // eslint-disable-next-line n/no-unsupported-features/node-builtins const textDecoderStream = new TextDecoderStream('utf-16le'); const result = await getStream( createReadableStream(fixtureUtf16).pipeThrough(textDecoderStream), diff --git a/test/stream.js b/test/stream.js index 533d367..89e4028 100644 --- a/test/stream.js +++ b/test/stream.js @@ -274,6 +274,7 @@ const testMultipleReads = async (t, wait) => { assertSuccess(t, stream, Readable); }; +// eslint-disable-next-line n/no-unsupported-features/node-builtins test('Handles multiple successive fast reads', testMultipleReads, () => scheduler.yield()); test('Handles multiple successive slow reads', testMultipleReads, () => pSetTimeout(100)); diff --git a/test/web-stream-ponyfill.js b/test/web-stream-ponyfill.js index 65209dc..10dd78e 100644 --- a/test/web-stream-ponyfill.js +++ b/test/web-stream-ponyfill.js @@ -1,13 +1,17 @@ import test from 'ava'; // Emulate browsers that do not support those methods +// eslint-disable-next-line n/no-unsupported-features/node-builtins delete ReadableStream.prototype.values; +// eslint-disable-next-line n/no-unsupported-features/node-builtins delete ReadableStream.prototype[Symbol.asyncIterator]; // Run those tests, but emulating browsers await import('./web-stream.js'); test('Should not polyfill ReadableStream', t => { + // eslint-disable-next-line n/no-unsupported-features/node-builtins t.is(ReadableStream.prototype.values, undefined); + // eslint-disable-next-line n/no-unsupported-features/node-builtins t.is(ReadableStream.prototype[Symbol.asyncIterator], undefined); }); diff --git a/test/web-stream.js b/test/web-stream.js index 1e94c3d..a768dcf 100644 --- a/test/web-stream.js +++ b/test/web-stream.js @@ -18,6 +18,7 @@ test('Can use already ended ReadableStream', async t => { test('Can use already canceled ReadableStream', async t => { let canceledValue; + // eslint-disable-next-line n/no-unsupported-features/node-builtins const stream = new ReadableStream({ cancel(canceledError) { canceledValue = canceledError; @@ -32,6 +33,7 @@ test('Can use already canceled ReadableStream', async t => { test('Can use already errored ReadableStream', async t => { const error = new Error('test'); + // eslint-disable-next-line n/no-unsupported-features/node-builtins const stream = new ReadableStream({ start(controller) { controller.error(error); @@ -43,6 +45,7 @@ test('Can use already errored ReadableStream', async t => { test('Cancel ReadableStream when maxBuffer is hit', async t => { let canceled = false; + // eslint-disable-next-line n/no-unsupported-features/node-builtins const stream = new ReadableStream({ start(controller) { controller.enqueue(fixtureString);