0.3.0 • Published 6 years ago

webmiddle-service-pipe v0.3.0

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

webmiddle-service-pipe

Executes a sequence of services, piping their results (resources) to the subsequent services in the chain.

Install

npm install --save webmiddle-service-pipe

Usage

import { PropTypes, rootContext } from 'webmiddle';
import Pipe from 'webmiddle-service-pipe';

const MyService = () => (
  <Pipe>
    <SubService1
      name="resource1"
    />

    {({ resource1 }) =>
      <SubService2
        name="resource2"
        {/*...*/}
      />
    }

    {({ resource1, resource2 }) =>
      <SubService3
        name="resource3"
        {/*...*/}
      />
    }
  </Pipe>
);

rootContext.evaluate(<MyService />)
.then(resource => {
  console.log(resource.name); // "output3"
});

How it works

The services to execute are specified via children. In case a function is specified, then such function is called with an object containing all the resources retrieved up to that point. The resources object can be seen as a map
<resource name, resource>.

Every child service is supposed to return a resource, this is ensured internally by setting the expectResource option to true.

The service resolves with the resource returned by the last child.

Properties

NameDescription
childrenThe tasks to execute.