Disposables Class — tailwindcss Architecture
Architecture documentation for the Disposables class in disposables.ts from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD 8b5fae9e_909c_9c8c_abb3_1a89c85ddf20["Disposables"] 636eff43_df39_0f34_51c3_1a953de44937["disposables.ts"] 8b5fae9e_909c_9c8c_abb3_1a89c85ddf20 -->|defined in| 636eff43_df39_0f34_51c3_1a953de44937 1f447913_7838_c0a4_e02c_4c6668d2cbf1["queueMacrotask()"] 8b5fae9e_909c_9c8c_abb3_1a89c85ddf20 -->|method| 1f447913_7838_c0a4_e02c_4c6668d2cbf1 cc3d0030_51a1_57c4_f1b2_07ed55351877["add()"] 8b5fae9e_909c_9c8c_abb3_1a89c85ddf20 -->|method| cc3d0030_51a1_57c4_f1b2_07ed55351877 c8bf05c2_8aff_e8da_8aa4_59b378c5f12b["dispose()"] 8b5fae9e_909c_9c8c_abb3_1a89c85ddf20 -->|method| c8bf05c2_8aff_e8da_8aa4_59b378c5f12b
Relationship Graph
Source Code
packages/@tailwindcss-cli/src/utils/disposables.ts lines 7–45
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()
}
}
Source
Frequently Asked Questions
What is the Disposables class?
Disposables is a class in the tailwindcss codebase, defined in packages/@tailwindcss-cli/src/utils/disposables.ts.
Where is Disposables defined?
Disposables is defined in packages/@tailwindcss-cli/src/utils/disposables.ts at line 7.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free