top-level-await

by robertklep

robertklep /top-level-await

Use `await` at your Node.js code's top level!

127 Stars 9 Forks Last release: Not found 5 Commits 1 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

top-level-await (PoC)

Allow using

await
at your code's top level. Requires Node.js v7.6.0 or higher.

Not this:

// 💩
(async function() {
  console.log(await Promise.resolve('hello world'));
})();

But this:

// 🎉
console.log(await Promise.resolve('hello world'));

Installation

npm i top-level-await

Usage

It's a two-step process: first

require()
this module, then
require()
the rest of your code:
// bootstrap.js
require('top-level-await');
require('./app');

Inside

app.js
, you can use
await
whenever you like.

You can also tell Node to require the module for you, instead of using a separate bootstrap script:

$ node -r top-level-await app

Which works for CLI tools too: ```

!/usr/bin/env node -r top-level-await

console.log( await Promise.resolve('hello world') ); ```

How?

By hacking

Module.wrap()
.

This is done without prejudice, so all modules that get loaded after loading this module will be "fixed".

Is it production-ready?

¯\_(ツ)_/¯

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.