apparat

apparat is a simple but powerful way to organize async code for nodejs

Usage no npm install needed!

<script type="module">
  import apparat from 'https://cdn.skypack.dev/apparat';
</script>

README

Apparat

a simple yet powerful way to organize async code

Install

npm install apparat

Usage Example

read domain from file domain.txt. in parallel write resolved IPV4 addresses to addresses4.txt and write resolved IPV6 addresses to addresses6.txt. remove domain.txt when both files have been written successfully.

fs = require 'fs'
dns = require 'dns'

Apparat = require 'apparat'

{receive, send, onError, debug} = new Apparat

debug console.log
onError (err) -> throw err

fs.readFile 'domain.txt', send 'contents'

receive 'contents', (contents) ->
    domain = contents.toString().trim()
    # parallel
    dns.resolve4 domain, send 'addresses4'
    dns.resolve6 domain, send 'addresses6'

receive 'addresses4', (addresses) ->
    fs.writeFile 'adresses4.txt', addresses.join('\n'), send 'addresses4 written'

receive 'addresses6', (addresses) ->
    fs.writeFile 'adresses6.txt', addresses.join('\n'), send 'addresses6 written'

receive 'addresses4 written', 'addresses6 written', ->
    fs.unlink 'domain.txt', send 'deleted'

receive 'deleted', ->
    console.log 'OK'

License: MIT