MCPcopy Index your code
hub / github.com/nodejs/node / constructor

Method constructor

lib/internal/webstreams/transformstream.js:121–179  ·  view source on GitHub ↗

* @param {Transformer} [transformer] * @param {QueuingStrategy} [writableStrategy] * @param {QueuingStrategy} [readableStrategy]

(
    transformer = kEmptyObject,
    writableStrategy = kEmptyObject,
    readableStrategy = kEmptyObject)

Source from the content-addressed store, hash-verified

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 }

Callers

nothing calls this directly

Calls 6

markTransferModeFunction · 0.85
extractHighWaterMarkFunction · 0.85
extractSizeAlgorithmFunction · 0.85
resolveMethod · 0.45

Tested by

no test coverage detected