Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anywhichway/arg-waiter
Ensures all arguments to a function that are Promises are resolved
https://github.com/anywhichway/arg-waiter
Last synced: about 4 hours ago
JSON representation
Ensures all arguments to a function that are Promises are resolved
- Host: GitHub
- URL: https://github.com/anywhichway/arg-waiter
- Owner: anywhichway
- License: mit
- Created: 2022-12-31T17:51:47.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-13T09:20:37.000Z (almost 2 years ago)
- Last Synced: 2024-10-08T01:17:45.360Z (about 1 month ago)
- Language: JavaScript
- Size: 3.91 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# arg-waiter
Ensures all arguments to a function that are Promises are resolved.# Rationale and How It Works
Code that makes frequent use of Promises often needs to pass resolved promises to functions as arguments. These functions must then be written in manner to ensure the arguments are resolved. It is easy to neglect to do this. In fact, if the called function is in a third-party library, the library author may not even have considered the possibility. The alternative is to fill the calling code with lots of 'await` statements before arguments as the functions are invoked. So, one if faced with either hard to track errors as Promise objects are passed in (assuming TypeScript is not being used) or filling code with syntactic noise.
`argWaiter` is a simple function that takes a function as an argument and returns a new asynchronous function that resolves all promises before passing them to the original function.
# Install
```
npm install arg-waiter
```# Usage
```javascript
import argWaiter from "arg-waiter";const f1 = argWaiter(async (arg) => {
console.log(typeof(arg),arg);
return arg;
});const f2 = async (arg) => {
return arg;
}f1(f2("test")) // will log "string test", even though f1 has been passed the promise of f2
```
Release History (Reverse Chronological Order)
2023-01-13 v1.0.1 Corrected typo in documentation.
2023-01-04 v1.0.0 Added unit tests. Improved documentation.
2022-12-31 v0.0.1 Initial public release