UNPKG

@expo/cli

Version:
1 lines 15.6 kB
{"version":3,"sources":["../../bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport arg from 'arg';\nimport chalk from 'chalk';\nimport Debug from 'debug';\nimport { boolish } from 'getenv';\n\n// Setup before requiring `debug`.\nif (boolish('EXPO_DEBUG', false)) {\n Debug.enable('expo:*');\n} else if (Debug.enabled('expo:')) {\n process.env.EXPO_DEBUG = '1';\n}\n\nconst defaultCmd = 'start';\n\nexport type Command = (argv?: string[]) => void;\n\nconst commands: { [command: string]: () => Promise<Command> } = {\n // Add a new command here\n // NOTE(EvanBacon): Ensure every bundler-related command sets `NODE_ENV` as expected for the command.\n run: () => import('../src/run/index.js').then((i) => i.expoRun),\n 'run:ios': () => import('../src/run/ios/index.js').then((i) => i.expoRunIos),\n 'run:android': () => import('../src/run/android/index.js').then((i) => i.expoRunAndroid),\n start: () => import('../src/start/index.js').then((i) => i.expoStart),\n prebuild: () => import('../src/prebuild/index.js').then((i) => i.expoPrebuild),\n config: () => import('../src/config/index.js').then((i) => i.expoConfig),\n export: () => import('../src/export/index.js').then((i) => i.expoExport),\n 'export:web': () => import('../src/export/web/index.js').then((i) => i.expoExportWeb),\n 'export:embed': () => import('../src/export/embed/index.js').then((i) => i.expoExportEmbed),\n\n // Auxiliary commands\n install: () => import('../src/install/index.js').then((i) => i.expoInstall),\n add: () => import('../src/install/index.js').then((i) => i.expoInstall),\n customize: () => import('../src/customize/index.js').then((i) => i.expoCustomize),\n lint: () => import('../src/lint/index.js').then((i) => i.expoLint),\n\n // Auth\n login: () => import('../src/login/index.js').then((i) => i.expoLogin),\n logout: () => import('../src/logout/index.js').then((i) => i.expoLogout),\n register: () => import('../src/register/index.js').then((i) => i.expoRegister),\n whoami: () => import('../src/whoami/index.js').then((i) => i.expoWhoami),\n};\n\nconst args = arg(\n {\n // Types\n '--version': Boolean,\n '--help': Boolean,\n // NOTE(EvanBacon): This is here to silence warnings from processes that\n // expect the global expo-cli.\n '--non-interactive': Boolean,\n\n // Aliases\n '-v': '--version',\n '-h': '--help',\n },\n {\n permissive: true,\n }\n);\n\nif (args['--version']) {\n // Version is added in the build script.\n console.log(process.env.__EXPO_VERSION);\n process.exit(0);\n}\n\nif (args['--non-interactive']) {\n console.warn(chalk.yellow` {bold --non-interactive} is not supported, use {bold $CI=1} instead`);\n}\n\n// Check if we are running `npx expo <subcommand>` or `npx expo`\nconst isSubcommand = Boolean(commands[args._[0]]);\n\n// Handle `--help` flag\nif (!isSubcommand && args['--help']) {\n const {\n login,\n logout,\n whoami,\n register,\n start,\n install,\n add,\n export: _export,\n config,\n customize,\n prebuild,\n 'run:ios': runIos,\n 'run:android': runAndroid,\n // NOTE(EvanBacon): Don't document this command as it's a temporary\n // workaround until we can use `expo export` for all production bundling.\n // https://github.com/expo/expo/pull/21396/files#r1121025873\n 'export:embed': exportEmbed_unused,\n // The export:web command is deprecated. Hide it from the help prompt.\n 'export:web': exportWeb_unused,\n // Other ignored commands, these are intentially not listed in the `--help` output\n run: _run,\n // NOTE(cedric): Still pending the migration to ESLint's flat config\n lint: _lint,\n // All other commands\n ...others\n } = commands;\n\n console.log(chalk`\n {bold Usage}\n {dim $} npx expo <command>\n\n {bold Commands}\n ${Object.keys({ start, export: _export, ...others }).join(', ')}\n ${Object.keys({ 'run:ios': runIos, 'run:android': runAndroid, prebuild }).join(', ')}\n ${Object.keys({ install, customize, config }).join(', ')}\n {dim ${Object.keys({ login, logout, whoami, register }).join(', ')}}\n\n {bold Options}\n --version, -v Version number\n --help, -h Usage info\n\n For more info run a command with the {bold --help} flag\n {dim $} npx expo start --help\n`);\n\n process.exit(0);\n}\n\n// NOTE(EvanBacon): Squat some directory names to help with migration,\n// users can still use folders named \"send\" or \"eject\" by using the fully qualified `npx expo start ./send`.\nif (!isSubcommand) {\n const migrationMap: Record<string, string> = {\n init: 'npx create-expo-app',\n eject: 'npx expo prebuild',\n web: 'npx expo start --web',\n 'start:web': 'npx expo start --web',\n 'build:ios': 'eas build -p ios',\n 'build:android': 'eas build -p android',\n 'client:install:ios': 'npx expo start --ios',\n 'client:install:android': 'npx expo start --android',\n doctor: 'npx expo-doctor',\n upgrade: 'https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/',\n 'customize:web': 'npx expo customize',\n\n publish: 'eas update',\n 'publish:set': 'eas update',\n 'publish:rollback': 'eas update',\n 'publish:history': 'eas update',\n 'publish:details': 'eas update',\n\n 'build:web': 'npx expo export:web',\n\n 'credentials:manager': `eas credentials`,\n 'fetch:ios:certs': `eas credentials`,\n 'fetch:android:keystore': `eas credentials`,\n 'fetch:android:hashes': `eas credentials`,\n 'fetch:android:upload-cert': `eas credentials`,\n 'push:android:upload': `eas credentials`,\n 'push:android:show': `eas credentials`,\n 'push:android:clear': `eas credentials`,\n url: `eas build:list`,\n 'url:ipa': `eas build:list`,\n 'url:apk': `eas build:list`,\n webhooks: `eas webhook`,\n 'webhooks:add': `eas webhook:create`,\n 'webhooks:remove': `eas webhook:delete`,\n 'webhooks:update': `eas webhook:update`,\n\n 'build:status': `eas build:list`,\n 'upload:android': `eas submit -p android`,\n 'upload:ios': `eas submit -p ios`,\n };\n\n // TODO: Log telemetry about invalid command used.\n const subcommand = args._[0];\n if (subcommand in migrationMap) {\n const replacement = migrationMap[subcommand];\n console.log();\n const instruction = subcommand === 'upgrade' ? 'follow this guide' : 'use'\n console.log(\n chalk.yellow` {gray $} {bold expo ${subcommand}} is not supported in the local CLI, please ${instruction} {bold ${replacement}} instead`\n );\n console.log();\n process.exit(1);\n }\n const deprecated = ['send', 'client:ios'];\n if (deprecated.includes(subcommand)) {\n console.log();\n console.log(chalk.yellow` {gray $} {bold expo ${subcommand}} is deprecated`);\n console.log();\n process.exit(1);\n }\n}\n\nconst command = isSubcommand ? args._[0] : defaultCmd;\nconst commandArgs = isSubcommand ? args._.slice(1) : args._;\n\n// Push the help flag to the subcommand args.\nif (args['--help']) {\n commandArgs.push('--help');\n}\n\n// Install exit hooks\nprocess.on('SIGINT', () => process.exit(0));\nprocess.on('SIGTERM', () => process.exit(0));\n\ncommands[command]().then((exec) => {\n exec(commandArgs);\n\n if (!boolish('EXPO_NO_TELEMETRY', false)) {\n // NOTE(EvanBacon): Track some basic telemetry events indicating the command\n // that was run. This can be disabled with the $EXPO_NO_TELEMETRY environment variable.\n // We do this to determine how well deprecations are going before removing a command.\n const { logEventAsync } =\n require('../src/utils/telemetry') as typeof import('../src/utils/telemetry');\n logEventAsync('action', { action: `expo ${command}` });\n }\n});\n"],"names":["boolish","Debug","enable","enabled","process","env","EXPO_DEBUG","defaultCmd","commands","run","then","i","expoRun","expoRunIos","expoRunAndroid","start","expoStart","prebuild","expoPrebuild","config","expoConfig","export","expoExport","expoExportWeb","expoExportEmbed","install","expoInstall","add","customize","expoCustomize","lint","expoLint","login","expoLogin","logout","expoLogout","register","expoRegister","whoami","expoWhoami","args","arg","Boolean","permissive","console","log","__EXPO_VERSION","exit","warn","chalk","yellow","isSubcommand","_","_export","runIos","runAndroid","exportEmbed_unused","exportWeb_unused","_run","_lint","others","Object","keys","join","migrationMap","init","eject","web","doctor","upgrade","publish","url","webhooks","subcommand","replacement","instruction","deprecated","includes","command","commandArgs","slice","push","on","exec","logEventAsync","require","action"],"mappings":"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"}