diff --git a/packages/create-next-on-firebase/package.json b/packages/create-next-on-firebase/package.json new file mode 100644 index 00000000..e72c0879 --- /dev/null +++ b/packages/create-next-on-firebase/package.json @@ -0,0 +1,19 @@ +{ + "name": "create-next-on-firebase", + "version": "0.1.0", + "description": "Experimental CLI to init a Next.js project for deployment on Firebase", + "main": "dist/index.js", + "scripts": { + "build": "rm -rf dist && tsc && chmod +x ./dist/bin/*" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/FirebaseExtended/firebase-framework-tools.git" + }, + "author": "Firebase", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/FirebaseExtended/firebase-framework-tools/issues" + }, + "homepage": "https://github.com/FirebaseExtended/firebase-framework-tools#readme" +} diff --git a/packages/create-next-on-firebase/src/bin/create.ts b/packages/create-next-on-firebase/src/bin/create.ts new file mode 100644 index 00000000..46c652c4 --- /dev/null +++ b/packages/create-next-on-firebase/src/bin/create.ts @@ -0,0 +1,33 @@ +#! /usr/bin/env node +import { spawn } from "node:child_process"; +import { program } from "commander"; + +program.argument("", "path to the project's root directory").action((directory) => { + console.log(`Shelling out to @apphosting/create:`); + + const createProcess = spawn("npx", ["@apphosting/create", "--framework=nextjs", directory], { + shell: true, + stdio: "inherit", + }); + + // print out the shell command that spawn created + console.log(createProcess.spawnargs.at(-1)); + + createProcess.stdout?.on("data", (data) => { + console.log(`i: ${data}`); + }); + + createProcess.stderr?.on("data", (data) => { + console.error(`error: ${data}`); + }); + + createProcess.on("close", (code) => { + if (code === 0) { + console.log("Success!"); + } else { + console.log(`There was a problem, exited with code ${code}`); + } + }); +}); + +program.parse(); diff --git a/packages/create-next-on-firebase/src/index.ts b/packages/create-next-on-firebase/src/index.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/packages/create-next-on-firebase/src/index.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/create-next-on-firebase/tsconfig.json b/packages/create-next-on-firebase/tsconfig.json new file mode 100644 index 00000000..16c33592 --- /dev/null +++ b/packages/create-next-on-firebase/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "noEmit": false, + "outDir": "dist" + }, + "include": ["src/index.ts", "src/bin/*.ts"] +}