Files
notification-elements-demo/node_modules/thingies/lib/promiseMap.js
Giuliano Silvestro 5d0c9ec7eb Initial commit: notification-elements-demo app
Interactive Angular 19 demo for @sda/notification-elements-ui with
6 sections: Bell & Feed, Notification Center, Inbox, Comments &
Threads, Mention Input, and Full-Featured layout. Includes mock
data, dark mode toggle, and real-time event log.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 21:49:19 +10:00

36 lines
1.0 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.promiseMap = void 0;
const noop = () => { };
/**
* Creates promises of a list of values. Resolves all promises and
* returns an array of resolved values.
*/
const promiseMap = (values, onValue, onError = noop) => new Promise((resolve) => {
const length = values.length;
if (!length) {
return resolve([]);
}
const results = [];
let resolvedCount = 0;
for (let i = 0; i < length; i++) {
const value = values[i];
const promise = onValue(value);
promise.then((result) => {
results[i] = result;
resolvedCount++;
if (resolvedCount === length) {
resolve(results);
}
}, (error) => {
results[i] = null;
onError(error, value, i);
resolvedCount++;
if (resolvedCount === length) {
resolve(results);
}
});
}
});
exports.promiseMap = promiseMap;