Coder Social home page Coder Social logo

proximify's Introduction

proximify

Promisify using ES6 Proxy

Like bluebird's promisifyAll, but using ES6 Proxy which enables it to be:

  • Dynamic - lets you add/remove properties
  • Deep - works at any depth

Install

npm i proximify

Usage

Example

import Koa from 'koa';
import http from 'http';
import proximify from 'proximify'

const app = proximify(new Koa());

// Works on properties added later on, and at any depth

app.server = http.createServer(app.callback());
app.server.listenAsync(3000).then(...)


API

proximify(target, options)
  • target [object](required) Object whose methods need to be patched.

  • options [object]:

    • deep [boolean](default:true): If true, applies to child properties recursively

    • store [boolean](default:true): If true, stores the proxy in place of original property (i.e. replaces the original property with its proxy)

    • applyOnData [boolean](default:true): If true, applies to any objects returned (resolved as promise) by the async methods. (equivalent of doing proximify(...) on objects returned from async function)

      const io1 = proximify(new IO(server))
      const io2 = proximify(new IO(server), {applyOnData: false})
      
      const socket1 = io.onceAsync('connection')
      const socket2 = io.onceAsync('connection')
      
      const data1 = socket.onceAsync('test') // works ok
      const data2 = socket.onceAsync('test') // error "onceAsync" undefined
    • suffix [string](default:'Async'): Suffix to use to invoke the promisified version of the method.

    • filter [function]: (Not yet implemented)

    • promisifier [function]: (Not yet implemented)

proximify's People

Contributors

laggingreflex avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.