1.1.7 • Published 2 years ago

invoke-chain v1.1.7

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Invoke-Function-Chain TS

Features

  • Invoking functions as chain
  • Pass params between invoked functions
  • Pass params for each function
  • The ability to stop the chain
  • Return last function invoke result
  • Can invoke async functions

Installation

Install the dependencies and devDependencies and start use.

npm i invoke-chain
or
npm i -D invoke-chain

Use

To use you should import module

import {InvokeChain, InvokeChainItem} from 'invoke-chain';

You should create new instance of InvokeChain

new InvokeChain()

Than need add functions in InvokeChainItem wrapper

const chain = new InvokeChain();

chain.addAll([
    new InvokeChainItem((context: IInvokeChainContext) => {
      //code
      context.next(); // invoke next. It means that will invoked next function. It not stopped current function
    }),
    
    new InvokeChainItem((context: IInvokeChainContext) => {
      //code
      context.stop(); // stop chain. It means that will invoked next function. It not stopped current function
    }),
    
    //will not invoked because previos function invoked stop() or not invoked next()
    new InvokeChainItem((context: IInvokeChainContext) => {
      //code
      context.next(); // invoke next. It means that will invoked next function. It not stopped current function
    }),
]);

If you not invoked next() - next function in chain will not invoked!

Documentation

Class InvokeChain

Contructor

new InvokeChain(Array<InvokeChainItem> = []) // Constructor with default []
Getters

public InvokeChain.getChain: Array<InvokeChainItem> // Return chain
Methods

public InvokeChain.add(InvokeChainItem): InvokeChain  // Add elemnt to chain
public InvokeChain.addAll(Array<InvokeChainItem>): InvokeChain // Add array of elements to chain
public InvokeChain.remove(string): InvokeChain // Remove chain item by InvokeChainItem.Id
public async InvokeChain.invoke(): Promise<any> // Invoke chain. Return last function invoke result. Async

Class InvokeChainItem

Contructor

new InvokeChainItem(Function, any = null) // Function - function which will be invoked. any - params for function
Getters

public InvokeChainItem.getId: string // Return ChainItem Id. Need to remove from ChainItem
public InvokeChainItem.getFunction // Return function which will be invoked
public InvokeChainItem.getParams // Return params for function
Methods

public async InvokeChain.invoke(Function, Function, any): Promise<any> // Invoke chain Item. First Function - next(), second function - stop(), any - previos function invoke result

Interface IInvokeChainContext

interface IInvokeChainContext {
  next: Function,                // Next Function
  stop: Function,                // Stop function
  params: any,                   // Params for function
  previousFunctionResult: any    // Previos function result
}

License

ISC Free Software!

1.1.1

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.0

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago