From 8e72b5b61552ac014b11f2a0738ed8c9aba0b7e9 Mon Sep 17 00:00:00 2001 From: dswbx Date: Thu, 13 Feb 2025 08:51:48 +0100 Subject: [PATCH] init create cli, added node and partially cloudflare --- .gitignore | 1 + app/package.json | 3 +- app/src/cli/commands/create/create.ts | 251 ++++++++++++++++++ app/src/cli/commands/create/index.ts | 1 + app/src/cli/commands/create/npm.ts | 75 ++++++ .../commands/create/templates/cloudflare.ts | 106 ++++++++ .../cli/commands/create/templates/index.ts | 49 ++++ app/src/cli/commands/index.ts | 1 + app/src/cli/utils/cli.ts | 14 + app/src/cli/utils/sys.ts | 13 + bun.lockb | Bin 1113688 -> 1112192 bytes examples/cloudflare-worker/package.json | 2 +- examples/cloudflare-worker/wrangler.json | 28 ++ .../{wrangler.toml => wrangler.toml__} | 0 package.json | 4 +- 15 files changed, 544 insertions(+), 4 deletions(-) create mode 100644 app/src/cli/commands/create/create.ts create mode 100644 app/src/cli/commands/create/index.ts create mode 100644 app/src/cli/commands/create/npm.ts create mode 100644 app/src/cli/commands/create/templates/cloudflare.ts create mode 100644 app/src/cli/commands/create/templates/index.ts create mode 100644 app/src/cli/utils/cli.ts create mode 100644 examples/cloudflare-worker/wrangler.json rename examples/cloudflare-worker/{wrangler.toml => wrangler.toml__} (100%) diff --git a/.gitignore b/.gitignore index fe4c90f..3712ddf 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ packages/media/.env .history **/*/.db/* **/*/.configs/* +**/*/.template/* **/*/*.db **/*/*.db-shm **/*/*.db-wal diff --git a/app/package.json b/app/package.json index 87be1c9..c6ceb33 100644 --- a/app/package.json +++ b/app/package.json @@ -60,6 +60,7 @@ }, "devDependencies": { "@aws-sdk/client-s3": "^3.613.0", + "@bluwy/giget-core": "^0.1.2", "@dagrejs/dagre": "^1.1.4", "@hono/typebox-validator": "^0.2.6", "@hono/vite-dev-server": "^0.17.0", @@ -219,4 +220,4 @@ "bun", "node" ] -} +} \ No newline at end of file diff --git a/app/src/cli/commands/create/create.ts b/app/src/cli/commands/create/create.ts new file mode 100644 index 0000000..49ac6f0 --- /dev/null +++ b/app/src/cli/commands/create/create.ts @@ -0,0 +1,251 @@ +import fs from "node:fs"; +import { downloadTemplate } from "@bluwy/giget-core"; +import * as $p from "@clack/prompts"; +import type { CliCommand } from "cli/types"; +import { typewriter, wait } from "cli/utils/cli"; +import { exec, getVersion } from "cli/utils/sys"; +import { Option } from "commander"; +import color from "picocolors"; +import { updateBkndPackages } from "./npm"; +import { type Template, templates } from "./templates"; + +const config = { + types: { + runtime: "Runtime", + framework: "Framework" + }, + runtime: { + node: "Node.js", + bun: "Bun", + cloudflare: "Cloudflare" + }, + framework: { + nextjs: "Next.js", + remix: "Remix", + astro: "Astro" + } +} as const; + +export const create: CliCommand = (program) => { + program + .command("create") + .addOption(new Option("-i, --integration ", "integration to use")) + .addOption(new Option("-t, --template