You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@escapace/sequentialize

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@escapace/sequentialize

Wrap async functions to queue multiple calls for sequential execution.

Source
npmnpm
Version
4.0.1
Version published
Weekly downloads
5
Maintainers
1
Weekly downloads
 
Created
Source

sequentialize

Wrap async functions to queue multiple calls for sequential execution.

Installation

pnpm add @escapace/sequentialize

Usage

import { sequentialize } from '@escapace/sequentialize'

const wrapper = sequentialize()

// Original async function
const fetchData = async (id: string) => {
  const response = await fetch(`/api/data/${id}`)
  return response.json()
}

// Wrapped function executes sequentially
const sequentialFetch = wrapper(fetchData)

// These calls will execute one after another, not concurrently
void sequentialFetch('1') // executes first
void sequentialFetch('2') // waits for first to complete
void sequentialFetch('3') // waits for second to complete

How it works

The sequentialize function returns a wrapper that maintains an internal queue of promises. Each wrapped function call:

  • Waits for all previous calls to complete
  • Executes the original function
  • Resolves its promise
  • Allows the next queued call to proceed

Functions execute in first-in-first-out (FIFO) order regardless of their individual completion times.

Error handling

When a sequentialized function fails, all subsequent functions in the queue will fail with the same error due to the promise chain dependency:

const wrapper = sequentialize()
const mayFail = wrapper(async (shouldFail: boolean) => {
  if (shouldFail) throw new Error('Failed')
  return 'Success'
})

void mayFail(false).catch(() => console.log('Call 1 failed')) // does not catch
void mayFail(true).catch(() => console.log('Call 2 failed')) // logs "Call 2 failed"
void mayFail(false).catch(() => console.log('Call 3 failed')) // logs "Call 3 failed"

API

sequentialize()

Returns a wrapper function that converts async functions to sequential execution.

Returns: <T>(fn: T) => T - A function that wraps async functions

Deferred

A promise wrapper with manual resolution control. Used internally by sequentialize.

Methods:

  • resolve(value?: T | PromiseLike<T>) - Resolve the promise
  • reject(reason?: any) - Reject the promise
  • isPending() - Check if promise is pending
  • isFulfilled() - Check if promise fulfilled successfully
  • isRejected() - Check if promise was rejected
  • isResolved() - Check if promise has been resolved (fulfilled or rejected)

Properties:

  • promise: Promise<T> - The underlying promise

FAQs

Package last updated on 09 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts