Skip to content
This repository has been archived by the owner on Dec 13, 2021. It is now read-only.
/ run-gen Public archive

(Obsolete) Run generators to completion

License

Notifications You must be signed in to change notification settings

nhz-io/run-gen

Repository files navigation

run-gen

NPM Version Bithound Status License

Run generators to completion

  • Use generators (almost) as you would normally use functions.
  • use result = yield Promise.resolve('result') to abstract the async
  • return result from generator as completion value

Install

npm i -S run-gen

Dev

git clone https://github.com/nhz-io/run-gen
cd run-gen
npm i
npm start

Coverage

npm run coverage

Example usage (NPM Downloads stats)

const fetch = require('node-fetch')
const run = require('run-gen')

const downloadsUrl = `https://api.npmjs.org/downloads/point`
const registryUrl = `https://registry.npmjs.org`

function* downloads(pkg, period) {
    const res = yield fetch(`${downloadsUrl}/${period}/${pkg}`)
    const stats = JSON.parse(yield res.text())
    return (stats && stats.downloads) || 'unknown'
}

function* info(pkg) {
    const res = yield fetch(`${registryUrl}/${pkg}`)
    const info = JSON.parse(yield res.text())
    return {
        name: info.name,
        description: info.description,
    }
}

function* stats(pkg, period = 'last-month') {
    return Object.assign(
        {},
        yield* info(pkg),
        {downloads: yield* downloads(pkg, period)}
    )
}

run(stats('npm')).then(r => console.log(r), e => console.log(e))

License

About

(Obsolete) Run generators to completion

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published