aprx

Proxied wrapper object for Promise.

Usage no npm install needed!

<script type="module">
  import aprx from 'https://cdn.skypack.dev/aprx';
</script>

README

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