// Create a new project. import { mkdirSync, writeFileSync } from "fs" import { join } from "path" import { projects } from "@/project" import { NOSE_DIR } from "@/config" import load from "./load" export default function (project: string) { if (!project) throw "usage: mkproject " if (projects().includes(project)) throw `${project} already exists` const dir = join(NOSE_DIR, project) mkdirSync(join(dir, "bin"), { recursive: true }) writeFileSync(join(dir, "index.tsx"), `export default (c: Context) =>\n "Hello from the ${project} project!"`) writeFileSync(join(dir, "bin", `${project}.ts`), `export default function() {\n return "The ${project} project lives!"\n}`) writeFileSync(join(dir, "tsconfig.json"), `{ "extends": "../tsconfig.json", "include": ["./**/*"] }`) load(project) return `Created ${project}` }