packages.ts — tailwindcss Source File
Architecture documentation for packages.ts, a typescript file in the tailwindcss codebase. 10 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR 6403ca00_0447_9313_3bb5_f9ea44ca2dbb["packages.ts"] c056448b_f7a2_9149_54e8_f0f8470fe3aa["default-map.ts"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> c056448b_f7a2_9149_54e8_f0f8470fe3aa bf2992f6_4a37_8536_70f8_94b13631027d["DefaultMap"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> bf2992f6_4a37_8536_70f8_94b13631027d 9106c15d_cfb8_77f5_665e_9707020b48c8["renderer.ts"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> 9106c15d_cfb8_77f5_665e_9707020b48c8 f1ca9393_701c_e4a7_8303_ed03f028d19b["error"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> f1ca9393_701c_e4a7_8303_ed03f028d19b e019b578_e34e_650f_6c6e_85cd4f4dbeb8["warn"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> e019b578_e34e_650f_6c6e_85cd4f4dbeb8 8d4c06fc_a152_c497_9c1b_b60c5c91b817["node:child_process"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> 8d4c06fc_a152_c497_9c1b_b60c5c91b817 6390fa3b_300d_6028_9e96_c869157db42d["node:fs"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> 6390fa3b_300d_6028_9e96_c869157db42d 8118fcf2_a51d_d1a1_93d3_c71d3a646692["promises"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> 8118fcf2_a51d_d1a1_93d3_c71d3a646692 2a7660a5_3e09_bd74_37f0_e4e54bc64ce5["node:path"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> 2a7660a5_3e09_bd74_37f0_e4e54bc64ce5 041a5d56_b2a1_1fbe_eb9b_b605f45324db["node:util"] 6403ca00_0447_9313_3bb5_f9ea44ca2dbb --> 041a5d56_b2a1_1fbe_eb9b_b605f45324db 9c861556_2895_9b7c_50ec_d9aa3cfc5c68["migrate-postcss.ts"] 9c861556_2895_9b7c_50ec_d9aa3cfc5c68 --> 6403ca00_0447_9313_3bb5_f9ea44ca2dbb b2eb6cbf_d28d_9ec7_61c1_8992d8f4efb8["index.ts"] b2eb6cbf_d28d_9ec7_61c1_8992d8f4efb8 --> 6403ca00_0447_9313_3bb5_f9ea44ca2dbb style 6403ca00_0447_9313_3bb5_f9ea44ca2dbb fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { exec as execCb } from 'node:child_process'
import { readFileSync } from 'node:fs'
import fs from 'node:fs/promises'
import { dirname, resolve } from 'node:path'
import { promisify } from 'node:util'
import { DefaultMap } from '../../../tailwindcss/src/utils/default-map'
import { error, warn } from './renderer'
const exec = promisify(execCb)
const SAVE_DEV: Record<string, string> = {
default: '-D',
bun: '-d',
}
const manifests = new DefaultMap((base) => {
try {
let packageJsonPath = resolve(base, 'package.json')
return readFileSync(packageJsonPath, 'utf-8')
} catch {
return ''
}
})
export function pkg(base: string) {
return {
async manager() {
return await packageManagerForBase.get(base)
},
async add(packages: string[], location: 'dependencies' | 'devDependencies' = 'dependencies') {
let packageManager = await packageManagerForBase.get(base)
let args = packages.slice()
if (location === 'devDependencies') {
args.push(SAVE_DEV[packageManager] || SAVE_DEV.default)
}
// Allow running the `pnpm` command in the workspace root without
// erroring. Can't just use `--workspace-root` because that will force
// install dependencies in the workspace root.
if (packageManager === 'pnpm') {
args.push('--ignore-workspace-root-check')
}
let command = `${packageManager} add ${args.join(' ')}`
try {
return await exec(command, { cwd: base })
} catch (e: any) {
error(`An error occurred while running \`${command}\`\n\n${e.stdout}\n${e.stderr}`, {
prefix: '↳ ',
})
throw e
} finally {
manifests.delete(base)
}
},
has(name: string) {
return manifests.get(base).includes(`"${name}":`)
},
async remove(packages: string[]) {
let packageManager = await packageManagerForBase.get(base)
// ... (79 more lines)
Domain
Subdomains
Functions
Dependencies
- DefaultMap
- default-map.ts
- error
- node:child_process
- node:fs
- node:path
- node:util
- promises
- renderer.ts
- warn
Imported By
Source
Frequently Asked Questions
What does packages.ts do?
packages.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the UpgradeToolkit domain, TemplateAnalysis subdomain.
What functions are defined in packages.ts?
packages.ts defines 3 function(s): manifests, packageManagerForBase, pkg.
What does packages.ts depend on?
packages.ts imports 10 module(s): DefaultMap, default-map.ts, error, node:child_process, node:fs, node:path, node:util, promises, and 2 more.
What files import packages.ts?
packages.ts is imported by 2 file(s): index.ts, migrate-postcss.ts.
Where is packages.ts in the architecture?
packages.ts is located at packages/@tailwindcss-upgrade/src/utils/packages.ts (domain: UpgradeToolkit, subdomain: TemplateAnalysis, directory: packages/@tailwindcss-upgrade/src/utils).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free