MaxMEllon / babel-plugin-transform-isNil

[DEPLECATED] RIP :blue_heart: Replace the comparing of null or undefined with isNil :b:

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

babel-plugin-transform-isNil is dead

Coming new syntax as proposal-optional-chaining on babel7

Which is only compatible with babel6

Please use @babel/plugin-proposal-optional-chaining

babel-plugin-transform-isNil

About

I like Existential Operator in CoffeeScript. CoffeeScript can be written as follows:

hoge?

Become to JavaScript

hoge == null

Same meaning

hoge === null || hoge === undefined

I want to do the same thing in JavaScript.

Installation

$ npm install --save babel-plugin-transform-isnil

Example

In

if (foo.isNil) {
  console.log('foo is null or undefined');
}

Out

if (foo === null || foo === undefined) {
  console.log('foo is null or undefined');
}

In

if (hoge.poge.isNil && foo.bar.isNil) {
  console.log('hoge.poge and foo.bar is null or undefined');
}

Out

if ((hoge.poge === null || hoge.poge === undefined) && (foo.bar === null || foo.bar === undefined)) {
  console.log('hoge.poge and foo.bar is null or undefined');
}

In

if (hoge.poge().isNil) {
  console.log('returned value of hoge.poge() function is null or undefined');
}

Out

if (hoge.poge() === null || hoge.poge() === undefined) {
  console.log('returned value of hoge.poge() function is null or undefined');
}

In

if (hoge.poge(hoge).isNil) {
  console.log('returned value of hoge.poge() function is null or undefined');
}

Out

if (hoge.poge(hoge) === null || hoge.poge(hoge) === undefined) {
  console.log('returned value of hoge.poge() function is null or undefined');
}

Usage

Via .babelrc

{
  "plugins": ["babel-plugin-transform-isnil"]
}

Development

Requirement global

  • Node v4 or above
$ git clone https://github.com/MaxMEllon/babel-plugin-transform-isNil
$ cd babel-plugin-transform-isNil
$ npm install

$ npm test

Special Thanks

LICENSE

MIT

About

[DEPLECATED] RIP :blue_heart: Replace the comparing of null or undefined with isNil :b:

License:MIT License


Languages

Language:JavaScript 100.0%