Skip to content

Latest commit

 

History

History
70 lines (60 loc) · 1.51 KB

readme.md

File metadata and controls

70 lines (60 loc) · 1.51 KB

chain-simple

npm downloads

The purpose of this library is - build simple and flexible chainable call of the object` methods

import { chainProps } from 'chain-simple';
import type { TChainable } from 'chain-simple';

const obj = {
  async method1() {
    return Promise.resolve(1).then(value => {
      console.log('method1', value);
      return value;
    });
  },
  async method2() {
    return Promise.resolve(2).then(value => {
      console.log('method2', value);
      return value;
    });
  },
  async method3() {
    return Promise.resolve(3).then(value => {
      console.log('method3', value);
      return value;
    });
  },
};

const chainableObj: TChainable<typeof obj> = chainProps(obj);

chainableObj
  .method1()
  .method3()
  .then(val => console.log(val)); // method1 1 \n method3 3 \n 3
const { chainProps } = require('chain-simple');

const obj = {
  async method1() {
    return Promise.resolve(1).then(value => {
      console.log('method1', value);
      return value;
    });
  },
  async method2() {
    return Promise.resolve(2).then(value => {
      console.log('method2', value);
      return value;
    });
  },
  async method3() {
    return Promise.resolve(3).then(value => {
      console.log('method3', value);
      return value;
    });
  },
};

const chainableObj: TChainable<typeof obj> = chainProps(obj);

chainableObj
  .method1()
  .method3()
  .then(val => console.log(val)); // method1 1 \n method3 3 \n 3