{
  "config": {
    "tasks": [
      {
        "label": "App packager",
        "isBackground": true,
        "options": { "cwd": "${workspaceFolder}/apps/app" },
        "command": "yarn start",
        "presentation": { "group": "run" },
        "runOptions": { "runOn": "folderOpen" }
      }
    ]
  },
  "instructions": "",
  "commands": [
    {
      "command": "npx expo-cli init -t expo-template-blank-typescript app",
      "description": "Creating expo-app"
    },
    {
      "command": {
        "darwin": "cd app && rm -rf .git",
        "win32": "cd app && rmdir .git /s /q",
        "linux": "cd app && rm -rf .git"
      },
      "description": "Removing git folder"
    },
    {
      "command": "cd app && yarn add react@17.0.2 react-dom@17.0.2",
      "description": "Install right react version to prevent invalid hook call"
    },
    {
      "command": "npx setjsonkey app/package.json main App.tsx",
      "description": "changing main entry of package.json"
    },

    {
      "command": "cd app && npx expo-cli install core@* ui@* sensible-core@* react-query @react-native-async-storage/async-storage expo-notifications",
      "description": "Installing app dependencies"
    },

    {
      "command": "cd app && npx expo-cli install @react-navigation/native @react-navigation/native-stack react-native-screens react-native-safe-area-context",
      "description": "Install react-navigation"
    },

    {
      "command": "cd app && yarn add -D @expo/webpack-config babel-plugin-module-resolver",
      "description": "Installing app devDependencies"
    },

    {
      "command": "cd app && yarn add tailwind-rn && yarn add -D tailwindcss postcss concurrently && npx tailwindcss init && echo '@tailwind utilities;' > input.css",
      "description": "Install tailwind"
    },

    {
      "command": "cd app && yarn add react-native-modal-datetime-picker @react-native-community/datetimepicker",
      "description": "Install react-with-native-form-inputs"
    },

    {
      "command": "cd app && yarn add -D npm-run-all",
      "description": "install script to run all expo stuff at once"
    },
    {
      "command": "cd app && npx setjsonkey package.json scripts.build:tailwind \"tailwindcss --input input.css --output tailwind.css --no-autoprefixer && tailwind-rn\" && npx setjsonkey package.json scripts.dev:tailwindcss \"tailwindcss --input input.css --output tailwind.css --no-autoprefixer --watch\" && npx setjsonkey package.json scripts.dev:tailwindrn \"tailwind-rn --watch\" && npx setjsonkey package.json scripts.dev:expo \"expo start\" && npx setjsonkey package.json scripts.dev \"yarn build:tailwind && npm-run-all --parallel dev:**\"",
      "description": "Metascripting your json, installing tailwind scripts"
    },
    {
      "command": "cd app && npx setjsonkey package.json scripts.deploy \"npx eas-cli build --platform all --non-interactive --auto-submit\" && npx setjsonkey package.json scripts.build:apk \"npx eas-cli build --platform android --profile preview\" && npx setjsonkey package.json scripts.build:aab \"npx eas-cli build --platform android\" && npx setjsonkey package.json scripts.build:ios \"npx eas-cli build --platform ios\"",
      "description": "Installing build scripts"
    }
  ]
}
