0.0.5 • Published 3 years ago

lost-promise v0.0.5

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

Not for production! Just for experiments!

Description

Extends promise functionality. You can use any Array, Object or JSON function straight after promise. List of all functions is below.

Example

Use

const result = await someAsyncFunctionThatReturnsAnArray()
			.filter(v => v.score > 0)
			.entries()
			.fromEntries();

instead of

const result = Object.fromEntries(Object.entries(
	(await someAsyncFunctionThatReturnsAnArray()).filter(v => v.score > 0)
));

More examples

Install

npm install lost-promise

or

yarn add lost-promise

How to use

  • How to extend function
const someFunction = LostPromise.extendFunction(async () => {
	const result = await someAsyncCall ();
	
	// do smth with result
	
	return result;
});
  • How to extend class

Just one instance

class MyClass {
	constructor() {
		LostPromise.extendClass(this);
	}

	async someFunction () {
		const result = await someAsyncCall ();

		// do smth with result

		return result;
	}
}

or

class MyClass extends LostPromise.extendable {
	constructor() {
		super();
	}

	async someFunction () {
		const result = await someAsyncCall ();

		// do smth with result

		return result;
	}
}

or all new instances

class MyClass {
	async someFunction () {
		const result = await someAsyncCall ();

		// do smth with result

		return result;
	}
}

LostPromise.extendClass(MyClass);
  • How to extend global Promise

At the very beginning of your code

require('lost-promise').extendGlobal();

Functions

[
  "Array.concat",
  "Array.copyWithin",
  "Array.fill",
  "Array.find",
  "Array.findIndex",
  "Array.lastIndexOf",
  "Array.pop",
  "Array.push",
  "Array.reverse",
  "Array.shift",
  "Array.unshift",
  "Array.slice",
  "Array.sort",
  "Array.splice",
  "Array.includes",
  "Array.indexOf",
  "Array.join",
  "Array.keys",
  "Array.entries",
  "Array.values",
  "Array.forEach",
  "Array.filter",
  "Array.flat",
  "Array.flatMap",
  "Array.map",
  "Array.every",
  "Array.some",
  "Array.reduce",
  "Array.reduceRight",
  "Array.toLocaleString",
  "Array.toString",
  "Array.index", //Returns Array element with specific index
  "Array.length", //Function, not getter
  "Object.assign",
  "Object.getOwnPropertyDescriptor",
  "Object.getOwnPropertyDescriptors",
  "Object.getOwnPropertyNames",
  "Object.getOwnPropertySymbols",
  "Object.is",
  "Object.preventExtensions",
  "Object.seal",
  "Object.create",
  "Object.defineProperties",
  "Object.defineProperty",
  "Object.freeze",
  "Object.getPrototypeOf",
  "Object.setPrototypeOf",
  "Object.isExtensible",
  "Object.isFrozen",
  "Object.isSealed",
  "Object.keys",
  "Object.entries",
  "Object.fromEntries",
  "Object.values",
  "Object.get", //Returns Object property with specific name
  "Any.toString", //String([Promise result])
  "Any.toNumber", //Number([Promise result])
  "Any.toBoolean", //Boolean([Promise result])
  "String.parse", //JSON.parse
  "Object.stringify", //JSON.stringify
  "Any.or", //[Promise result] || argument
  "Any.safeOr", //[Promise result] ?? argument
  "Any.returnOnCatch",
  "Any.log", //console.log([Promise result])
  "Any.delay" //Delay in msec after promise
]
0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago