| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -76,6 +76,8 @@ const { | |||
| 76 | 76 | ||
| 77 | 77 | const { | |
| 78 | 78 | kIsClosedPromise, | |
| 79 | + kIsErrored, | ||
| 80 | + kIsWritable, | ||
| 79 | 81 | kControllerErrorFunction, | |
| 80 | 82 | } = require('internal/streams/utils'); | |
| 81 | 83 | ||
@@ -183,6 +185,14 @@ class WritableStream { | |||
| 183 | 185 | size); | |
| 184 | 186 | } | |
| 185 | 187 | ||
| 188 | + get [kIsErrored]() { | ||
| 189 | + return this[kState].state === 'errored'; | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | + get [kIsWritable]() { | ||
| 193 | + return this[kState].state === 'writable'; | ||
| 194 | + } | ||
| 195 | + | ||
| 186 | 196 | /** | |
| 187 | 197 | * @readonly | |
| 188 | 198 | * @type {boolean} | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,6 +4,8 @@ | |||
| 4 | 4 | const common = require('../common'); | |
| 5 | 5 | const assert = require('assert'); | |
| 6 | 6 | ||
| 7 | + const { isErrored, isWritable } = require('stream'); | ||
| 8 | + | ||
| 7 | 9 | const { | |
| 8 | 10 | WritableStream, | |
| 9 | 11 | WritableStreamDefaultController, | |
@@ -171,6 +173,27 @@ class Sink { | |||
| 171 | 173 | })); | |
| 172 | 174 | } | |
| 173 | 175 | ||
| 176 | + { | ||
| 177 | + const stream = new WritableStream(); | ||
| 178 | + assert.strictEqual(isWritable(stream), true); | ||
| 179 | + stream.close().then(common.mustCall(() => { | ||
| 180 | + assert.strictEqual(isWritable(stream), false); | ||
| 181 | + })); | ||
| 182 | + } | ||
| 183 | + | ||
| 184 | + { | ||
| 185 | + const stream = new WritableStream({ | ||
| 186 | + write: common.mustCall((chunk, controller) => { | ||
| 187 | + controller.error(new Error()); | ||
| 188 | + }) | ||
| 189 | + }); | ||
| 190 | + const writer = stream.getWriter(); | ||
| 191 | + assert.strictEqual(isErrored(stream), false); | ||
| 192 | + writer.write().then(common.mustCall(() => { | ||
| 193 | + assert.strictEqual(isErrored(stream), true); | ||
| 194 | + })); | ||
| 195 | + } | ||
| 196 | + | ||
| 174 | 197 | { | |
| 175 | 198 | assert.throws(() => Reflect.get(WritableStream.prototype, 'locked', {}), { | |
| 176 | 199 | code: 'ERR_INVALID_THIS', | |
| Back | FazBrowse Home | New Git URL |
0 commit comments