Home / File/ update-dependencies.ts — ui Source File

update-dependencies.ts — ui Source File

Architecture documentation for update-dependencies.ts, a typescript file in the ui codebase. 8 imports, 1 dependents.

File typescript FrameworkTooling CLICore 8 imports 1 dependents 7 functions

Entity Profile

Dependency Diagram

graph LR
  30cdaf3b_9156_5324_145d_5e18169a3338["update-dependencies.ts"]
  a3b2545e_3d8c_699d_ef11_6ab18db14666["schema"]
  30cdaf3b_9156_5324_145d_5e18169a3338 --> a3b2545e_3d8c_699d_ef11_6ab18db14666
  b2895591_2a74_d518_deda_2f26be766dcb["get-config"]
  30cdaf3b_9156_5324_145d_5e18169a3338 --> b2895591_2a74_d518_deda_2f26be766dcb
  52d51853_b453_3159_f5fc_2e8fcdf57c5f["get-package-info"]
  30cdaf3b_9156_5324_145d_5e18169a3338 --> 52d51853_b453_3159_f5fc_2e8fcdf57c5f
  97a0777f_440b_e006_936f_0537ce4b8f73["get-package-manager"]
  30cdaf3b_9156_5324_145d_5e18169a3338 --> 97a0777f_440b_e006_936f_0537ce4b8f73
  1df8bbed_5110_29f0_12f0_996fc7a1eda1["logger"]
  30cdaf3b_9156_5324_145d_5e18169a3338 --> 1df8bbed_5110_29f0_12f0_996fc7a1eda1
  a3e9bc4e_1faf_6261_a1db_396981c7761d["spinner"]
  30cdaf3b_9156_5324_145d_5e18169a3338 --> a3e9bc4e_1faf_6261_a1db_396981c7761d
  8fa2a696_bed4_6bec_383f_7df160ded516["execa"]
  30cdaf3b_9156_5324_145d_5e18169a3338 --> 8fa2a696_bed4_6bec_383f_7df160ded516
  e68f2c02_595f_e9c2_5917_7a8d47bcfc87["prompts"]
  30cdaf3b_9156_5324_145d_5e18169a3338 --> e68f2c02_595f_e9c2_5917_7a8d47bcfc87
  5e86a725_f9ff_b292_a4b0_04da0dabe204["update-dependencies.test.ts"]
  5e86a725_f9ff_b292_a4b0_04da0dabe204 --> 30cdaf3b_9156_5324_145d_5e18169a3338
  style 30cdaf3b_9156_5324_145d_5e18169a3338 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { RegistryItem } from "@/src/schema"
import { Config } from "@/src/utils/get-config"
import { getPackageInfo } from "@/src/utils/get-package-info"
import { getPackageManager } from "@/src/utils/get-package-manager"
import { logger } from "@/src/utils/logger"
import { spinner } from "@/src/utils/spinner"
import { execa } from "execa"
import prompts from "prompts"

export async function updateDependencies(
  dependencies: RegistryItem["dependencies"],
  devDependencies: RegistryItem["devDependencies"],
  config: Config,
  options: {
    silent?: boolean
  }
) {
  dependencies = Array.from(new Set(dependencies))
  devDependencies = Array.from(new Set(devDependencies))

  if (!dependencies?.length && !devDependencies?.length) {
    return
  }

  options = {
    silent: false,
    ...options,
  }

  const dependenciesSpinner = spinner(`Installing dependencies.`, {
    silent: options.silent,
  })?.start()
  const packageManager = await getUpdateDependenciesPackageManager(config)

  // Offer to use --force or --legacy-peer-deps if using React 19 with npm.
  let flag = ""
  if (shouldPromptForNpmFlag(config) && packageManager === "npm") {
    if (options.silent) {
      flag = "force"
    } else {
      dependenciesSpinner.stopAndPersist()
      logger.warn(
        "\nIt looks like you are using React 19. \nSome packages may fail to install due to peer dependency issues in npm (see https://ui.shadcn.com/react-19).\n"
      )
      const confirmation = await prompts([
        {
          type: "select",
          name: "flag",
          message: "How would you like to proceed?",
          choices: [
            { title: "Use --force", value: "force" },
            { title: "Use --legacy-peer-deps", value: "legacy-peer-deps" },
          ],
        },
      ])

      if (confirmation) {
        flag = confirmation.flag
      }
    }
// ... (135 more lines)

Subdomains

Dependencies

  • execa
  • get-config
  • get-package-info
  • get-package-manager
  • logger
  • prompts
  • schema
  • spinner

Frequently Asked Questions

What does update-dependencies.ts do?
update-dependencies.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain, CLICore subdomain.
What functions are defined in update-dependencies.ts?
update-dependencies.ts defines 7 function(s): getUpdateDependenciesPackageManager, installWithDeno, installWithExpo, installWithNpm, installWithPackageManager, shouldPromptForNpmFlag, updateDependencies.
What does update-dependencies.ts depend on?
update-dependencies.ts imports 8 module(s): execa, get-config, get-package-info, get-package-manager, logger, prompts, schema, spinner.
What files import update-dependencies.ts?
update-dependencies.ts is imported by 1 file(s): update-dependencies.test.ts.
Where is update-dependencies.ts in the architecture?
update-dependencies.ts is located at packages/shadcn/src/utils/updaters/update-dependencies.ts (domain: FrameworkTooling, subdomain: CLICore, directory: packages/shadcn/src/utils/updaters).

Analyze Your Own Codebase

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

Try Supermodel Free