* @param {Transformer} [transformer] * @param {QueuingStrategy} [writableStrategy] * @param {QueuingStrategy} [readableStrategy]
(
transformer = kEmptyObject,
writableStrategy = kEmptyObject,
readableStrategy = kEmptyObject)
| 119 | * @param {QueuingStrategy} [readableStrategy] |
| 120 | */ |
| 121 | constructor( |
| 122 | transformer = kEmptyObject, |
| 123 | writableStrategy = kEmptyObject, |
| 124 | readableStrategy = kEmptyObject) { |
| 125 | markTransferMode(this, false, true); |
| 126 | validateObject(transformer, 'transformer', kValidateObjectAllowObjects); |
| 127 | validateObject(writableStrategy, 'writableStrategy', kValidateObjectAllowObjectsAndNull); |
| 128 | validateObject(readableStrategy, 'readableStrategy', kValidateObjectAllowObjectsAndNull); |
| 129 | const readableType = transformer?.readableType; |
| 130 | const writableType = transformer?.writableType; |
| 131 | const start = transformer?.start; |
| 132 | |
| 133 | if (readableType !== undefined) { |
| 134 | throw new ERR_INVALID_ARG_VALUE.RangeError( |
| 135 | 'transformer.readableType', |
| 136 | readableType); |
| 137 | } |
| 138 | if (writableType !== undefined) { |
| 139 | throw new ERR_INVALID_ARG_VALUE.RangeError( |
| 140 | 'transformer.writableType', |
| 141 | writableType); |
| 142 | } |
| 143 | |
| 144 | const readableHighWaterMark = readableStrategy?.highWaterMark; |
| 145 | const readableSize = readableStrategy?.size; |
| 146 | |
| 147 | const writableHighWaterMark = writableStrategy?.highWaterMark; |
| 148 | const writableSize = writableStrategy?.size; |
| 149 | |
| 150 | const actualReadableHighWaterMark = |
| 151 | extractHighWaterMark(readableHighWaterMark, 0); |
| 152 | const actualReadableSize = extractSizeAlgorithm(readableSize); |
| 153 | |
| 154 | const actualWritableHighWaterMark = |
| 155 | extractHighWaterMark(writableHighWaterMark, 1); |
| 156 | const actualWritableSize = extractSizeAlgorithm(writableSize); |
| 157 | |
| 158 | const startPromise = PromiseWithResolvers(); |
| 159 | |
| 160 | initializeTransformStream( |
| 161 | this, |
| 162 | startPromise, |
| 163 | actualWritableHighWaterMark, |
| 164 | actualWritableSize, |
| 165 | actualReadableHighWaterMark, |
| 166 | actualReadableSize); |
| 167 | |
| 168 | setupTransformStreamDefaultControllerFromTransformer(this, transformer); |
| 169 | |
| 170 | if (start !== undefined) { |
| 171 | startPromise.resolve( |
| 172 | FunctionPrototypeCall( |
| 173 | start, |
| 174 | transformer, |
| 175 | this[kState].controller)); |
| 176 | } else { |
| 177 | startPromise.resolve(); |
| 178 | } |
nothing calls this directly
no test coverage detected