Home / File/ disposables.ts — tailwindcss Source File

disposables.ts — tailwindcss Source File

Architecture documentation for disposables.ts, a typescript file in the tailwindcss codebase.

Entity Profile

Relationship Graph

Source Code

/**
 * Disposables allow you to manage resources that can be cleaned up. Each helper
 * function returns a dispose function to clean up the resource.
 *
 * The `dispose` method can be called to clean up all resources at once.
 */
export class Disposables {
  // Track all disposables
  #disposables = new Set<Function>([])

  /**
   * Enqueue a callback in the macrotasks queue.
   */
  queueMacrotask(cb: () => void) {
    let timer = setTimeout(cb, 0)

    return this.add(() => {
      clearTimeout(timer)
    })
  }

  /**
   * General purpose disposable function that can be cleaned up.
   */
  add(dispose: () => void) {
    this.#disposables.add(dispose)

    return () => {
      this.#disposables.delete(dispose)

      dispose()
    }
  }

  /**
   * Dispose all disposables at once.
   */
  async dispose() {
    for (let dispose of this.#disposables) {
      await dispose()
    }

    this.#disposables.clear()
  }
}

Subdomains

Classes

Frequently Asked Questions

What does disposables.ts do?
disposables.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the BuildIntegrations domain, PostCSSPlugin subdomain.
Where is disposables.ts in the architecture?
disposables.ts is located at packages/@tailwindcss-cli/src/utils/disposables.ts (domain: BuildIntegrations, subdomain: PostCSSPlugin, directory: packages/@tailwindcss-cli/src/utils).

Analyze Your Own Codebase

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

Try Supermodel Free