Dorian 0d073fa89e Add comprehensive installation and setup documentation
- Add GETTING_STARTED.md with quick start guide and development modes
- Add INSTALL.sh automated installation script
- Add INSTALLATION_CHECKLIST.md, INSTALLATION_SUCCESS.md, and INSTALLATION_SUMMARY.md
- Add QUICK_REFERENCE.md for common commands
- Add SETUP_GUIDE.md with detailed setup instructions
- Update README.md with improved project overview
- Add did-wallet app dependencies and node_modules
2026-01-27 17:18:21 +00:00

53 lines
1020 B
JavaScript

/**
* @packageDocumentation
*
* Return the last value from an (async)iterable.
*
* @example
*
* ```javascript
* import last from 'it-last'
*
* // This can also be an iterator, generator, etc
* const values = [0, 1, 2, 3, 4]
*
* const res = last(values)
*
* console.info(res) // 4
* ```
*
* Async sources must be awaited:
*
* ```javascript
* import last from 'it-last'
*
* const values = async function * () {
* yield * [0, 1, 2, 3, 4]
* }
*
* const res = await last(values())
*
* console.info(res) // 4
* ```
*/
function isAsyncIterable(thing) {
return thing[Symbol.asyncIterator] != null;
}
function last(source) {
if (isAsyncIterable(source)) {
return (async () => {
let res;
for await (const entry of source) {
res = entry;
}
return res;
})();
}
let res;
for (const entry of source) {
res = entry;
}
return res;
}
export default last;
//# sourceMappingURL=index.js.map