New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@whatwg-node/promise-helpers

Package Overview
Dependencies
Maintainers
0
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@whatwg-node/promise-helpers - npm Package Compare versions

Comparing version 0.0.1-rc-20250225130235-f3faf70dd8b2a9fa9fe1a17b9e580f4224f1b1ba to 0.0.1-rc-20250225131025-bfb95392bc8913516b467bc4f9debffaf9e06cc1

71

cjs/index.js

@@ -10,2 +10,3 @@ "use strict";

exports.mapMaybePromise = mapMaybePromise;
exports.mapAsyncIterator = mapAsyncIterator;
function isPromise(value) {

@@ -131,1 +132,71 @@ return value?.then != null;

}
/**
* Given an AsyncIterable and a callback function, return an AsyncIterator
* which produces values mapped via calling the callback function.
*/
function mapAsyncIterator(iterator, onNext, onError, onEnd) {
if (Symbol.asyncIterator in iterator) {
iterator = iterator[Symbol.asyncIterator]();
}
let $return;
let abruptClose;
let onEndWithValue;
if (onEnd) {
let onEndWithValueResult /** R in onEndWithValue */;
onEndWithValue = value => {
onEndWithValueResult ||= handleMaybePromise(onEnd, () => value, () => value);
return onEndWithValueResult;
};
}
if (typeof iterator.return === 'function') {
$return = iterator.return;
abruptClose = (error) => {
const rethrow = () => {
throw error;
};
return $return.call(iterator).then(rethrow, rethrow);
};
}
function mapResult(result) {
if (result.done) {
return onEndWithValue ? onEndWithValue(result) : result;
}
return handleMaybePromise(() => result.value, value => handleMaybePromise(() => onNext(value), iteratorResult, abruptClose));
}
let mapReject;
if (onError) {
let onErrorResult;
// Capture rejectCallback to ensure it cannot be null.
const reject = onError;
mapReject = (error) => {
onErrorResult ||= handleMaybePromise(() => error, error => handleMaybePromise(() => reject(error), iteratorResult, abruptClose));
return onErrorResult;
};
}
return {
next() {
return iterator.next().then(mapResult, mapReject);
},
return() {
const res$ = $return
? $return.call(iterator).then(mapResult, mapReject)
: fakePromise({ value: undefined, done: true });
return onEndWithValue ? res$.then(onEndWithValue) : res$;
},
throw(error) {
if (typeof iterator.throw === 'function') {
return iterator.throw(error).then(mapResult, mapReject);
}
if (abruptClose) {
return abruptClose(error);
}
return fakeRejectPromise(error);
},
[Symbol.asyncIterator]() {
return this;
},
};
}
function iteratorResult(value) {
return { value, done: false };
}

@@ -121,1 +121,71 @@ export function isPromise(value) {

}
/**
* Given an AsyncIterable and a callback function, return an AsyncIterator
* which produces values mapped via calling the callback function.
*/
export function mapAsyncIterator(iterator, onNext, onError, onEnd) {
if (Symbol.asyncIterator in iterator) {
iterator = iterator[Symbol.asyncIterator]();
}
let $return;
let abruptClose;
let onEndWithValue;
if (onEnd) {
let onEndWithValueResult /** R in onEndWithValue */;
onEndWithValue = value => {
onEndWithValueResult ||= handleMaybePromise(onEnd, () => value, () => value);
return onEndWithValueResult;
};
}
if (typeof iterator.return === 'function') {
$return = iterator.return;
abruptClose = (error) => {
const rethrow = () => {
throw error;
};
return $return.call(iterator).then(rethrow, rethrow);
};
}
function mapResult(result) {
if (result.done) {
return onEndWithValue ? onEndWithValue(result) : result;
}
return handleMaybePromise(() => result.value, value => handleMaybePromise(() => onNext(value), iteratorResult, abruptClose));
}
let mapReject;
if (onError) {
let onErrorResult;
// Capture rejectCallback to ensure it cannot be null.
const reject = onError;
mapReject = (error) => {
onErrorResult ||= handleMaybePromise(() => error, error => handleMaybePromise(() => reject(error), iteratorResult, abruptClose));
return onErrorResult;
};
}
return {
next() {
return iterator.next().then(mapResult, mapReject);
},
return() {
const res$ = $return
? $return.call(iterator).then(mapResult, mapReject)
: fakePromise({ value: undefined, done: true });
return onEndWithValue ? res$.then(onEndWithValue) : res$;
},
throw(error) {
if (typeof iterator.throw === 'function') {
return iterator.throw(error).then(mapResult, mapReject);
}
if (abruptClose) {
return abruptClose(error);
}
return fakeRejectPromise(error);
},
[Symbol.asyncIterator]() {
return this;
},
};
}
function iteratorResult(value) {
return { value, done: false };
}

2

package.json
{
"name": "@whatwg-node/promise-helpers",
"version": "0.0.1-rc-20250225130235-f3faf70dd8b2a9fa9fe1a17b9e580f4224f1b1ba",
"version": "0.0.1-rc-20250225131025-bfb95392bc8913516b467bc4f9debffaf9e06cc1",
"description": "Promise helpers",

@@ -5,0 +5,0 @@ "sideEffects": false,

@@ -22,1 +22,6 @@ export type MaybePromise<T> = Promise<T> | T;

export declare function mapMaybePromise<TInput, TOutput>(input: MaybePromiseLike<TInput>, onSuccess: (value: TInput) => MaybePromiseLike<TOutput>, onError?: (err: any) => MaybePromiseLike<TOutput>): MaybePromiseLike<TOutput>;
/**
* Given an AsyncIterable and a callback function, return an AsyncIterator
* which produces values mapped via calling the callback function.
*/
export declare function mapAsyncIterator<T, U>(iterator: AsyncIterable<T> | AsyncIterator<T>, onNext: (value: T) => MaybePromise<U>, onError?: any, onEnd?: () => MaybePromise<void>): AsyncIterableIterator<U>;

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc