Skip to content
This repository has been archived by the owner on Aug 7, 2019. It is now read-only.

peterblazejewicz/typescript-pipeline-filters

Repository files navigation

Typescript Pipeline Filters

Pipeline and Filters pattern

Description

This repo contains sample implementation of Pipeline and Filters Pattern. The C# version on which this code is mostly based can be found here:

The pattern description:

import {
  AgentAvailabilityFilter,
  AgentPresenceUpdateDatetimeFilter,
  AgentWorkloadFilter
} from "@demo/filters";
import { AgentSelectionPipeline } from "@demo/pipelines";
import { agents } from "@demo/repository";

// Get the Agents from repository
const agentsStatus = agents;
console.log(`agents before processing: ${agentsStatus.length}`);
console.log(`processing...`);
// Construct the Pipeline object
const agentStatusPipeline: AgentSelectionPipeline = new AgentSelectionPipeline();

// Register the filters to be executed
agentStatusPipeline
  .register(new AgentAvailabilityFilter())
  .register(new AgentWorkloadFilter())
  .register(new AgentPresenceUpdateDatetimeFilter());

// Start pipeline processing
const processedAgentStatus = agentStatusPipeline.process(agentsStatus);
console.log(`agents after processing: ${processedAgentStatus.length}`);

Usage

npm i
npm start

Author

@peterblazejewicz

Releases

No releases published

Packages

No packages published