swc-plugin-dev-expression

A port of Facebook's dev-expression Babel plugin.
This plugin gates calls to warning() behind process.env.NODE_ENV !== 'production', modifies calls to invariant() to hoist the condition outside of the function call, and replaces __DEV__ expressions with a NODE_ENV check. Most bundlers will then strip these calls out of production code entirely. The transform applied to warning() and invariant() is identical to the behaviour of babel-plugin-dev-expression. The transformation of __DEV__ differs and is only done in more constrained conditions, for ease of implementation. See note below.
invariant
Replaces
;
with
if
Recommended for use with https://github.com/zertosh/invariant or smaller https://github.com/alexreardon/tiny-invariant.
warning
Replaces
;
with
if
Recommended for use with https://github.com/r3dm/warning or smaller https://github.com/alexreardon/tiny-warning.
__DEV__
Replaces
if
;
!__DEV__;
;
;
with
if
;
!;
&& true;
|| false;
Note: The plugin does not transform every single reference to __DEV__. It will only make this substitution if __DEV__ is the entire condition in an if statement or ? conditional expression, or if __DEV__ is an argument to a logical expression (!, && or ||). If this limitation poses any problems for your usage, please get in touch.
## License This project is Copyright of Angel Wells, licenced under GPL 3.0 or later.