28 lines
		
	
	
		
			793 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			793 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { Encoding, MixedEncoding, KnownEncoding, KnownEncodingName } from './lib/encoding'
 | |
| 
 | |
| export class Transcoder<T = any> {
 | |
|   /**
 | |
|    * Create a Transcoder.
 | |
|    * @param formats Formats supported by consumer.
 | |
|    */
 | |
|   constructor (formats: Array<'buffer'|'view'|'utf8'>)
 | |
| 
 | |
|   /**
 | |
|    * Get an array of supported encoding objects.
 | |
|    */
 | |
|   encodings (): Array<Encoding<any, T, any>>
 | |
| 
 | |
|   /**
 | |
|    * Get the given encoding, creating a transcoder encoding if necessary.
 | |
|    * @param encoding Named encoding or encoding object.
 | |
|    */
 | |
|   encoding<TIn, TFormat, TOut> (
 | |
|     encoding: MixedEncoding<TIn, TFormat, TOut>
 | |
|   ): Encoding<TIn, T, TOut>
 | |
| 
 | |
|   encoding<N extends KnownEncodingName> (encoding: N): KnownEncoding<N, T>
 | |
|   encoding (encoding: string): Encoding<any, T, any>
 | |
| }
 | |
| 
 | |
| export * from './lib/encoding'
 |