May 16, 2019

151 words 1 min read

kozhevnikov/proxymise

kozhevnikov/proxymise

Chainable Promise Proxy

repo name kozhevnikov/proxymise
repo link https://github.com/kozhevnikov/proxymise
homepage
language JavaScript
size (curr.) 181 kB
stars (curr.) 537
created 2018-07-13
license MIT License

Proxymise

npm

Chainable Promise Proxy.

Lightweight ES6 Proxy for Promises with no additional dependencies. Proxymise allows for method and property chaining without need for intermediate then() or await for cleaner and simpler code.

Use

npm i proxymise
const proxymise = require('proxymise');

// Instead of thens
foo.then(value => value.bar())
  .then(value => value.baz())
  .then(value => value.qux)
  .then(value => console.log(value));

// Instead of awaits
const value1 = await foo;
const value2 = await value1.bar();
const value3 = await value2.baz();
const value4 = await value3.qux;
console.log(value4);

// Use proxymise
const value = await proxymise(foo).bar().baz().qux;
console.log(value);

Practical Examples

Performance

Proxymised benchmark with 10000 iterations is practically as performant as the non-proxymised one.

node test/benchmark.js 
with proxymise: 3907.582ms
without proxymise: 3762.375ms
comments powered by Disqus