Skip to content

brn/aprx

Repository files navigation

Aprx

What's this?

Aprx is proxied wrapper object for Promise.

How to install

npm

npm install aprx -S

yarn

yarn add aprx

How to use

Basics

Call function

const aprx = require('aprx');

// e.g. fetch will return below object.
// {
//   isValid: boolean,
//   value: number
// }[]
const result = await aprx(fetch('https://getarray.com'))
                      .json()
                      .filter(result => result.isValid)
                      .map(result => result.value + 1);
console.log(result) // [{isValid: true, value: ...}, ...]

Property access

const aprx = require('aprx');

const x = await aprx(Promise.resolve({x: 100, y: 100})).x
console.log(x) // 100

Specials

construct

const aprx = require('aprx');

const C = aprx(Promise.resolve(class X {}));
const c = await new C();
assert.ok(c instanceof C); // true

for-of

const aprx = require('aprx');

const values = [1, 2, 3];
const value = aprx(Promise.resolve(values));
let index = 0;
for await (const v of value) {
  assert.strictEqual(values[index++], v); // true
}

Object functions

keys

const wrapper = aprx(Promise.resolve({a: 1, b: 2, c: 3}));
const keys = await aprx.keys(wrapper);
console.log(keys) // ['a', 'b', 'c']

values

const wrapper = aprx(Promise.resolve({a: 1, b: 2, c: 3}));
const keys = await aprx.values(wrapper);
console.log(keys) // [1, 2, 3]

entries

const wrapper = aprx(Promise.resolve({a: 1, b: 2, c: 3}));
const keys = await aprx.entries(wrapper);
console.log(keys) // [['a', 1], ['b', 2], ['c', 3]]

assign

const wrapper = aprx(Promise.resolve({a: 1, b: 2, c: 3}));
const assigned = await aprx.assign(wrapper, {d: 4});
console.log(assigned) // {a: 1, b: 2, c: 3, d: 4}

and below functions are supported.

preventExtensions
freeze
isExtensible
seal
isFrozen
is
isSealed
getOwnPropertyNames
getOwnPropertyDescriptor
getOwnPropertySymbols
getPrototypeOf
setPrototypeOf
gettOwnPropertySymbols
getOwnPropertyDescriptors
defineProperty
defineProperties

About

Proxied wrapper object for Promise.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published