mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-31 10:27:01 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			150 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Copyright Joyent, Inc. and other Node contributors.
 | |
| //
 | |
| // Permission is hereby granted, free of charge, to any person obtaining a
 | |
| // copy of this software and associated documentation files (the
 | |
| // "Software"), to deal in the Software without restriction, including
 | |
| // without limitation the rights to use, copy, modify, merge, publish,
 | |
| // distribute, sublicense, and/or sell copies of the Software, and to permit
 | |
| // persons to whom the Software is furnished to do so, subject to the
 | |
| // following conditions:
 | |
| //
 | |
| // The above copyright notice and this permission notice shall be included
 | |
| // in all copies or substantial portions of the Software.
 | |
| //
 | |
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | |
| // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | |
| // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 | |
| // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 | |
| // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 | |
| // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
 | |
| // USE OR OTHER DEALINGS IN THE SOFTWARE.
 | |
| 'use strict'
 | |
| 
 | |
| const { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')
 | |
| 
 | |
| const {
 | |
|   promisify: { custom: customPromisify }
 | |
| } = require('./ours/util')
 | |
| 
 | |
| const { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')
 | |
| 
 | |
| const {
 | |
|   codes: { ERR_ILLEGAL_CONSTRUCTOR }
 | |
| } = require('./ours/errors')
 | |
| 
 | |
| const compose = require('./internal/streams/compose')
 | |
| 
 | |
| const { pipeline } = require('./internal/streams/pipeline')
 | |
| 
 | |
| const { destroyer } = require('./internal/streams/destroy')
 | |
| 
 | |
| const eos = require('./internal/streams/end-of-stream')
 | |
| 
 | |
| const internalBuffer = {}
 | |
| 
 | |
| const promises = require('./stream/promises')
 | |
| 
 | |
| const utils = require('./internal/streams/utils')
 | |
| 
 | |
| const Stream = (module.exports = require('./internal/streams/legacy').Stream)
 | |
| 
 | |
| Stream.isDisturbed = utils.isDisturbed
 | |
| Stream.isErrored = utils.isErrored
 | |
| Stream.isReadable = utils.isReadable
 | |
| Stream.Readable = require('./internal/streams/readable')
 | |
| 
 | |
| for (const key of ObjectKeys(streamReturningOperators)) {
 | |
|   const op = streamReturningOperators[key]
 | |
| 
 | |
|   function fn(...args) {
 | |
|     if (new.target) {
 | |
|       throw ERR_ILLEGAL_CONSTRUCTOR()
 | |
|     }
 | |
| 
 | |
|     return Stream.Readable.from(ReflectApply(op, this, args))
 | |
|   }
 | |
| 
 | |
|   ObjectDefineProperty(fn, 'name', {
 | |
|     value: op.name
 | |
|   })
 | |
|   ObjectDefineProperty(fn, 'length', {
 | |
|     value: op.length
 | |
|   })
 | |
|   ObjectDefineProperty(Stream.Readable.prototype, key, {
 | |
|     value: fn,
 | |
|     enumerable: false,
 | |
|     configurable: true,
 | |
|     writable: true
 | |
|   })
 | |
| }
 | |
| 
 | |
| for (const key of ObjectKeys(promiseReturningOperators)) {
 | |
|   const op = promiseReturningOperators[key]
 | |
| 
 | |
|   function fn(...args) {
 | |
|     if (new.target) {
 | |
|       throw ERR_ILLEGAL_CONSTRUCTOR()
 | |
|     }
 | |
| 
 | |
|     return ReflectApply(op, this, args)
 | |
|   }
 | |
| 
 | |
|   ObjectDefineProperty(fn, 'name', {
 | |
|     value: op.name
 | |
|   })
 | |
|   ObjectDefineProperty(fn, 'length', {
 | |
|     value: op.length
 | |
|   })
 | |
|   ObjectDefineProperty(Stream.Readable.prototype, key, {
 | |
|     value: fn,
 | |
|     enumerable: false,
 | |
|     configurable: true,
 | |
|     writable: true
 | |
|   })
 | |
| }
 | |
| 
 | |
| Stream.Writable = require('./internal/streams/writable')
 | |
| Stream.Duplex = require('./internal/streams/duplex')
 | |
| Stream.Transform = require('./internal/streams/transform')
 | |
| Stream.PassThrough = require('./internal/streams/passthrough')
 | |
| Stream.pipeline = pipeline
 | |
| 
 | |
| const { addAbortSignal } = require('./internal/streams/add-abort-signal')
 | |
| 
 | |
| Stream.addAbortSignal = addAbortSignal
 | |
| Stream.finished = eos
 | |
| Stream.destroy = destroyer
 | |
| Stream.compose = compose
 | |
| ObjectDefineProperty(Stream, 'promises', {
 | |
|   configurable: true,
 | |
|   enumerable: true,
 | |
| 
 | |
|   get() {
 | |
|     return promises
 | |
|   }
 | |
| })
 | |
| ObjectDefineProperty(pipeline, customPromisify, {
 | |
|   enumerable: true,
 | |
| 
 | |
|   get() {
 | |
|     return promises.pipeline
 | |
|   }
 | |
| })
 | |
| ObjectDefineProperty(eos, customPromisify, {
 | |
|   enumerable: true,
 | |
| 
 | |
|   get() {
 | |
|     return promises.finished
 | |
|   }
 | |
| }) // Backwards-compat with node 0.4.x
 | |
| 
 | |
| Stream.Stream = Stream
 | |
| 
 | |
| Stream._isUint8Array = function isUint8Array(value) {
 | |
|   return value instanceof Uint8Array
 | |
| }
 | |
| 
 | |
| Stream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {
 | |
|   return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)
 | |
| }
 |