Overload the pipe operator (|) to provide Elixir/F#/Shell-like behavior
import { map, filter } from 'lodash';
const array = [1, 2, 3, 4, 5];
array
| map(n => n * 2)
| filter(n => n % 3 == 0);If you want to use the original pipe operator, you can disable this plugin in current scope (and it children scopes) using "no pipe" directive
const fn = () => {
  const arr = [1, 2, 3] | map(n => n + 1);
  return () => {
    "no pipe";
    arr.map(n => n | 1);
  };
};$ npm install --save-dev babel-plugin-pipe-operator.babelrc
{
  "plugins": ["pipe-operator"]
}$ babel --plugins pipe-operator script.jsrequire("babel-core").transform("code", {
  plugins: ["pipe-operator"]
});MIT