import { Config, Libraries } from "./lib/create/common/config.ts";import { ask, confirm } from "./lib/create/common/ask.ts";import { createUltraApp } from "./lib/create/common/createUltraApp.ts";import { c, gradient } from "./lib/create/common/styling.ts";
console.log(gradient( `ββ’ βββββ ββββββββ βββΒ· ββͺββββββ’ β’ββ ββ βΒ·ββ ββ ββββββββͺ ββ.βͺββββ βββββ ββββββββββ βββΒ·βββ’ββββ βͺββ βββ .βββ βββ .β β β β`, .5,));console.log(`\nWelcome to ${gradient("Ultra")}\nLet's get you setup with your new ${gradient("Ultra")} project.`);
const projectName = (await ask<string>(`\nWhat is the name of your project?`)) || "my-ultra-app";
const useTypescript = await confirm("\nDo you want to use TypeScript?");
if (Deno.args.length) {
const config: Config = { ts: useTypescript, name: projectName, cwd: Deno.cwd(), includes: Deno.args as Libraries[], };
await createUltraApp(config);}
const styleLibrary = await ask<Libraries>( `\nWhich css/style library do you want to use?\n'${c(0, "(0) None ")} ${ c(1, "(1) Twind ") } ${c(2, "(2) Stitches ")}`, ["none", "twind", "stitches"],);
const routingLibrary = await ask<Libraries>( `\nWhich routing library do you want to use?\n${c(0, "(0) None ")} ${ c(1, "(1) React Router ") } ${c(2, "(2) Wouter ")}`, ["none", "react-router", "wouter"],);
const headLibrary = await ask<Libraries>( `\nWhich head management library do you want to use?\n${c(0, "(0) None ")} ${ c(1, "(1) React Helmet") }`, ["none", "react-helmet-async"],);
const queryLibrary = await ask<Libraries>( `\nWhich query library do you want to use?\n${c(0, "(0) None")} ${ c(1, "(1) React Query") }`, ["none", "react-query"],);
function parseImports() { const imports = [ styleLibrary, routingLibrary, headLibrary, queryLibrary, ]; return imports as Libraries[];}
const config: Config = { ts: useTypescript, name: projectName, cwd: Deno.cwd(), includes: parseImports(),};
await createUltraApp(config);