Transform stream that performs text search and replacements


Node.js transform stream that performs text based search and replacements. It performs correctly over chunk boundaries, and is efficient when performing multiple search / replacements over a stream of text.

npm install replacer

Let's say we have the following text file:

// story.txt
The cow ate the pig.
The cow ate the hen.
The cow ate the horse.

To replace all occurrences of 'cow' with 'dog' we could do this:

var fs = require('fs');
var path = require('path');
var Replacer = require('replacer');
var filePath = path.resolve(__dirname, 'story.txt');
  .pipe(new Replacer('cow', 'dog'))

This will print:

The dog ate the pig.
The dog ate the hen.
The dog ate the horse.

To perform multiple replacements:

var replacements = [
  { search: 'cow', replace: 'dog' },
  { search: 'pig', replace: 'fox' },
  { search: 'hen', replace: 'hog' }
  .pipe(new Replacer(replacements))

This would print:

The dog ate the fox.
The dog ate the hog.
The dog ate the horse.

Replacer was insipired by replacestream.