Home / Function/ createSerialPromiseQueue() — vite Function Reference

createSerialPromiseQueue() — vite Function Reference

Architecture documentation for the createSerialPromiseQueue() function in utils.ts from the vite codebase.

Entity Profile

Dependency Diagram

graph TD
  921da9ad_e621_93c8_8241_909c590edfd7["createSerialPromiseQueue()"]
  031bc221_67a8_c579_f2bf_bb30a08beeb2["utils.ts"]
  921da9ad_e621_93c8_8241_909c590edfd7 -->|defined in| 031bc221_67a8_c579_f2bf_bb30a08beeb2
  cd131d16_e223_ab79_1b7c_8ea449ae51a2["cssPostPlugin()"]
  cd131d16_e223_ab79_1b7c_8ea449ae51a2 -->|calls| 921da9ad_e621_93c8_8241_909c590edfd7
  style 921da9ad_e621_93c8_8241_909c590edfd7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/vite/src/node/utils.ts lines 1610–1633

export function createSerialPromiseQueue<T>(): {
  run(f: () => Promise<T>): Promise<T>
} {
  let previousTask: Promise<[unknown, Awaited<T>]> | undefined

  return {
    async run(f) {
      const thisTask = f()
      // wait for both the previous task and this task
      // so that this function resolves in the order this function is called
      const depTasks = Promise.all([previousTask, thisTask])
      previousTask = depTasks

      const [, result] = await depTasks

      // this task was the last one, clear `previousTask` to free up memory
      if (previousTask === depTasks) {
        previousTask = undefined
      }

      return result
    },
  }
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does createSerialPromiseQueue() do?
createSerialPromiseQueue() is a function in the vite codebase, defined in packages/vite/src/node/utils.ts.
Where is createSerialPromiseQueue() defined?
createSerialPromiseQueue() is defined in packages/vite/src/node/utils.ts at line 1610.
What calls createSerialPromiseQueue()?
createSerialPromiseQueue() is called by 1 function(s): cssPostPlugin.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free