nodejs, linting and more...

* supporting global in nodejs
* avoiding overruling `global.Promise` when it is present
* adding lint and pretest commands