UNPKG

create-esmx

Version:

A scaffold tool for creating Esmx projects

43 lines (42 loc) 1.01 kB
import { basename, isAbsolute, normalize, resolve } from "node:path"; export function formatProjectName(input, cwd) { const workingDir = cwd || process.cwd(); let cleanInput = input; if (input !== "/" && input !== "\\" && input.length > 1) { cleanInput = input.replace(/[\\/]+$/, ""); } if (cleanInput === ".") { return { name: basename(workingDir), root: workingDir }; } if (cleanInput === "" || cleanInput === "/" || cleanInput === "\\") { if (cleanInput === "/") { return { name: "esmx-project", root: "/" }; } return { name: "esmx-project", root: resolve(workingDir, "esmx-project") }; } let root; if (isAbsolute(cleanInput)) { root = normalize(cleanInput); } else { root = resolve(workingDir, cleanInput); } let name; if (cleanInput.startsWith("@")) { name = cleanInput; } else { name = basename(normalize(cleanInput)) || "esmx-project"; } return { name, root }; }