I have an ES6 module that exports two constants:
export const foo = "foo";
export const bar = "bar";
I can do the following in another module:
import { foo as f, bar as b } from 'module';
console.log(`${f} ${b}`); // foo bar
When I use NodeJS modules, I would have written it like this:
module.exports.foo = "foo";
module.exports.bar = "bar";
Now when I use it in another module can I somehow rename the imported variables as with ES6 modules?
const { foo as f, bar as b } = require('module'); // invalid syntax
console.log(`${f} ${b}`); // foo bar
How can I rename the imported constants in NodeJS modules?
Sure, just use the object destructuring syntax:
const { old_name: new_name, foo: f, bar: b } = require('module');
It is possible (tested with Node 8.9.4):
const {foo: f, bar: b} = require('module');
console.log(`${f} ${b}`); // foo bar
Yes, a simple destructure would adhere to your request.
var events = require('events');
var emitter = new events.EventEmitter();
const emitter = {EventEmitter} = require('events');
emitter() will alias the method EventEmitter()
Just remember to instantiate your named function: var e = new emitter(); 😁