Skip to content

Commit

Permalink
Update to Node 18.0.0 (#471)
Browse files Browse the repository at this point in the history
* feat: Updated build system and removed legacy browsers compatibility.

* feat: Update to Node 17.9.0.

* feat: Updated to Node 18.0.0 and simplified errors and primordials.

* test: Drop SauceLabs in favor of Playwright.

* feat: Restore compatibility with Node 12.x.

* fix: Fixed dependencies.

* feat: Do not modify globalThis.

* fix: Fix path on Windows.

* fix: Fixed examples.

* feat: Test bundlers.

* fix: Fixed node bundle on older versions.

* test: Test against browserify.

* test: Test against webpack.

* test: Improve build scripts.

* test: Test against esbuild.

* test: Fixed CI.

* test: Do not use node: prefix.

* test: Fix CI on Windows.

* test: Fix ESBuild.
  • Loading branch information
ShogunPanda committed May 23, 2022
1 parent 97fd94f commit 81c5264
Show file tree
Hide file tree
Showing 418 changed files with 35,195 additions and 23,692 deletions.
18 changes: 0 additions & 18 deletions .airtap.yml

This file was deleted.

17 changes: 0 additions & 17 deletions .babelrc

This file was deleted.

23 changes: 23 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module.exports = {
parserOptions: {
ecmaVersion: 'latest'
},
extends: ['standard'],
rules: {
/*
This is inserted to make this compatible with prettier.
Once https://github.com/prettier/prettier/issues/3845 and https://github.com/prettier/prettier/issues/3847 are solved this might be not needed any more.
*/
'space-before-function-paren': 0,
curly: [2, 'all']
},
overrides: [
{
files: ['**/*.mjs'],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module'
}
}
]
}
39 changes: 39 additions & 0 deletions .github/workflows/browsers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Browsers

on: [push, pull_request]

jobs:
build:
name: Browsers
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
browser: ['chrome', 'firefox', 'safari', 'edge']
bundler: ['browserify', 'esbuild', 'rollup', 'webpack']
exclude:
- os: ubuntu-latest
browser: safari
- os: windows-latest
browser: safari
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16
- name: Restore cached dependencies
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ matrix.os }}-${{ hashFiles('package.json') }}
- name: Install dependencies
run: npm install
- name: Install Browser
run: ./node_modules/.bin/playwright install ${{ fromJSON('{"chrome":"chromium","edge":"msedge","firefox":"firefox","safari":"webkit"}')[matrix.browser] }}
- name: Bundle code
run: npm run test:prepare ${{ matrix.bundler }}
- name: Run Tests on Browsers
run: npm run test:browsers ${{ matrix.browser }} ${{ matrix.bundler }}
32 changes: 32 additions & 0 deletions .github/workflows/bundlers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Bundlers

on: [push, pull_request]

jobs:
build:
name: Bundlers
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [12.x, 14.x, 16.x, 18.x]
bundler: ['browserify', 'esbuild', 'rollup', 'webpack']
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }} on ${{ matrix.os }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Restore cached dependencies
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ matrix.os }}-${{ hashFiles('package.json') }}
- name: Install dependencies
run: npm install
- name: Bundle code
run: npm run test:prepare ${{ matrix.bundler }}
- name: Run Tests on Browsers
run: npm run test:bundlers ${{ matrix.bundler }}
22 changes: 0 additions & 22 deletions .github/workflows/ci.yml

This file was deleted.

29 changes: 29 additions & 0 deletions .github/workflows/node.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Node.js

on: [push, pull_request]

