Home / File/ config.ts — ui Source File

config.ts — ui Source File

Architecture documentation for config.ts, a typescript file in the ui codebase. 4 imports, 1 dependents.

File typescript FrameworkTooling SchemaValidation 4 imports 1 dependents 2 functions

Entity Profile

Dependency Diagram

graph LR
  46e7defd_7819_0c90_4b8d_a993f9f01516["config.ts"]
  2ae56314_aa15_5495_52a2_137787e7b210["constants"]
  46e7defd_7819_0c90_4b8d_a993f9f01516 --> 2ae56314_aa15_5495_52a2_137787e7b210
  a3b2545e_3d8c_699d_ef11_6ab18db14666["schema"]
  46e7defd_7819_0c90_4b8d_a993f9f01516 --> a3b2545e_3d8c_699d_ef11_6ab18db14666
  b2895591_2a74_d518_deda_2f26be766dcb["get-config"]
  46e7defd_7819_0c90_4b8d_a993f9f01516 --> b2895591_2a74_d518_deda_2f26be766dcb
  99a5fd75_7ef9_c199_7940_7abd94a7b70b["deepmerge"]
  46e7defd_7819_0c90_4b8d_a993f9f01516 --> 99a5fd75_7ef9_c199_7940_7abd94a7b70b
  dd17f97d_6243_4687_6cff_b74eca601792["config.test.ts"]
  dd17f97d_6243_4687_6cff_b74eca601792 --> 46e7defd_7819_0c90_4b8d_a993f9f01516
  style 46e7defd_7819_0c90_4b8d_a993f9f01516 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { BUILTIN_REGISTRIES, FALLBACK_STYLE } from "@/src/registry/constants"
import { configSchema } from "@/src/schema"
import { Config, DeepPartial, createConfig } from "@/src/utils/get-config"
import deepmerge from "deepmerge"

function resolveStyleFromConfig(config: DeepPartial<Config>) {
  if (!config.style) {
    return FALLBACK_STYLE
  }

  // Check if we should use new-york-v4 for Tailwind v4.
  // We assume that if tailwind.config is empty, we're using Tailwind v4.
  if (config.style === "new-york" && config.tailwind?.config === "") {
    return FALLBACK_STYLE
  }

  return config.style
}

export function configWithDefaults(config?: DeepPartial<Config>) {
  const baseConfig = createConfig({
    style: FALLBACK_STYLE,
    registries: BUILTIN_REGISTRIES,
  })

  if (!config) {
    return baseConfig
  }

  return configSchema.parse(
    deepmerge(baseConfig, {
      ...config,
      style: resolveStyleFromConfig(config),
      registries: { ...BUILTIN_REGISTRIES, ...config.registries },
    })
  )
}

Subdomains

Dependencies

  • constants
  • deepmerge
  • get-config
  • schema

Frequently Asked Questions

What does config.ts do?
config.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain, SchemaValidation subdomain.
What functions are defined in config.ts?
config.ts defines 2 function(s): configWithDefaults, resolveStyleFromConfig.
What does config.ts depend on?
config.ts imports 4 module(s): constants, deepmerge, get-config, schema.
What files import config.ts?
config.ts is imported by 1 file(s): config.test.ts.
Where is config.ts in the architecture?
config.ts is located at packages/shadcn/src/registry/config.ts (domain: FrameworkTooling, subdomain: SchemaValidation, directory: packages/shadcn/src/registry).

Analyze Your Own Codebase

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

Try Supermodel Free