# 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` |