Package Exports
- babel-plugin-transform-nullish-operator
- babel-plugin-transform-nullish-operator/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (babel-plugin-transform-nullish-operator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
babel-plugin-transform-nullish-operator

This package is a babel plugin which can be used to emulate the Coffeescript existence operator (a?) in Babel using the new coalescing nullish operator (Stage 4 proposal).
This is completely non-standard, experimental and could break at any time.
Example
In
var fooExists = object.foo ?? EXISTS;Out
var _object$foo;
var fooExists = (_object$foo = object.foo) !== null && _object$foo !== void 0;NOTE: We cannot use
!= nullhere becausedocument.all == nullanddocument.allhas been deemed not "nullish".
Installation
npm install --save-dev babel-plugin-transform-nullish-operatorUsage
With a configuration file (Recommended)
{
"plugins": ["babel-plugin-transform-nullish-operator"]
}Via CLI
babel --plugins babel-plugin-transform-nullish-operator script.jsVia Node API
require("@babel/core").transform("code", {
plugins: ["babel-plugin-transform-nullish-operator"]
});Options
identifier
string, defaults to EXISTS.
Can be used to change the identifier which is used to trigger this alternative behavior of the nullish coalescing operator.
Example with {"identifier": "DO_YOU_EXIST"}
In
var fooExists = object.foo ?? DO_YOU_EXIST;Out
var _object$foo;
var fooExists = (_object$foo = object.foo) !== null && _object$foo !== void 0;Linting
Your linter might EXISTS as undefined (which is true, the symbol doesn't actually exists, it is only a placeholder), in that case you will need to explicitely add it in your config.
Example using eslint:
{
...
"globals": {
"EXISTS": "readonly"
},
...
}References & Thanks
This is project is heavily based on Babel's @babel/plugin-proposal-nullish-coalescing-operator (including code, tests, usage, etc).
License
MIT, Copyright (c) 2020-2020 Louis Brunner