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
61
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

to
1.3.0-alpha-20250308083030-49b6ba959d4d6fde23c7cd945be7b959e6e43899

62

cjs/index.js

@@ -15,19 +15,27 @@ "use strict";

}
function handleMaybePromise(inputFactory, outputSuccessFactory, outputErrorFactory) {
function _handleMaybePromise() {
const input$ = inputFactory();
if (isPromise(input$)) {
return input$.then(outputSuccessFactory, outputErrorFactory);
}
return outputSuccessFactory(input$);
function handleMaybePromise(inputFactory, outputSuccessFactory, outputErrorFactory, finallyFactory) {
let input$;
try {
input$ = fakePromise(inputFactory());
}
if (!outputErrorFactory) {
return _handleMaybePromise();
catch (err) {
input$ = fakeRejectPromise(err);
}
let result$;
try {
return _handleMaybePromise();
result$ = input$.then(outputSuccessFactory, outputErrorFactory);
}
catch (err) {
return outputErrorFactory(err);
result$ = fakeRejectPromise(err);
}
if (finallyFactory) {
result$ = promiseLikeFinally(result$, finallyFactory);
}
if (isFakePromise(result$)) {
return result$.__fakePromiseValue;
}
if (isFakeRejectPromise(result$)) {
throw result$.__fakeRejectError;
}
return result$;
}

@@ -65,2 +73,3 @@ function fakePromise(value) {

[Symbol.toStringTag]: 'Promise',
__fakePromiseValue: value,
};

@@ -120,3 +129,6 @@ }

return {
then() {
then(_resolve, reject) {
if (reject) {
return fakePromise(reject(error));
}
return this;

@@ -136,2 +148,3 @@ },

},
__fakeRejectError: error,
[Symbol.toStringTag]: 'Promise',

@@ -213,1 +226,26 @@ };

}
function isFakePromise(value) {
return value?.__fakePromiseValue != null;
}
function isFakeRejectPromise(value) {
return value?.__fakeRejectError != null;
}
function promiseLikeFinally(value, onFinally) {
if ('finally' in value) {
return value.finally(onFinally);
}
return value.then(res => {
const finallyRes = onFinally();
return isPromise(finallyRes) ? finallyRes.then(() => res) : res;
}, err => {
const finallyRes = onFinally();
if (isPromise(finallyRes)) {
return finallyRes.then(() => {
throw err;
});
}
else {
throw err;
}
});
}
export function isPromise(value) {
return value?.then != null;
}
export function handleMaybePromise(inputFactory, outputSuccessFactory, outputErrorFactory) {
function _handleMaybePromise() {
const input$ = inputFactory();
if (isPromise(input$)) {
return input$.then(outputSuccessFactory, outputErrorFactory);
}
return outputSuccessFactory(input$);
export function handleMaybePromise(inputFactory, outputSuccessFactory, outputErrorFactory, finallyFactory) {
let input$;
try {
input$ = fakePromise(inputFactory());
}
if (!outputErrorFactory) {
return _handleMaybePromise();
catch (err) {
input$ = fakeRejectPromise(err);
}
let result$;
try {
return _handleMaybePromise();
result$ = input$.then(outputSuccessFactory, outputErrorFactory);
}
catch (err) {
return outputErrorFactory(err);
result$ = fakeRejectPromise(err);
}
if (finallyFactory) {
result$ = promiseLikeFinally(result$, finallyFactory);
}
if (isFakePromise(result$)) {
return result$.__fakePromiseValue;
}
if (isFakeRejectPromise(result$)) {
throw result$.__fakeRejectError;
}
return result$;
}

@@ -53,2 +61,3 @@ export function fakePromise(value) {

[Symbol.toStringTag]: 'Promise',
__fakePromiseValue: value,
};

@@ -109,3 +118,6 @@ }

return {
then() {
then(_resolve, reject) {
if (reject) {
return fakePromise(reject(error));
}
return this;

@@ -125,2 +137,3 @@ },

},
__fakeRejectError: error,
[Symbol.toStringTag]: 'Promise',

@@ -202,1 +215,26 @@ };

}
function isFakePromise(value) {
return value?.__fakePromiseValue != null;
}
function isFakeRejectPromise(value) {
return value?.__fakeRejectError != null;
}
function promiseLikeFinally(value, onFinally) {
if ('finally' in value) {
return value.finally(onFinally);
}
return value.then(res => {
const finallyRes = onFinally();
return isPromise(finallyRes) ? finallyRes.then(() => res) : res;
}, err => {
const finallyRes = onFinally();
if (isPromise(finallyRes)) {
return finallyRes.then(() => {
throw err;
});
}
else {
throw err;
}
});
}

4

package.json
{
"name": "@whatwg-node/promise-helpers",
"version": "1.3.0-alpha-20250304144055-cac420c6056351f59061371db427cac2d2fb30ce",
"version": "1.3.0-alpha-20250308083030-49b6ba959d4d6fde23c7cd945be7b959e6e43899",
"description": "Promise helpers",

@@ -17,3 +17,3 @@ "sideEffects": false,

"engines": {
"node": ">=18.0.0"
"node": ">=16.0.0"
},

@@ -20,0 +20,0 @@ "main": "cjs/index.js",

@@ -5,5 +5,5 @@ export type MaybePromise<T> = Promise<T> | T;

export declare function isPromise<T>(value: MaybePromiseLike<T>): value is PromiseLike<T>;
export declare function handleMaybePromise<TInput, TOutput>(inputFactory: () => MaybePromise<TInput>, outputSuccessFactory: (value: TInput) => MaybePromise<TOutput>, outputErrorFactory?: (err: any) => MaybePromise<TOutput>): MaybePromise<TOutput>;
export declare function handleMaybePromise<TInput, TOutput>(inputFactory: () => MaybePromiseLike<TInput>, outputSuccessFactory: (value: TInput) => MaybePromiseLike<TOutput>, outputErrorFactory?: (err: any) => MaybePromiseLike<TOutput>): MaybePromiseLike<TOutput>;
export declare function fakePromise<T>(value: T): Promise<T>;
export declare function handleMaybePromise<TInput, TOutput>(inputFactory: () => MaybePromise<TInput>, outputSuccessFactory: (value: TInput) => MaybePromise<TOutput>, outputErrorFactory?: (err: any) => MaybePromise<TOutput>, finallyFactory?: () => MaybePromise<void>): MaybePromise<TOutput>;
export declare function handleMaybePromise<TInput, TOutput>(inputFactory: () => MaybePromiseLike<TInput>, outputSuccessFactory: (value: TInput) => MaybePromiseLike<TOutput>, outputErrorFactory?: (err: any) => MaybePromiseLike<TOutput>, finallyFactory?: () => MaybePromiseLike<void>): MaybePromiseLike<TOutput>;
export declare function fakePromise<T>(value: T | MaybePromiseLike<T>): Promise<T>;
export declare function fakePromise(value: void): Promise<void>;

@@ -10,0 +10,0 @@ export interface DeferredPromise<T = void> {

Sorry, the diff of this file is not supported yet