summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2024-08-28 15:53:21 +0200
committerSanto Cariotti <santo@dcariotti.me>2024-08-28 15:53:21 +0200
commit83643a78b73dee5610be6ad9837fb72e9b944cb7 (patch)
tree1eca6bad452656f78879c829181362f3b586d697 /scripts
Initial commit
Generated by create-expo-app 3.0.0.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/reset-project.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/scripts/reset-project.js b/scripts/reset-project.js
new file mode 100755
index 0000000..4512e16
--- /dev/null
+++ b/scripts/reset-project.js
@@ -0,0 +1,73 @@
+#!/usr/bin/env node
+
+/**
+ * This script is used to reset the project to a blank state.
+ * It moves the /app directory to /app-example 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 root = process.cwd();
+const oldDirPath = path.join(root, 'app');
+const newDirPath = path.join(root, 'app-example');
+const newAppDirPath = path.join(root, 'app');
+
+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>
+ <Stack.Screen name="index" />
+ </Stack>
+ );
+}
+`;
+
+fs.rename(oldDirPath, newDirPath, (error) => {
+ if (error) {
+ return console.error(`Error renaming directory: ${error}`);
+ }
+ console.log('/app moved to /app-example.');
+
+ fs.mkdir(newAppDirPath, { recursive: true }, (error) => {
+ if (error) {
+ return console.error(`Error creating new app directory: ${error}`);
+ }
+ console.log('New /app directory created.');
+
+ const indexPath = path.join(newAppDirPath, 'index.tsx');
+ fs.writeFile(indexPath, indexContent, (error) => {
+ if (error) {
+ return console.error(`Error creating index.tsx: ${error}`);
+ }
+ console.log('app/index.tsx created.');
+
+ const layoutPath = path.join(newAppDirPath, '_layout.tsx');
+ fs.writeFile(layoutPath, layoutContent, (error) => {
+ if (error) {
+ return console.error(`Error creating _layout.tsx: ${error}`);
+ }
+ console.log('app/_layout.tsx created.');
+ });
+ });
+ });
+});