request-provider

0.0.14 • Public • Published

Request Provider

GitHub license NPM Version NODE Version CircleCI

AOP 编程思想为核心,提供函数使用的一种思路,将想要执行的函数看作是切入点,切入点前需要做的任务看作是前置任务,切入点后需要做的任务看作是后置任务。

中文版文档

Installation

npm install request-provider -g

Examples

import { TransactionImpl, wrappers } from '../src/index'
import * as request from 'request-promise'
 
const wrappers = {
  initial: [
    async ctx => {
      const options = ctx.arguments[0]
      options.url = 'http://www.baidu.com'
      console.log('rp-start', ctx.arguments[0])
    }
  ],
  close: [async ctx => console.log('rp-end', ctx.ret)]
} as wrappers
 
const requestAop = new TransactionImpl(wrappers)
requestAop.performAsync(request, null, {
    url: '',
    method: 'get'
  })

这个例子展示了将 request 作为切入点,前置函数对 request 的入参进行了赋值操作,后置函数打印了 request 返回的内容。例子比较简单,但是结合具体的场景,可以实现很多非常便利的操作。

Wrapper

你需要自定义wrapper,wrapper 是包含下面两个属性的普通对象

属性 含义
initial 切入点的前置函数组
close 切入点的后置函数组

PerformSync & PerformAsync

TransactionImpl 的实例提供了 PerformSync 和 PerformAsync 两个公共 api,分别对应于同步和异步的处理场景。

入参 含义
method 将该函数视为切入点
scope 切入点所在的作用域
...arguments 切入点最多支持 6 个入参

Action Flow

actionFlow

Licence

MIT

Readme

Keywords

Package Sidebar

Install

npm i request-provider

Weekly Downloads

11

Version

0.0.14

License

MIT

Unpacked Size

89.1 kB

Total Files

19

Last publish

Collaborators

  • louiswu