jobs:
build:
name: Node.js
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [12.x, 14.x, 16.x, 18.x]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }} on ${{ matrix.os }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Restore cached dependencies
uses: actions/cache@v3
with:
path: node_modules
key: node-modules-${{ hashFiles('package.json') }}
- name: Install dependencies
run: npm install
- name: Run Tests
run: npm run coverage
24 changes: 0 additions & 24 deletions .github/workflows/sauce.yml

This file was deleted.

9 changes: 3 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
coverage/
node_modules/
.zuul.yml
.nyc_output
coverage
node-*.tar.gz
package-lock.json
*.tap
.airtaprc
yarn.lock
tmp/
12 changes: 0 additions & 12 deletions .npmignore

This file was deleted.

57 changes: 22 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
# readable-stream

***Node.js core streams for userland***
**_Node.js core streams for userland_**

[![npm status](http://img.shields.io/npm/v/readable-stream.svg)](https://www.npmjs.org/package/readable-stream)
[![npm status](https://img.shields.io/npm/v/readable-stream.svg)](https://npm.im/readable-stream)
[![node](https://img.shields.io/node/v/readable-stream.svg)](https://www.npmjs.org/package/readable-stream)
![Node.js](https://github.com/nodejs/readable-stream/workflows/Node.js/badge.svg?branch=main)
![Sauce Labs](https://github.com/nodejs/readable-stream/workflows/Sauce%20Labs/badge.svg?branch=main)

[![Sauce Test Status](https://saucelabs.com/browser-matrix/readabe-stream.svg)](https://saucelabs.com/u/readabe-stream)
[![Node.js Build](https://github.com/nodejs/readable-stream/workflows/Node.js/badge.svg)](https://github.com/nodejs/readable-stream/actions?query=workflow%3ANode.js)
[![Browsers Build](https://github.com/nodejs/readable-stream/workflows/Browsers/badge.svg)](https://github.com/nodejs/readable-stream/actions?query=workflow%3ABrowsers)

```bash
npm install --save readable-stream
```

This package is a mirror of the streams implementations in Node.js.
This package is a mirror of the streams implementations in Node.js 18.0.0.

Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.19.0/docs/api/stream.html).
Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v18.0.0/docs/api/stream.html).

If you want to guarantee a stable streams base, regardless of what version of
Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).
Node you, or the users of your libraries are using, use **readable-stream** _only_ and avoid the _"stream"_ module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).

As of version 2.0.0 **readable-stream** uses semantic versioning.

Expand Down Expand Up @@ -48,11 +46,8 @@ v3.x.x of `readable-stream` is a cut from Node 10. This version supports Node 6,
https://github.com/nodejs/node/pull/17979

## Version 2.x.x
v2.x.x of `readable-stream` is a cut of the stream module from Node 8 (there have been no semver-major changes from Node 4 to 8). This version supports all Node.js versions from 0.8, as well as evergreen browsers and IE 10 & 11.

### Big Thanks

Cross-browser Testing Platform and Open Source <3 Provided by [Sauce Labs][sauce]
v2.x.x of `readable-stream` is a cut of the stream module from Node 8 (there have been no semver-major changes from Node 4 to 8). This version supports all Node.js versions from 0.8, as well as evergreen browsers and IE 10 & 11.

# Usage

Expand All @@ -61,15 +56,8 @@ without any changes, if you are just using one of the main classes and
functions.

```js
const {
Readable,
Writable,
Transform,
Duplex,
pipeline,
finished
} = require('readable-stream')
````
const { Readable, Writable, Transform, Duplex, pipeline, finished } = require('readable-stream')
```

Note that `require('stream')` will return `Stream`, while
`require('readable-stream')` will return `Readable`. We discourage using
Expand Down Expand Up @@ -106,23 +94,22 @@ module.exports = {
oversees the development and maintenance of the Streams API within
Node.js. The responsibilities of the Streams Working Group include:

* Addressing stream issues on the Node.js issue tracker.
* Authoring and editing stream documentation within the Node.js project.
* Reviewing changes to stream subclasses within the Node.js project.
* Redirecting changes to streams from the Node.js project to this
- Addressing stream issues on the Node.js issue tracker.
- Authoring and editing stream documentation within the Node.js project.
- Reviewing changes to stream subclasses within the Node.js project.
- Redirecting changes to streams from the Node.js project to this
project.
* Assisting in the implementation of stream providers within Node.js.
* Recommending versions of `readable-stream` to be included in Node.js.
* Messaging about the future of streams to give the community advance
- Assisting in the implementation of stream providers within Node.js.
- Recommending versions of `readable-stream` to be included in Node.js.
- Messaging about the future of streams to give the community advance
notice of changes.

<a name="members"></a>

## Team Members

* **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) &lt;mathiasbuus@gmail.com&gt;
* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) &lt;matteo.collina@gmail.com&gt;
- **Mathias Buus** ([@mafintosh](https://github.com/mafintosh)) &lt;mathiasbuus@gmail.com&gt;
- **Matteo Collina** ([@mcollina](https://github.com/mcollina)) &lt;matteo.collina@gmail.com&gt;
- Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E
* **Robert Nagy** ([@ronag](https://github.com/ronag)) &lt;ronagy@icloud.com&gt;
* **Vincent Weevers** ([@vweevers](https://github.com/vweevers)) &lt;mail@vincentweevers.nl&gt;

[sauce]: https://saucelabs.com
- **Robert Nagy** ([@ronag](https://github.com/ronag)) &lt;ronagy@icloud.com&gt;
- **Vincent Weevers** ([@vweevers](https://github.com/vweevers)) &lt;mail@vincentweevers.nl&gt;
3 changes: 3 additions & 0 deletions babel.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
plugins: ['@babel/proposal-nullish-coalescing-operator', '@babel/proposal-optional-chaining']
}
1 change: 0 additions & 1 deletion build/.gitignore

This file was deleted.

Loading

0 comments on commit 81c5264

Please sign in to comment.