google-closure-compiler
Version:
Check, compile, optimize and compress Javascript with Closure-Compiler
587 lines (486 loc) • 15.5 kB
JavaScript
/*
* Copyright 2015 The Closure Compiler Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Streams API definitions
*
* Based on Living Standard — Last Updated 5 August 2016
* https://streams.spec.whatwg.org/commit-snapshots/34ecaadbcce8df9943d7a2cdb7fca4dc25914df4/
*
* @see https://streams.spec.whatwg.org/
* @externs
*/
/**
* @typedef {!CountQueuingStrategy|!ByteLengthQueuingStrategy|{
* size: (undefined|function(*): number),
* highWaterMark: (number|undefined),
* }}
*/
var QueuingStrategy;
/**
* The TransformStreamDefaultController class has methods that allow
* manipulation of the associated ReadableStream and WritableStream.
*
* This class cannot be directly constructed and is instead passed by the
* TransformStream to the methods of its transformer.
*
* @interface
* @template OUT_VALUE
* @see https://streams.spec.whatwg.org/#ts-default-controller-class
*/
function TransformStreamDefaultController() {};
/**
* @type {number}
* @see https://streams.spec.whatwg.org/#ts-default-controller-desired-size
*/
TransformStreamDefaultController.prototype.desiredSize;
/**
* @param {OUT_VALUE} chunk
* @return {undefined}
* @see https://streams.spec.whatwg.org/#ts-default-controller-enqueue
*/
TransformStreamDefaultController.prototype.enqueue = function(chunk) {};
/**
* @param {*} reason
* @return {undefined}
* @see https://streams.spec.whatwg.org/#ts-default-controller-error
*/
TransformStreamDefaultController.prototype.error = function(reason) {};
/**
* @return {undefined}
* @see https://streams.spec.whatwg.org/#ts-default-controller-terminate
*/
TransformStreamDefaultController.prototype.terminate = function() {};
/**
* @record
* @template IN_VALUE, OUT_VALUE
* @see https://streams.spec.whatwg.org/#transformer-api
*/
function TransformStreamTransformer() {};
/**
* @type {(undefined|function(
* !TransformStreamDefaultController<OUT_VALUE>
* ):(!IThenable<*>|undefined)
* )}
*/
TransformStreamTransformer.prototype.start;
/**
* @type {(undefined|function(
* IN_VALUE, !TransformStreamDefaultController<OUT_VALUE>
* ):(!IThenable<*>|undefined)
* )}
*/
TransformStreamTransformer.prototype.transform;
/**
* @type {(undefined|function(
* !TransformStreamDefaultController<OUT_VALUE>
* ):(!IThenable<*>|undefined)
* )}
*/
TransformStreamTransformer.prototype.flush;
/**
* A transform stream (https://streams.spec.whatwg.org/#transform-stream).
* @record
* @template IN_VALUE, OUT_VALUE
*/
function ITransformStream() {}
/** @type {!WritableStream<IN_VALUE>} */
ITransformStream.prototype.writable;
/** @type {!ReadableStream<OUT_VALUE>} */
ITransformStream.prototype.readable;
/**
* @constructor
* @implements {ITransformStream<IN_VALUE, OUT_VALUE>}
* @template IN_VALUE, OUT_VALUE
* @param {!TransformStreamTransformer<IN_VALUE, OUT_VALUE>=} transformer
* @param {!QueuingStrategy=} writableStrategy
* @param {!QueuingStrategy=} readableStrategy
* @see https://streams.spec.whatwg.org/#ts-class
*/
function TransformStream(transformer, writableStrategy, readableStrategy) {};
/** @type {!WritableStream<IN_VALUE>} */
TransformStream.prototype.writable;
/** @type {!ReadableStream<OUT_VALUE>} */
TransformStream.prototype.readable;
/**
* @record
*/
function PipeOptions() {};
/** @type {undefined|boolean} */
PipeOptions.prototype.preventClose;
/** @type {undefined|boolean} */
PipeOptions.prototype.preventAbort;
/** @type {undefined|boolean} */
PipeOptions.prototype.preventCancel;
/**
* @record
* @template VALUE
*/
function ReadableStreamSource() {};
/**
* @type {(undefined|function(
* (!ReadableByteStreamController|!ReadableStreamDefaultController<VALUE>)
* ):(!IThenable<*>|undefined)
* )}
*/
ReadableStreamSource.prototype.start;
/**
* @type {(undefined|function(
* (!ReadableByteStreamController|!ReadableStreamDefaultController<VALUE>)
* ):(!IThenable<*>|undefined)
* )}
*/
ReadableStreamSource.prototype.pull;
/** @type {(undefined|function(*):(!Promise<void>|undefined))} */
ReadableStreamSource.prototype.cancel;
/** @type {(undefined|string)} */
ReadableStreamSource.prototype.type;
/** @type {(undefined|number)} */
ReadableStreamSource.prototype.autoAllocateChunkSize;
/**
* @record
*/
function ReadableStreamIteratorOptions() {};
/** @type {undefined|boolean} */
ReadableStreamIteratorOptions.prototype.preventCancel;
/**
* @constructor
* @template VALUE
* @param {!ReadableStreamSource<VALUE>=} opt_underlyingSource
* @param {!QueuingStrategy<VALUE>=} opt_queuingStrategy
* @see https://streams.spec.whatwg.org/#rs-class
*/
function ReadableStream(opt_underlyingSource, opt_queuingStrategy) {};
/**
* @type {boolean}
* @see https://streams.spec.whatwg.org/#rs-locked
*/
ReadableStream.prototype.locked;
/**
* @param {*} reason
* @return {!Promise<void>}
* @see https://streams.spec.whatwg.org/#rs-cancel
*/
ReadableStream.prototype.cancel = function(reason) {};
/**
* @param {{ mode:(undefined|string) }=} opt_options
* @return {(!ReadableStreamDefaultReader<VALUE>|!ReadableStreamBYOBReader)}
* @see https://streams.spec.whatwg.org/#rs-get-reader
*/
ReadableStream.prototype.getReader = function(opt_options) {};
/**
* @template PIPE_VALUE
* @param {!ITransformStream<PIPE_VALUE, VALUE>} transform
* @param {!PipeOptions=} opt_options
* @return {!ReadableStream<PIPE_VALUE>}
* @see https://streams.spec.whatwg.org/#rs-pipe-through
*/
ReadableStream.prototype.pipeThrough = function(transform, opt_options) {};
/**
* @param {!WritableStream<VALUE>} dest
* @param {!PipeOptions=} opt_options
* @return {!Promise<void>}
* @see https://streams.spec.whatwg.org/#rs-pipe-to
*/
ReadableStream.prototype.pipeTo = function(dest, opt_options) {};
/**
* @return {!Array<!ReadableStream<VALUE>>}
* @see https://streams.spec.whatwg.org/#rs-tee
*/
ReadableStream.prototype.tee = function() {};
/**
* @param {!ReadableStreamIteratorOptions=} options
* @return {!AsyncIterator}
* @see https://streams.spec.whatwg.org/#rs-asynciterator
*/
ReadableStream.prototype[Symbol.asyncIterator] = function(options) {};
/**
* The ReadableStreamDefaultReader constructor is generally not meant to be used
* directly; instead, a stream’s getReader() method should be used.
*
* @interface
* @template VALUE
* @see https://streams.spec.whatwg.org/#default-reader-class
*/
function ReadableStreamDefaultReader() {};
/**
* @type {!Promise<void>}
* @see https://streams.spec.whatwg.org/#default-reader-closed
*/
ReadableStreamDefaultReader.prototype.closed;
/**
* @param {*} reason
* @return {!Promise<void>}
* @see https://streams.spec.whatwg.org/#default-reader-cancel
*/
ReadableStreamDefaultReader.prototype.cancel = function(reason) {};
/**
* @return {!Promise<!IIterableResult<VALUE>>}
* @see https://streams.spec.whatwg.org/#default-reader-read
*/
ReadableStreamDefaultReader.prototype.read = function() {};
/**
* @return {undefined}
* @see https://streams.spec.whatwg.org/#default-reader-release-lock
*/
ReadableStreamDefaultReader.prototype.releaseLock = function() {};
/**
* The ReadableStreamBYOBReader constructor is generally not meant to be used
* directly; instead, a stream’s getReader() method should be used.
*
* @interface
* @see https://streams.spec.whatwg.org/#byob-reader-class
*/
function ReadableStreamBYOBReader() {};
/**
* @type {!Promise<void>}
* @see https://streams.spec.whatwg.org/#byob-reader-closed
*/
ReadableStreamBYOBReader.prototype.closed;
/**
* @param {*} reason
* @return {!Promise<void>}
* @see https://streams.spec.whatwg.org/#byob-reader-cancel
*/
ReadableStreamBYOBReader.prototype.cancel = function(reason) {};
/**
* @template BUFFER
* @param {BUFFER} view
* @return {!Promise<!IIterableResult<BUFFER>>}
* @see https://streams.spec.whatwg.org/#byob-reader-read
*/
ReadableStreamBYOBReader.prototype.read = function(view) {};
/**
* @return {undefined}
* @see https://streams.spec.whatwg.org/#byob-reader-release-lock
*/
ReadableStreamBYOBReader.prototype.releaseLock = function() {};
/**
* The ReadableStreamDefaultController constructor cannot be used directly;
* it only works on a ReadableStream that is in the middle of being constructed.
*
* @interface
* @template VALUE
* @see https://streams.spec.whatwg.org/#rs-default-controller-class
*/
function ReadableStreamDefaultController() {};
/**
* @type {number}
* @see https://streams.spec.whatwg.org/#rs-default-controller-desired-size
*/
ReadableStreamDefaultController.prototype.desiredSize;
/**
* @return {undefined}
* @see https://streams.spec.whatwg.org/#rs-default-controller-close
*/
ReadableStreamDefaultController.prototype.close = function() {};
/**
* @param {VALUE} chunk
* @return {undefined}
* @see https://streams.spec.whatwg.org/#rs-default-controller-enqueue
*/
ReadableStreamDefaultController.prototype.enqueue = function(chunk) {};
/**
* @param {*} err
* @return {undefined}
* @see https://streams.spec.whatwg.org/#rs-default-controller-error
*/
ReadableStreamDefaultController.prototype.error = function(err) {};
/**
* The ReadableByteStreamController constructor cannot be used directly;
* it only works on a ReadableStream that is in the middle of being constructed.
*
* @interface
* @see https://streams.spec.whatwg.org/#rbs-controller-class
*/
function ReadableByteStreamController() {};
/**
* @type {!ReadableStreamBYOBRequest}
* @see https://streams.spec.whatwg.org/#rbs-controller-byob-request
*/
ReadableByteStreamController.prototype.byobRequest;
/**
* @type {number}
* @see https://streams.spec.whatwg.org/#rbs-controller-desired-size
*/
ReadableByteStreamController.prototype.desiredSize;
/**
* @return {undefined}
* @see https://streams.spec.whatwg.org/#rbs-controller-close
*/
ReadableByteStreamController.prototype.close = function() {};
/**
* @param {!ArrayBufferView} chunk
* @return {undefined}
* @see https://streams.spec.whatwg.org/#rbs-controller-enqueue
*/
ReadableByteStreamController.prototype.enqueue = function(chunk) {};
/**
* @param {*} err
* @return {undefined}
* @see https://streams.spec.whatwg.org/#rbs-controller-error
*/
ReadableByteStreamController.prototype.error = function(err) {};
/**
* @interface
* @see https://streams.spec.whatwg.org/#rs-byob-request-class
*/
function ReadableStreamBYOBRequest() {};
/**
* @type {!ArrayBufferView}
* @see https://streams.spec.whatwg.org/#rs-byob-request-view
*/
ReadableStreamBYOBRequest.prototype.view;
/**
* @param {number} bytesWritten
* @return {undefined}
* @see https://streams.spec.whatwg.org/#rs-byob-request-respond
*/
ReadableStreamBYOBRequest.prototype.respond = function(bytesWritten) {};
/**
* @param {!ArrayBufferView} view
* @return {undefined}
* @see https://streams.spec.whatwg.org/#rs-byob-request-respond-with-new-view
*/
ReadableStreamBYOBRequest.prototype.respondWithNewView = function(view) {};
/**
* @record
* @template VALUE
*/
function WritableStreamSink() {};
/** @type {(undefined|function(!WritableStreamDefaultController):(!IThenable<*>|undefined))}*/
WritableStreamSink.prototype.start;
/**
* @type {(undefined|function(VALUE,
* !WritableStreamDefaultController):(!IThenable<*>|undefined))}
*/
WritableStreamSink.prototype.write;
/** @type {(undefined|function():(!IThenable<*>|undefined))} */
WritableStreamSink.prototype.close;
/** @type {(undefined|function(*):(!IThenable<*>|undefined))} */
WritableStreamSink.prototype.abort;
/**
* @constructor
* @template VALUE
* @param {!WritableStreamSink<VALUE>=} opt_underlyingSink
* @param {!QueuingStrategy<VALUE>=} opt_queuingStrategy
* @see https://streams.spec.whatwg.org/#ws-class
*/
function WritableStream(opt_underlyingSink, opt_queuingStrategy) {};
/**
* @type {boolean}
* @see https://streams.spec.whatwg.org/#ws-locked
*/
WritableStream.prototype.locked;
/**
* @param {*} reason
* @return {!Promise<undefined>}
* @see https://streams.spec.whatwg.org/#ws-abort
*/
WritableStream.prototype.abort = function(reason) {};
/**
* @return {!Promise<undefined>}
* @see https://streams.spec.whatwg.org/#ws-close
*/
WritableStream.prototype.close = function() {};
/**
* @return {!WritableStreamDefaultWriter<VALUE>}
* @see https://streams.spec.whatwg.org/#ws-get-writer
*/
WritableStream.prototype.getWriter = function() {};
/**
* @interface
* @template VALUE
* @see https://streams.spec.whatwg.org/#default-writer-class
*/
function WritableStreamDefaultWriter() {};
/**
* @type {!Promise<undefined>}
* @see https://streams.spec.whatwg.org/#default-writer-closed
*/
WritableStreamDefaultWriter.prototype.closed;
/**
* @type {number}
* @see https://streams.spec.whatwg.org/#default-writer-desiredSize
*/
WritableStreamDefaultWriter.prototype.desiredSize;
/**
* @type {!Promise<number>}
* @see https://streams.spec.whatwg.org/#default-writer-ready
*/
WritableStreamDefaultWriter.prototype.ready;
/**
* @param {*} reason
* @return {!Promise<undefined>}
* @see https://streams.spec.whatwg.org/#default-writer-abort
*/
WritableStreamDefaultWriter.prototype.abort = function(reason) {};
/**
* @return {!Promise<undefined>}
* @see https://streams.spec.whatwg.org/#default-writer-close
*/
WritableStreamDefaultWriter.prototype.close = function() {};
/**
* @return {undefined}
* @see https://streams.spec.whatwg.org/#default-writer-release-lock
*/
WritableStreamDefaultWriter.prototype.releaseLock = function() {};
/**
* @param {VALUE} chunk
* @return {!Promise<undefined>}
* @see https://streams.spec.whatwg.org/#default-writer-write
*/
WritableStreamDefaultWriter.prototype.write = function(chunk) {};
/**
* The WritableStreamDefaultController constructor cannot be used directly;
* it only works on a WritableStream that is in the middle of being constructed.
*
* @interface
* @see https://streams.spec.whatwg.org/#ws-default-controller-class
*/
function WritableStreamDefaultController() {};
/**
* @param {*} err
* @return {!Promise<undefined>}
* @see https://streams.spec.whatwg.org/#ws-default-controller-error
*/
WritableStreamDefaultController.prototype.error = function(err) {};
/**
* @param {{ highWaterMark:number }} config
* @constructor
* @see https://streams.spec.whatwg.org/#blqs-class
*/
function ByteLengthQueuingStrategy(config) {}
/**
* If we don't want to be strict we can define chunk as {*}
* and return as {number|undefined}
*
* @param {{ byteLength:number }} chunk
* @return {number}
* @see https://streams.spec.whatwg.org/#blqs-size
*/
ByteLengthQueuingStrategy.prototype.size = function(chunk) {};
/**
* @param {{ highWaterMark:number }} config
* @constructor
* @see https://streams.spec.whatwg.org/#cqs-class
*/
function CountQueuingStrategy(config) {}
/**
* @param {*} chunk
* @return {number}
* @see https://streams.spec.whatwg.org/#cqs-size
*/
CountQueuingStrategy.prototype.size = function(chunk) {};