Skip to main content
Module

x/ultra/create.ts

πŸ§™ Hypermodern Zero-Legacy Deno/React Framework
Go to Latest
File
// IMPORTSimport { 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";
//INIT
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 arguments were provided, use them instead of asking the user
if (Deno.args.length) { // CONFIG GENERATION
const config: Config = { ts: useTypescript, name: projectName, cwd: Deno.cwd(), includes: Deno.args as Libraries[], };
// FILE CREATION AND FORMATTING, will exit
await createUltraApp(config);}
// or else, continueconst 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"],);
// CONFIG GENERATION
function parseImports() { const imports = [ styleLibrary, routingLibrary, headLibrary, queryLibrary, ]; return imports as Libraries[];}
const config: Config = { ts: useTypescript, name: projectName, cwd: Deno.cwd(), includes: parseImports(),};
// FILE CREATION AND FORMATTING, will exitawait createUltraApp(config);