Home / File/ packages.ts — tailwindcss Source File

packages.ts — tailwindcss Source File

Architecture documentation for packages.ts, a typescript file in the tailwindcss codebase. 10 imports, 2 dependents.

File typescript UpgradeToolkit TemplateAnalysis 10 imports 2 dependents 3 functions

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)

Subdomains

Dependencies

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