Download frontend/scripts/reset-project.js from zeroday01/ipl_prediction_engine: direct link, hf CLI and curl.
- Browser
- Download file 3.61 kB
-
https://huggingface.co/zeroday01/ipl_prediction_engine/resolve/main/frontend/scripts/reset-project.js
- Command line
-
hf download hf://zeroday01/ipl_prediction_engine/frontend/scripts/reset-project.js
-
curl -L -o reset-project.js https://huggingface.co/zeroday01/ipl_prediction_engine/resolve/main/frontend/scripts/reset-project.js
3.61 kB
| /** | |
| * This script is used to reset the project to a blank state. | |
| * It deletes or moves the /app, /components, /hooks, /scripts, and /constants directories to /app-example based on user input and creates a new /app directory with an index.tsx and _layout.tsx file. | |
| * You can remove the `reset-project` script from package.json and safely delete this file after running it. | |
| */ | |
| const fs = require("fs"); | |
| const path = require("path"); | |
| const readline = require("readline"); | |
| const root = process.cwd(); | |
| const oldDirs = ["app", "components", "hooks", "constants", "scripts"]; | |
| const exampleDir = "app-example"; | |
| const newAppDir = "app"; | |
| const exampleDirPath = path.join(root, exampleDir); | |
| const indexContent = `import { Text, View } from "react-native"; | |
| export default function Index() { | |
| return ( | |
| <View | |
| style={{ | |
| flex: 1, | |
| justifyContent: "center", | |
| alignItems: "center", | |
| }} | |
| > | |
| <Text>Edit app/index.tsx to edit this screen.</Text> | |
| </View> | |
| ); | |
| } | |
| `; | |
| const layoutContent = `import { Stack } from "expo-router"; | |
| export default function RootLayout() { | |
| return <Stack />; | |
| } | |
| `; | |
| const rl = readline.createInterface({ | |
| input: process.stdin, | |
| output: process.stdout, | |
| }); | |
| const moveDirectories = async (userInput) => { | |
| try { | |
| if (userInput === "y") { | |
| // Create the app-example directory | |
| await fs.promises.mkdir(exampleDirPath, { recursive: true }); | |
| console.log(`π /${exampleDir} directory created.`); | |
| } | |
| // Move old directories to new app-example directory or delete them | |
| for (const dir of oldDirs) { | |
| const oldDirPath = path.join(root, dir); | |
| if (fs.existsSync(oldDirPath)) { | |
| if (userInput === "y") { | |
| const newDirPath = path.join(root, exampleDir, dir); | |
| await fs.promises.rename(oldDirPath, newDirPath); | |
| console.log(`β‘οΈ /${dir} moved to /${exampleDir}/${dir}.`); | |
| } else { | |
| await fs.promises.rm(oldDirPath, { recursive: true, force: true }); | |
| console.log(`β /${dir} deleted.`); | |
| } | |
| } else { | |
| console.log(`β‘οΈ /${dir} does not exist, skipping.`); | |
| } | |
| } | |
| // Create new /app directory | |
| const newAppDirPath = path.join(root, newAppDir); | |
| await fs.promises.mkdir(newAppDirPath, { recursive: true }); | |
| console.log("\nπ New /app directory created."); | |
| // Create index.tsx | |
| const indexPath = path.join(newAppDirPath, "index.tsx"); | |
| await fs.promises.writeFile(indexPath, indexContent); | |
| console.log("π app/index.tsx created."); | |
| // Create _layout.tsx | |
| const layoutPath = path.join(newAppDirPath, "_layout.tsx"); | |
| await fs.promises.writeFile(layoutPath, layoutContent); | |
| console.log("π app/_layout.tsx created."); | |
| console.log("\nβ Project reset complete. Next steps:"); | |
| console.log( | |
| `1. Run \`npx expo start\` to start a development server.\n2. Edit app/index.tsx to edit the main screen.${ | |
| userInput === "y" | |
| ? `\n3. Delete the /${exampleDir} directory when you're done referencing it.` | |
| : "" | |
| }`, | |
| ); | |
| } catch (error) { | |
| console.error(`β Error during script execution: ${error.message}`); | |
| } | |
| }; | |
| rl.question( | |
| "Do you want to move existing files to /app-example instead of deleting them? (Y/n): ", | |
| (answer) => { | |
| const userInput = answer.trim().toLowerCase() || "y"; | |
| if (userInput === "y" || userInput === "n") { | |
| moveDirectories(userInput).finally(() => rl.close()); | |
| } else { | |
| console.log("β Invalid input. Please enter 'Y' or 'N'."); | |
| rl.close(); | |
| } | |
| }, | |
| ); | |