Socket
Socket
Sign inDemoInstall

ducted

Package Overview
Dependencies
0
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ducted

general-purpose pipeline manager


Version published
Maintainers
1
Install size
154 kB
Created

Readme

Source

ducted

The purpose of ducted is to act as a general-purpose pipeline manager. A pipeline is built from steps, each of which processes a context (synchronously or asynchronously). A step is typically either a function or itself a pipeline.

It essentially tries to hit a sweet spot not far from streams and promises, but without doing your head in and with a number of additional facilities that are useful when implementing a pipeline.

An example, even a stupid one like the following, should give you an idea.

import { pipe } from 'ducted';
import fs from 'fs';
pipe(
  ctx => fs.readFile(ctx.data.source, 'utf8', (err, content) => {
          if (err) ctx.error(err);
          ctx.content = content;
          ctx.done();
        }),
  ctx => {
          if (/unicorn/i.test(ctx.data.content)) ctx.warn('Shh, do not mention the unicorns.');
          ctx.done();
  },
  ctx => { ctx.data.content = ctx.data.content.toUpperCase(); ctx.done(); },
  ctx => fs.writeFile(ctx.data.output, ctx.data.content, 'utf8', (err) => {
            if (err) ctx.error(err);
            ctx.done();
        })
)
.on('duct:end', (data) => {
  console.log('Uppercased some data');
})
.run({ source: 'in.txt', output: 'out.txt' });

Obviously, the above example is pretty contrived. It would be a lot easier to just code it out without ducted. But ducted starts to shine in more elaborate pipelines, with more complex flows, and when code is reused and pipelines get composed.

Keywords

FAQs

Last updated on 24 Sep 2015

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc