diff --git a/.github/workflows/kilo-app-ci.yml b/.github/workflows/kilo-app-ci.yml index 1c0a951080..1bfed09671 100644 --- a/.github/workflows/kilo-app-ci.yml +++ b/.github/workflows/kilo-app-ci.yml @@ -65,6 +65,11 @@ jobs: - name: Typecheck run: pnpm --filter kilo-app run typecheck + # The release preflight is the only other job that evaluates app.config.ts, + # and it runs nightly. Read the config here so a broken import fails the PR. + - name: Read Expo config + run: pnpm --filter kilo-app exec expo config --type public > /dev/null + lint: runs-on: ${{ vars.RUNNER_DEFAULT_LABEL || 'ubuntu-latest' }} timeout-minutes: 15 diff --git a/apps/mobile/app.config.ts b/apps/mobile/app.config.ts index 22988dad73..fcf03d8964 100644 --- a/apps/mobile/app.config.ts +++ b/apps/mobile/app.config.ts @@ -1,6 +1,6 @@ import type { ExpoConfig } from 'expo/config'; import { ENV_KEYS, OPTIONAL_ENV_KEYS } from './src/lib/env-keys'; -import { SUPPORTED_LANGUAGES } from './src/i18n/languages'; +import { SUPPORTED_LANGUAGES } from './src/i18n/languages.ts'; import { SENTRY_NATIVE_OPTIONS } from './src/lib/sentry-dsn'; import { UNIVERSAL_LINK_PATH_PATTERNS } from './src/lib/universal-link-paths'; import { diff --git a/apps/mobile/tsconfig.json b/apps/mobile/tsconfig.json index 87c03988c8..57579343b5 100644 --- a/apps/mobile/tsconfig.json +++ b/apps/mobile/tsconfig.json @@ -2,6 +2,9 @@ "extends": "expo/tsconfig.base", "compilerOptions": { "strict": true, + // app.config.ts imports src/i18n/languages.ts with its extension: the Expo + // config loader resolves require('./x.ts') but not the extensionless form. + "allowImportingTsExtensions": true, "noUncheckedIndexedAccess": true, "paths": { "@/*": ["./src/*"],