Skip to content

Instantly share code, notes, and snippets.

@wcastand
Last active July 31, 2025 22:30
Show Gist options
  • Select an option

  • Save wcastand/05d475df0f7ed9bf852657eef24d344c to your computer and use it in GitHub Desktop.

Select an option

Save wcastand/05d475df0f7ed9bf852657eef24d344c to your computer and use it in GitHub Desktop.
const { wrapWithReanimatedMetroConfig } = require("react-native-reanimated/metro-config")
const { getDatadogExpoConfig } = require("@datadog/mobile-react-native/metro")
const config = getDatadogExpoConfig(__dirname, {
annotateReactComponents: true,
isCSSEnabled: true,
})
config.transformer.babelTransformerPath = require.resolve("@lingui/metro-transformer/expo")
config.resolver.assetExts.push("svg")
config.resolver.sourceExts.push("mjs")
config.resolver.sourceExts.push("po")
config.resolver.sourceExts.push("pot")
config.resolver.unstable_enablePackageExports = true
config.resolver.resolveRequest = (context, moduleImport, platform) => {
switch (moduleImport) {
case "@lingui/core":
case "@lingui/react":
return { filePath: require.resolve(moduleImport), type: "sourceFile" }
default:
return context.resolveRequest(context, moduleImport, platform)
}
}
module.exports = wrapWithReanimatedMetroConfig(config)
{
"name": "mobile-app",
"version": "0.1.0",
"license": "UNLICENSED",
"private": true,
"main": "index.ts",
"scripts": {
"test": "jest --watch --changedSince=origin/main",
"test-debug": "jest -o --watch",
"test-ci": "jest",
"update-snapshots": "jest -u",
"type-check": "./scripts/check-graphql.sh",
"ci": "biome ci .",
"lint": "biome check .",
"format": "biome format . --write",
"android": "expo run:android",
"ios": "expo run:ios",
"start": "expo start",
"inspectBundle": "EXPO_UNSTABLE_ATLAS=true expo start -c",
"prebuild": "expo prebuild",
"eas": "bunx eas-cli",
"pull:env": "bunx eas-cli env:pull --environment development",
"doctor": "bunx expo-doctor@latest",
"gql-check": "bun run gql.tada turbo && bun run gql.tada check",
"generate:gql": "graphql-codegen --config codegen.ts && gql-tada generate-output",
"generate:sitemap": "bun run ./scripts/generate-sitemap.ts",
"generate:icon-lib": "bun run ./scripts/generate-icon-lib.ts",
"generate:thumbhash": "bun run ./scripts/generate-thumbhash.ts",
"extract": "lingui extract --locale en",
"eas-build-post-install": "lingui extract-template && bun run build:plugins",
"build:plugins": "npx tsc --project ./plugins/tsconfig.json",
"prepare": "husky"
},
"expo": {
"doctor": {
"reactNativeDirectoryCheck": {
"enabled": false
}
}
},
"dependencies": {
"@babel/plugin-transform-export-namespace-from": "^7.27.1",
"@config-plugins/react-native-blob-util": "^11.0.0",
"@config-plugins/react-native-pdf": "^11.0.0",
"@datadog/mobile-react-native": "^2.10.1",
"@expo-google-fonts/instrument-sans": "^0.4.1",
"@expo/fingerprint": "~0.13.4",
"@expo/react-native-action-sheet": "^4.1.1",
"@expo/vector-icons": "^14.1.0",
"@falcondev-oss/expo-event-source-polyfill": "^2.0.0",
"@formatjs/intl-locale": "^4.2.11",
"@formatjs/intl-pluralrules": "^5.4.4",
"@gorhom/bottom-sheet": "^5",
"@gorhom/portal": "^1.0.14",
"@hookform/resolvers": "^5.2.1",
"@intercom/intercom-react-native": "8.6.0",
"@legendapp/state": "^3.0.0-beta.30",
"@lingui/core": "^5.3.3",
"@lingui/react": "^5.3.3",
"@lottiefiles/dotlottie-react": "^0.12.0",
"@react-native-community/datetimepicker": "8.4.1",
"@react-native-community/netinfo": "11.4.1",
"@react-native-menu/menu": "1.2.3",
"@react-native-vector-icons/lucide": "^12.2.0",
"@react-navigation/drawer": "^7.3.9",
"@react-navigation/elements": "^2.5.2",
"@shopify/react-native-skia": "v2.0.0-next.4",
"@stripe/stripe-react-native": "0.45.0",
"@tamagui/animate-presence": "1.132.15",
"@tamagui/animations-moti": "1.132.15",
"@tamagui/babel-plugin": "1.132.15",
"@tamagui/core": "1.132.15",
"@tamagui/get-button-sized": "1.132.15",
"@tamagui/linear-gradient": "1.132.15",
"@tamagui/lucide-icons": "1.132.15",
"@tamagui/shorthands": "1.132.15",
"@tanstack/react-query": "^5.83.0",
"babel-plugin-react-compiler": "^19.0.0-beta-af1b7da-20250417",
"customerio-expo-plugin": "^2.5.0",
"customerio-reactnative": "4.6.0",
"date-fns": "^4.1.0",
"date-fns-tz": "^3.2.0",
"debounce": "^2.2.0",
"expo": "53.0.20",
"expo-application": "~6.1.5",
"expo-asset": "~11.1.7",
"expo-background-task": "~0.2.8",
"expo-build-properties": "~0.14.8",
"expo-clipboard": "~7.1.5",
"expo-constants": "~17.1.7",
"expo-datadog": "^53.1.0",
"expo-dev-client": "~5.2.4",
"expo-device": "~7.1.4",
"expo-document-picker": "~13.1.6",
"expo-file-system": "~18.1.11",
"expo-font": "~13.3.2",
"expo-haptics": "~14.1.4",
"expo-image": "~2.4.0",
"expo-image-picker": "~16.1.4",
"expo-in-app-updates": "^0.9.0",
"expo-insights": "~0.9.3",
"expo-intent-launcher": "~12.1.5",
"expo-linear-gradient": "~14.1.5",
"expo-linking": "~7.1.7",
"expo-local-authentication": "~16.0.5",
"expo-localization": "~16.1.6",
"expo-navigation-bar": "~4.2.7",
"expo-network": "~7.1.5",
"expo-notifications": "~0.31.4",
"expo-quick-actions": "^5.0.0",
"expo-router": "~5.1.4",
"expo-secure-store": "~14.2.3",
"expo-sharing": "~13.1.5",
"expo-splash-screen": "~0.30.10",
"expo-system-ui": "~5.0.10",
"expo-task-manager": "~13.1.6",
"expo-updates": "~0.28.17",
"expo-web-browser": "~14.2.0",
"gql.tada": "^1.8.12",
"graphql": "^16.11.0",
"ibantools": "4.5.1",
"immer": "10.1.1",
"libphonenumber-js": "1.12.10",
"lottie-ios": "4.5.0",
"lottie-react-native": "7.2.2",
"moti": "^0.30.0",
"object.groupby": "^1.0.3",
"qs": "^6.14.0",
"react": "19.0.0",
"react-compiler-runtime": "^19.1.0-rc.2",
"react-error-boundary": "^6.0.0",
"react-hook-form": "7.61.1",
"react-native": "0.79.5",
"react-native-blob-util": "^0.22.2",
"react-native-date-picker": "5.0.12",
"react-native-edge-to-edge": "1.6.0",
"react-native-fetch-polyfill": "^1.1.3",
"react-native-gesture-handler": "~2.24.0",
"react-native-get-random-values": "~1.11.0",
"react-native-ios-context-menu": "3.1.2",
"react-native-ios-utilities": "5.1.5",
"react-native-keyboard-controller": "^1.18.2",
"react-native-mask-text": "^0.15.0",
"react-native-mmkv": "3.3.0",
"react-native-nitro-modules": "^0.26.4",
"react-native-passkeys": "^0.3.3",
"react-native-pdf": "^6.7.7",
"react-native-reanimated": "~3.17.4",
"react-native-redash": "18.1.3",
"react-native-safe-area-context": "5.4.0",
"react-native-screens": "~4.11.1",
"react-native-sse": "^1.2.1",
"react-native-svg": "15.11.2",
"react-native-webview": "13.13.5",
"react-secure-storage": "^1.3.2",
"rn-emoji-keyboard": "^1.7.0",
"semver": "^7.7.2",
"sonner-native": "^0.21.0",
"storyly-react-native": "4.16.2",
"thumbhash": "^0.1.1",
"victory-native": "^41.17.4",
"wonka": "^6.3.5",
"zeego": "^3.0.6",
"zod": "^4.0.14"
},
"devDependencies": {
"@babel/core": "^7.28.0",
"@biomejs/biome": "^2.1.3",
"@datadog/datadog-ci": "^3.17.0",
"@gql.tada/cli-utils": "^1.7.0",
"@graphql-codegen/add": "^5.0.3",
"@graphql-codegen/cli": "^5.0.7",
"@graphql-codegen/typescript": "^4.1.6",
"@lingui/babel-plugin-lingui-macro": "^5.3.3",
"@lingui/cli": "^5.3.3",
"@lingui/metro-transformer": "^5.3.3",
"@testing-library/react-native": "^13.2.0",
"@total-typescript/ts-reset": "^0.6.1",
"@tsconfig/node22": "^22.0.2",
"@types/jest": "~29.5.14",
"@types/node": "^24.0.12",
"@types/object.groupby": "^1.0.4",
"@types/react": "~19.0.10",
"@types/semver": "^7.7.0",
"babel-loader": "^10.0.0",
"babel-plugin-transform-imports": "^2.0.0",
"babel-plugin-transform-remove-console": "^6.9.4",
"babel-preset-expo": "~13.0.0",
"dotenv": "^17.2.1",
"eas-build-cache-provider": "^16.4.2",
"expo-atlas": "^0.4.0",
"glob": "^11.0.3",
"husky": "^9.1.7",
"image-size": "^2.0.2",
"jest": "~29.7.0",
"jest-expo": "~53.0.9",
"lexical": "^0.33.1",
"react-dom": "19.0.0",
"sharp": "^0.34.3",
"svgo": "^4.0.0",
"ts-morph": "^26.0.0",
"ts-node": "^10.9.2",
"typescript": "~5.8.3"
},
"trustedDependencies": [
"@biomejs/biome",
"@datadog/mobile-react-native",
"@swc/core",
"customerio-expo-plugin",
"customerio-reactnative",
"esbuild",
"react-native-nitro-modules",
"sharp"
],
"overrides": {
"@expo/config-plugins": "~10.1.1"
},
"patchedDependencies": {
"expo-file-system@18.1.11": "patches/expo-file-system@18.1.11.patch",
"react-native-pdf@6.7.7": "patches/react-native-pdf@6.7.7.patch"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment