mirror-creator
One more way to create an object with values equal to its key names.
Install
Get it via npm
:
npm install --save mirror-creator
Usage
// actionTypes.js; 'SOME_ACTION_TYPE' 'ANOTHER_ACTION_TYPE' 'ONE_MORE_ACTION_TYPE'; // Or you can specify prefix to avoid type name conflicts 'SOME_ACTION_TYPE' 'ANOTHER_ACTION_TYPE' 'ONE_MORE_ACTION_TYPE' prefix: 'mydomain/' ; // actionCreator.js; ;
Pros: DRY & clean.
Cons: If you use Closure Compiler advanced mode for JS minification — keys are not optimized. Use keyMirror
instead. Details.
Why
Use it if you don't like native or keyMirror
ways of defining constants in flux / redux apps.
Native way:
// actionTypes.jsconst SOME_ACTION_TYPE = 'SOME_ACTION_TYPE';const ANOTHER_ACTION_TYPE = 'ANOTHER_ACTION_TYPE';const ONE_MORE_ACTION_TYPE = 'ONE_MORE_ACTION_TYPE'; // actionCreator.js; ;
Pros: No third-party lib required.
Cons: Duplications. Noisy.
keyMirror
way:
// actionTypes.js; SOME_ACTION_TYPE : null ANOTHER_ACTION_TYPE : null ONE_MORE_ACTION_TYPE: null; // actionCreator.js; ;
Pros: DRY. If Closure Compiler advanced mode is used — keys are optimized.
Cons: null
noise.