babel-plugin-transform-walrus-operator

compile walrus operator into an IIFE

Usage no npm install needed!

<script type="module">
  import babelPluginTransformWalrusOperator from 'https://cdn.skypack.dev/babel-plugin-transform-walrus-operator';
</script>

README

babel-plugin-transform-walrus-operator

compile the walrus operator := to an IIFE

About

assignment statement

  • assigns 42 to x
x = 42;

assignment expression

  • assigns 42 to x
  • returns 42
(x := 42)

Example use case

y = func(x);
const arr = [y, y ** 2, y ** 4, y ** 6];

can become

const arr = [y := func(x), y ** 2, y ** 4, y ** 6]

Transformation

if (x := 2) alert();

becomes

if (function (x) {
  if (typeof x === 'undefined') throw new Error();
  x = 2;
  return x;
}(x)) alert();

Babel Setup

this plugin relies upon the := token, it will have to be manually added to babel's parser

follow Tan Li Hau's guide, you will fork babel and add a token to the parser

Installation

$ npm install --save-dev babel-plugin-transform-walrus-operator

Usage

Via .babelrc (Recommended)

.babelrc

{
  "plugins": ["transform-walrus-operator"]
}

Via CLI

$ babel --plugins transform-walrus-operator script.js

Via Node API

require('babel-core').transform('code', {
  plugins: ['transform-walrus-operator'],
});

License

MIT