enhanced-all-settled
    TypeScript icon, indicating that this package has built-in type declarations

    1.2.0 • Public • Published

    enhanced-all-settled

    A better implementation of JS internal Promise.allSettled

    Usage

    const waitFor = async (milliseconds?: any): Promise<string> => {
      if (!milliseconds) {
        throw new Error('no duration provided');
      }
    
      await new Promise(resolve => setTimeout(() => resolve(milliseconds), 0));
    
      return `succesfully awaited ${milliseconds} ms`;
    };
    
    const settledOptions = { logStack: false };
    
    const inputValues = [13, 79, undefined, 'blabla'];
    
    const settled = await enhancedAllSettled(waitFor, settledOptions)(inputValues);
    
    //  settled = {
    //     rejected: [
    //       {
    //         inputValue: undefined,
    //         reason: 'no duration provided',
    //       },
    //       {
    //         inputValue: 'blabla',
    //         reason: 'only numbers are allowed',
    //        },
    //     ],
    //     successful: [13, 79],
    //     results: ['succesfully awaited 13 ms', 'succesfully awaited 79 ms'],
    //   };

    Features

    • More consistent types that you can actually import in your code (for typescript users)

    • Explicit returns of inputs corresponding to rejected / successful executions

    • Works even in the browser and for old Node.js versions

    • Better mapping to failure reasons (in the classic node implementation, errors instantiated with the Error constructor are mapped to reason: false, which is not very helpful)

    • Optional logging of the entire stack of errors for better debugging

    Roadmap

    Add options for :

    • Setting a timeout upon which promises are considered to be failing by default

    • A second function to use if you're only interested in successful promises' output

    • Optional providing of your own error logging function

    Install

    npm i enhanced-all-settled

    DownloadsWeekly Downloads

    6

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    14.1 kB

    Total Files

    13

    Last publish

    Collaborators

    • moaadf