From 0332024aba82d4b0b78f93008091aa26f1354a86 Mon Sep 17 00:00:00 2001 From: Claire Squires Date: Thu, 21 Mar 2024 16:41:57 +0000 Subject: [PATCH 1/7] feat: create function to prompt user --- packages/create-universal-app/package.json | 1 + .../utils/getUserInput.js | 24 +++++ yarn.lock | 98 ++++++++++++++++++- 3 files changed, 119 insertions(+), 4 deletions(-) create mode 100644 packages/create-universal-app/utils/getUserInput.js diff --git a/packages/create-universal-app/package.json b/packages/create-universal-app/package.json index 529d9691..4f9ec4cd 100644 --- a/packages/create-universal-app/package.json +++ b/packages/create-universal-app/package.json @@ -7,6 +7,7 @@ "bin": "./bin/generate.js", "dependencies": { "fs-extra": "^11.2.0", + "inquirer": "^9.2.16", "ora": "^8.0.1" } } diff --git a/packages/create-universal-app/utils/getUserInput.js b/packages/create-universal-app/utils/getUserInput.js new file mode 100644 index 00000000..6a1318d7 --- /dev/null +++ b/packages/create-universal-app/utils/getUserInput.js @@ -0,0 +1,24 @@ +import inquirer from "inquirer"; + +export const getUserInput = async () => { + const ui = new inquirer.ui.BottomBar(); + // const platformQuestion = { + // type: "checkbox", + // name: "platforms", + // message: "Select your desired platforms:", + // choices: ["Mobile", "Web", "TV"], + // }; + const authUIQuestion = { + type: "confirm", + name: "authUI", + message: "Would you like the project to include a pre-made authentication UI?", + default: false, + }; + + const questions = [authUIQuestion]; + + ui.log.write("Answer some questions on the setup of your project:"); + await inquirer.prompt(questions).then((answers) => console.log("Creating your project...")); + + return answers; +}; diff --git a/yarn.lock b/yarn.lock index 8417da94..6d4c436c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2764,6 +2764,15 @@ __metadata: languageName: node linkType: hard +"@ljharb/through@npm:^2.3.13": + version: 2.3.13 + resolution: "@ljharb/through@npm:2.3.13" + dependencies: + call-bind: ^1.0.7 + checksum: 0255464a0ec7901b08cff3e99370b87e66663f46249505959c0cb4f6121095d533bbb7c7cda338063d3e134cbdd721e2705bc18eac7611b4f9ead6e7935d13ba + languageName: node + linkType: hard + "@motionone/animation@npm:^10.12.0": version: 10.17.0 resolution: "@motionone/animation@npm:10.17.0" @@ -5555,6 +5564,13 @@ __metadata: languageName: node linkType: hard +"chardet@npm:^0.7.0": + version: 0.7.0 + resolution: "chardet@npm:0.7.0" + checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d + languageName: node + linkType: hard + "charenc@npm:0.0.2, charenc@npm:~0.0.1": version: 0.0.2 resolution: "charenc@npm:0.0.2" @@ -5671,6 +5687,13 @@ __metadata: languageName: node linkType: hard +"cli-width@npm:^4.1.0": + version: 4.1.0 + resolution: "cli-width@npm:4.1.0" + checksum: 0a79cff2dbf89ef530bcd54c713703ba94461457b11e5634bd024c78796ed21401e32349c004995954e06f442d82609287e7aabf6a5f02c919a1cf3b9b6854ff + languageName: node + linkType: hard + "client-only@npm:0.0.1": version: 0.0.1 resolution: "client-only@npm:0.0.1" @@ -5992,14 +6015,15 @@ __metadata: languageName: node linkType: hard -"create-universal-enabler-app@workspace:packages/create-universal-app": +"create-universal-enabler-app-test@workspace:packages/create-universal-app": version: 0.0.0-use.local - resolution: "create-universal-enabler-app@workspace:packages/create-universal-app" + resolution: "create-universal-enabler-app-test@workspace:packages/create-universal-app" dependencies: fs-extra: ^11.2.0 + inquirer: ^9.2.16 ora: ^8.0.1 bin: - create-universal-enabler-app: ./bin/generate.js + create-universal-enabler-app-test: ./bin/generate.js languageName: unknown linkType: soft @@ -7540,6 +7564,17 @@ __metadata: languageName: node linkType: hard +"external-editor@npm:^3.1.0": + version: 3.1.0 + resolution: "external-editor@npm:3.1.0" + dependencies: + chardet: ^0.7.0 + iconv-lite: ^0.4.24 + tmp: ^0.0.33 + checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -7655,6 +7690,15 @@ __metadata: languageName: node linkType: hard +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: ^1.0.5 + checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b + languageName: node + linkType: hard + "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -8473,6 +8517,15 @@ __metadata: languageName: node linkType: hard +"iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + "iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -8582,6 +8635,29 @@ __metadata: languageName: node linkType: hard +"inquirer@npm:^9.2.16": + version: 9.2.16 + resolution: "inquirer@npm:9.2.16" + dependencies: + "@ljharb/through": ^2.3.13 + ansi-escapes: ^4.3.2 + chalk: ^5.3.0 + cli-cursor: ^3.1.0 + cli-width: ^4.1.0 + external-editor: ^3.1.0 + figures: ^3.2.0 + lodash: ^4.17.21 + mute-stream: 1.0.0 + ora: ^5.4.1 + run-async: ^3.0.0 + rxjs: ^7.8.1 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wrap-ansi: ^6.2.0 + checksum: 3727d7ec5eaa5142c63c067004daed563656eefd04a42a57fcb1a4956625596cf0bb2e6e525e6202fff1dace8a0419a28e5f3b848af29e71ce739d09f9cf8bf6 + languageName: node + linkType: hard + "internal-ip@npm:4.3.0": version: 4.3.0 resolution: "internal-ip@npm:4.3.0" @@ -10500,6 +10576,13 @@ __metadata: languageName: node linkType: hard +"mute-stream@npm:1.0.0": + version: 1.0.0 + resolution: "mute-stream@npm:1.0.0" + checksum: 36fc968b0e9c9c63029d4f9dc63911950a3bdf55c9a87f58d3a266289b67180201cade911e7699f8b2fa596b34c9db43dad37649e3f7fdd13c3bb9edb0017ee7 + languageName: node + linkType: hard + "mv@npm:~2": version: 2.1.1 resolution: "mv@npm:2.1.1" @@ -12684,6 +12767,13 @@ __metadata: languageName: node linkType: hard +"run-async@npm:^3.0.0": + version: 3.0.0 + resolution: "run-async@npm:3.0.0" + checksum: 280c03d5a88603f48103fc6fd69f07fb0c392a1e0d319c34ec96a2516030e07ba06f79231a563c78698b882649c2fc1fda601bc84705f57d50efcd1fa506cfc0 + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -12746,7 +12836,7 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3.0.0": +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 From fcdee23f5a132b62830b7f90b0167ea485d3251e Mon Sep 17 00:00:00 2001 From: Claire Squires Date: Thu, 21 Mar 2024 16:42:07 +0000 Subject: [PATCH 2/7] feat: call function in generate script --- packages/create-universal-app/bin/generate.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/create-universal-app/bin/generate.js b/packages/create-universal-app/bin/generate.js index 8b1b6d06..9e28c762 100755 --- a/packages/create-universal-app/bin/generate.js +++ b/packages/create-universal-app/bin/generate.js @@ -3,6 +3,7 @@ import { spawn } from "child_process"; import fs from "fs-extra"; import ora from "ora"; import path from "path"; +import { getUserInput } from "../utils/getUserInput.js"; const repoURL = "https://github.com/theodo-group/universal-app.git"; const projectName = process.argv[2]; @@ -14,6 +15,8 @@ if (!projectName) { const projectDir = path.join(process.cwd(), projectName); +const userAnswers = await getUserInput(); + const runAsyncProcess = async (spawnFunction) => { return new Promise((resolve, reject) => { spawnFunction() @@ -51,6 +54,10 @@ const runAsyncProcess = async (spawnFunction) => { const packagesDir = path.join(projectDir, "packages"); const createUniversalAppDir = path.join(packagesDir, "create-universal-app"); await fs.remove(createUniversalAppDir); + if (!userAnswers.authUI) { + const authDir = path.join(packagesDir, "frontend/core/src/features/auth"); + await fs.remove(authDir); + } cleanRepo.stop(); console.log("Project generated successfully!"); From 212e9382f7ba12db6cdcf1bb477aa54651fa6951 Mon Sep 17 00:00:00 2001 From: Claire Squires Date: Fri, 22 Mar 2024 16:03:28 +0000 Subject: [PATCH 3/7] fix: return answers properly --- packages/create-universal-app/utils/getUserInput.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/create-universal-app/utils/getUserInput.js b/packages/create-universal-app/utils/getUserInput.js index 6a1318d7..2c83ec0f 100644 --- a/packages/create-universal-app/utils/getUserInput.js +++ b/packages/create-universal-app/utils/getUserInput.js @@ -18,7 +18,6 @@ export const getUserInput = async () => { const questions = [authUIQuestion]; ui.log.write("Answer some questions on the setup of your project:"); - await inquirer.prompt(questions).then((answers) => console.log("Creating your project...")); - + const answers = await inquirer.prompt(questions); return answers; }; From 8f30ecf5f457666737cd68c0a3e402ca3572318f Mon Sep 17 00:00:00 2001 From: Claire Squires Date: Fri, 22 Mar 2024 16:03:47 +0000 Subject: [PATCH 4/7] fix: call getUserInput in async function --- packages/create-universal-app/bin/generate.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/create-universal-app/bin/generate.js b/packages/create-universal-app/bin/generate.js index 9e28c762..c9b8976e 100755 --- a/packages/create-universal-app/bin/generate.js +++ b/packages/create-universal-app/bin/generate.js @@ -15,8 +15,6 @@ if (!projectName) { const projectDir = path.join(process.cwd(), projectName); -const userAnswers = await getUserInput(); - const runAsyncProcess = async (spawnFunction) => { return new Promise((resolve, reject) => { spawnFunction() @@ -40,6 +38,8 @@ const runAsyncProcess = async (spawnFunction) => { return; } + const userAnswers = await getUserInput(); + const cloning = ora(`Cloning repository to "${projectDir}"...`).start(); await runAsyncProcess(() => spawn("git", ["clone", "--depth", "1", repoURL, projectDir])); cloning.stop(); From bdea60dfdd75aab85b2921cab22cd818d8f00fc0 Mon Sep 17 00:00:00 2001 From: Claire Squires Date: Fri, 22 Mar 2024 16:11:39 +0000 Subject: [PATCH 5/7] revert: remove auth pages in apps --- apps/expo/app/auth/login/index.tsx | 6 ------ apps/next/app/auth/login/page.tsx | 7 ------- packages/frontend/core/src/features/home/screen.tsx | 3 --- 3 files changed, 16 deletions(-) delete mode 100644 apps/expo/app/auth/login/index.tsx delete mode 100644 apps/next/app/auth/login/page.tsx diff --git a/apps/expo/app/auth/login/index.tsx b/apps/expo/app/auth/login/index.tsx deleted file mode 100644 index c6eb880f..00000000 --- a/apps/expo/app/auth/login/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import { LoginScreen } from "@frontend/core"; -import React from "react"; - -export default function Login() { - return ; -} diff --git a/apps/next/app/auth/login/page.tsx b/apps/next/app/auth/login/page.tsx deleted file mode 100644 index 47dd7df6..00000000 --- a/apps/next/app/auth/login/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -"use client"; - -import { LoginScreen } from "@frontend/core"; - -export default function LoginPage() { - return ; -} diff --git a/packages/frontend/core/src/features/home/screen.tsx b/packages/frontend/core/src/features/home/screen.tsx index d1a31161..cef07cea 100644 --- a/packages/frontend/core/src/features/home/screen.tsx +++ b/packages/frontend/core/src/features/home/screen.tsx @@ -64,9 +64,6 @@ export const HomeScreen: React.FC = ({ data }) => { Regular Link - - Login - Date: Fri, 22 Mar 2024 16:25:19 +0000 Subject: [PATCH 6/7] fix: typo --- packages/create-universal-app/bin/generate.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/create-universal-app/bin/generate.js b/packages/create-universal-app/bin/generate.js index c9b8976e..903ef6ae 100755 --- a/packages/create-universal-app/bin/generate.js +++ b/packages/create-universal-app/bin/generate.js @@ -3,9 +3,8 @@ import { spawn } from "child_process"; import fs from "fs-extra"; import ora from "ora"; import path from "path"; -import { getUserInput } from "../utils/getUserInput.js"; -const repoURL = "https://github.com/theodo-group/universal-app.git"; +const REPO_URL = "https://github.com/theodo-group/universal-app.git"; const projectName = process.argv[2]; if (!projectName) { @@ -41,7 +40,7 @@ const runAsyncProcess = async (spawnFunction) => { const userAnswers = await getUserInput(); const cloning = ora(`Cloning repository to "${projectDir}"...`).start(); - await runAsyncProcess(() => spawn("git", ["clone", "--depth", "1", repoURL, projectDir])); + await runAsyncProcess(() => spawn("git", ["clone", "--depth", "1", REPO_URL, projectDir])); cloning.stop(); //remove git history and init a new one From 37aa185af9b215ecf82a722e2214f3b7f2d404f7 Mon Sep 17 00:00:00 2001 From: Claire Squires Date: Fri, 22 Mar 2024 17:14:52 +0000 Subject: [PATCH 7/7] fix: update package version --- packages/create-universal-app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/create-universal-app/package.json b/packages/create-universal-app/package.json index 4f9ec4cd..780320b8 100644 --- a/packages/create-universal-app/package.json +++ b/packages/create-universal-app/package.json @@ -1,6 +1,6 @@ { "name": "create-universal-enabler-app", - "version": "0.0.6", + "version": "0.0.7", "type": "module", "description": "A generator for creating Universal Apps with the Theodo Group's Universal App Enabler", "packageManager": "yarn@3.4.1",