create-project.ts — ui Source File
Architecture documentation for create-project.ts, a typescript file in the ui codebase. 13 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR f570a109_148e_1b68_ffd0_6e7f2f8ca03d["create-project.ts"] b80715bf_43eb_b495_f2cf_a439c5eb0e34["os"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> b80715bf_43eb_b495_f2cf_a439c5eb0e34 d05ec4ea_7a68_3a36_bfa4_9ba7f8409ee5["path"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> d05ec4ea_7a68_3a36_bfa4_9ba7f8409ee5 48a2db16_690d_8450_b9e9_0bd7642157d3["init"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> 48a2db16_690d_8450_b9e9_0bd7642157d3 8b63e39d_c91e_6de3_796b_cdd80586252f["fetcher"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> 8b63e39d_c91e_6de3_796b_cdd80586252f 97a0777f_440b_e006_936f_0537ce4b8f73["get-package-manager"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> 97a0777f_440b_e006_936f_0537ce4b8f73 6be7d8a9_c93c_8743_3ef7_968efff25479["handle-error"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> 6be7d8a9_c93c_8743_3ef7_968efff25479 15e8bad0_00cc_3d96_8e33_2f062120ea7f["highlighter"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> 15e8bad0_00cc_3d96_8e33_2f062120ea7f 1df8bbed_5110_29f0_12f0_996fc7a1eda1["logger"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> 1df8bbed_5110_29f0_12f0_996fc7a1eda1 a3e9bc4e_1faf_6261_a1db_396981c7761d["spinner"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> a3e9bc4e_1faf_6261_a1db_396981c7761d 8fa2a696_bed4_6bec_383f_7df160ded516["execa"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> 8fa2a696_bed4_6bec_383f_7df160ded516 f9f5e551_eb59_1a6b_8bf2_b97e73eb13de["fs-extra"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> f9f5e551_eb59_1a6b_8bf2_b97e73eb13de e68f2c02_595f_e9c2_5917_7a8d47bcfc87["prompts"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> e68f2c02_595f_e9c2_5917_7a8d47bcfc87 6802ce19_522d_e5fb_e458_8826d9f6952e["zod"] f570a109_148e_1b68_ffd0_6e7f2f8ca03d --> 6802ce19_522d_e5fb_e458_8826d9f6952e 74dfec7c_a4d0_7cc3_4208_e3ebff9fa685["create-project.test.ts"] 74dfec7c_a4d0_7cc3_4208_e3ebff9fa685 --> f570a109_148e_1b68_ffd0_6e7f2f8ca03d style f570a109_148e_1b68_ffd0_6e7f2f8ca03d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import os from "os"
import path from "path"
import { initOptionsSchema } from "@/src/commands/init"
import { fetchRegistry } from "@/src/registry/fetcher"
import { getPackageManager } from "@/src/utils/get-package-manager"
import { handleError } from "@/src/utils/handle-error"
import { highlighter } from "@/src/utils/highlighter"
import { logger } from "@/src/utils/logger"
import { spinner } from "@/src/utils/spinner"
import { execa } from "execa"
import fs from "fs-extra"
import prompts from "prompts"
import { z } from "zod"
const GITHUB_TEMPLATE_URL =
"https://codeload.github.com/shadcn-ui/ui/tar.gz/main"
export const TEMPLATES = {
next: "next",
"next-monorepo": "next-monorepo",
vite: "vite",
start: "start",
} as const
export async function createProject(
options: Pick<
z.infer<typeof initOptionsSchema>,
"cwd" | "name" | "force" | "srcDir" | "components" | "template"
>
) {
options = {
srcDir: false,
...options,
}
let template: keyof typeof TEMPLATES =
options.template && TEMPLATES[options.template as keyof typeof TEMPLATES]
? (options.template as keyof typeof TEMPLATES)
: "next"
let projectName: string =
options.name ??
(template === TEMPLATES.next ||
template === TEMPLATES.vite ||
template === TEMPLATES.start
? "my-app"
: "my-monorepo")
let nextVersion = "latest"
const isRemoteComponent =
options.components?.length === 1 &&
!!options.components[0].match(/\/chat\/b\//)
if (options.components && isRemoteComponent) {
try {
const [result] = await fetchRegistry(options.components)
const { meta } = z
.object({
meta: z.object({
nextVersion: z.string(),
}),
// ... (377 more lines)
Domain
Subdomains
Functions
Dependencies
- execa
- fetcher
- fs-extra
- get-package-manager
- handle-error
- highlighter
- init
- logger
- os
- path
- prompts
- spinner
- zod
Imported By
Source
Frequently Asked Questions
What does create-project.ts do?
create-project.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 create-project.ts?
create-project.ts defines 5 function(s): createMonorepoProject, createNextProject, createProject, createStartProject, createViteProject.
What does create-project.ts depend on?
create-project.ts imports 13 module(s): execa, fetcher, fs-extra, get-package-manager, handle-error, highlighter, init, logger, and 5 more.
What files import create-project.ts?
create-project.ts is imported by 1 file(s): create-project.test.ts.
Where is create-project.ts in the architecture?
create-project.ts is located at packages/shadcn/src/utils/create-project.ts (domain: FrameworkTooling, subdomain: CLICore, directory: packages/shadcn/src/utils).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free