Security News
Combatting Alert Fatigue by Prioritizing Malicious Intent
In 2023, data breaches surged 78% from zero-day and supply chain attacks, but developers are still buried under alerts that are unable to prevent these threats.
async-to-gen
Advanced tools
Transform async functions to generator functions with speed and simplicity.
Turn your JavaScript with async functions into ES6 generators so they can be used in modern browsers or in node.js (v0.12 or newer).
Async functions are an exciting new proposed addition to JavaScript. The v8 team is hard at work getting it right, which means it could appear in future versions of node.js. However if you're impatient like me, then you probably just can't wait to get rid of your promise triangles and callback hell.
You can use Babel to accomplish this, but async-to-gen
is a faster, simpler, zero-configuration alternative with minimal dependencies
for super-fast npm install
and transform time.
Use the command line:
npm install --global async-to-gen
async-to-gen --help
async-to-gen input.js > output.js
Or the JavaScript API:
npm install async-to-gen
var asyncToGen = require('async-to-gen');
var fs = require('fs');
var input = fs.readFileSync('input.js', 'utf8');
var output = asyncToGen(input).toString();
fs.writeFileSync('output.js', output);
// source maps!
var map = asyncToGen(input, { sourceMaps: true }).generateMap();
fs.writeFileSync('output.js.map', output);
async-node
Wherever you use node
you can substitute async-node
and have a super fast
async functions aware evaluator or REPL.
$ async-node
> async function answer() {
... return await 42
... }
undefined
> promise = answer()
Promise { <pending> }
> promise.then(console.log)
Promise { <pending> }
42
Using the require hook allows you to automatically compile files on the fly when requiring in node:
require('async-to-gen/register')
require('./some-module-with-async-functions')
Writing tests in mocha? Async functions are super handy for testing any code using promises and already work out of the box! To enable async functions in mocha include the require hook when you run your tests:
mocha --require async-to-gen/register test.js
Then in your tests, use async functions in your it
clauses:
describe('My Promising Module', () => {
it('promises to give a value', async () => {
expect(await myFunction('input')).to.equal('output')
})
})
Have interactive scripts that require lots of input from the user? Async functions make writing those much easier! Check out interactive-script.
npm install interactive-script
Then write your script:
const interactive = require('interactive-script')
interactive(async (say, ask) => {
say('What is your favorite number?')
let num;
do {
num = Math.ceil(Math.random() * 100)
} while (!(await ask(`Is it ${num}? `, 'yN')))
say(`Great, I think ${num} is a fine number.`)
})
And run it with async-node
:
async-node myScript.js
When async-to-gen
transforms async functions, it does not affect the location
of lines in a file, leading to easier to understand stack traces when debugging.
It also includes a very small (227 byte) conversion function at the bottom of the file.
Before:
async function foo() {
return await x
}
After:
function foo() {return __async(function*(){
return yield x
})}
function __async(f){/* small helper function */}
FAQs
Transform async functions to generator functions with speed and simplicity.
The npm package async-to-gen receives a total of 19,449 weekly downloads. As such, async-to-gen popularity was classified as popular.
We found that async-to-gen demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
In 2023, data breaches surged 78% from zero-day and supply chain attacks, but developers are still buried under alerts that are unable to prevent these threats.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.