babel-plugin-transform-walrus-operator

0.0.3 • Public • Published

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

/babel-plugin-transform-walrus-operator/

    Package Sidebar

    Install

    npm i babel-plugin-transform-walrus-operator

    Weekly Downloads

    0

    Version

    0.0.3

    License

    MIT

    Unpacked Size

    4.55 kB

    Total Files

    9

    Last publish

    Collaborators

    • samparsons