import { Cliffy, Path, FS } from "../deps.ts"; import { getMeta, setMeta, IMeta, getConfig, isInteractive, } from "../global.ts"; export default async function init() { let existing = {}; try { existing = await getMeta(); } catch (err) {} let meta: IMeta = { name: Path.basename(Deno.cwd()).toLowerCase().replace(/\s+/g, "-"), version: "0.0.1", description: "", author: getConfig("author"), contributors: [], files: ["**/*.ts", "**/*.js", "README.md"], ...existing, }; if (isInteractive()) { meta.name = await Cliffy.Input.prompt({ message: "What's the name of your package?", default: meta.name, }); meta.description = await Cliffy.Input.prompt({ message: "What's the description of your package?", default: meta.description, }); meta.author = await Cliffy.Input.prompt({ message: "Who's the author of your package?", default: meta.author, }); if (!(await FS.exists("README.md"))) { const res = await Cliffy.Confirm.prompt({ message: "Autogenerate README?", default: true, }); if (res) { await Deno.writeFile( "README.md", new TextEncoder().encode(meta.description || "") ); } } } await setMeta(meta); }