# p-transform Promised out of order transform. ## Usage A [Transform](https://nodejs.org/api/stream.html#implementing-a-transform-stream) that uses objectMode and implements custom `_write` and `_flush` methods. `transform` implementation must be sync or return a promise. Callback is not supported. Promisified `pipeline` and `transform` shortcut are provided for convenience. ``` const { PTransform, transform, pipeline } = require('p-transform'); await pipeline( new PTransform({ transform: async file => file }), transform(async file => file); ) ``` ## Debug Use `DEBUG=p-transform:*` environment variable. For custom debug name set `logName` option at PTransform constructor or `transform` argument. ## License Apache-2.0 # API ## Classes
PTransform
## Constants
pipeline

Promisified pipeline

## Functions
transform(transform, logName)

Shortcut to create a PTransform with transform and logName.

passthrough(spy, logName)

Shortcut to create a passthrough PTransform with spy and logName.

filter(filter, logName)

Shortcut to create a filter PTransform with filter and logName.

## PTransform **Kind**: global class - [PTransform](#PTransform) - [new PTransform([options])](#new_PTransform_new) - [.name(name)](#PTransform+name) ⇒ [PTransform](#PTransform) - [.flushQueue()](#PTransform+flushQueue) ⇒ - [.queuedTransform(chunk, encoding)](#PTransform+queuedTransform) ⇒ ### new PTransform([options]) PTransform | Param | Type | Description | | ---------------------- | --------------------- | -------------------------------------- | | [options] | Object | Options object forwarded to Transform. | | [options.logName] | String | Custom name for logger. | | [options.transform] | function | Transform function. | | [options.queueOptions] | Object | Options forwarded to PQueue instance. | ### pTransform.name(name) ⇒ [PTransform](#PTransform) Set log name. **Kind**: instance method of [PTransform](#PTransform) **Returns**: [PTransform](#PTransform) - this | Param | Type | | ----- | ------------------- | | name | String | ### pTransform.flushQueue() ⇒ Wait for queue idle. **Kind**: instance method of [PTransform](#PTransform) **Returns**: Promise ### pTransform.queuedTransform(chunk, encoding) ⇒ Queued transform operation. **Kind**: instance method of [PTransform](#PTransform) **Returns**: Promise | Param | Type | | -------- | ------------------- | | chunk | Object | | encoding | String | ## pipeline Promisified pipeline **Kind**: global constant ## transform(transform, logName) Shortcut to create a PTransform with transform and logName. **Kind**: global function | Param | Type | | --------- | --------------------- | | transform | function | | logName | String | ## passthrough(spy, logName) Shortcut to create a passthrough PTransform with spy and logName. **Kind**: global function | Param | Type | | ------- | --------------------- | | spy | function | | logName | String | ## filter(filter, logName) Shortcut to create a filter PTransform with filter and logName. **Kind**: global function | Param | Type | | ------- | --------------------- | | filter | function | | logName | String |