react-native/.github.flowconfig.android

104 lines
3.0 KiB
Plaintext
Raw Normal View History

[ignore]
; We fork some components by platform
.*/*[.]ios.js
; Ignore templates for 'react-native init'
.*/local-cli/templates/.*
; Ignore the Dangerfile
<PROJECT_ROOT>/bots/dangerfile.js
; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/
; Ignore unexpected extra "@providesModule"
.*/node_modules/.*/node_modules/fbjs/.*
; Ignore duplicate module providers
; For RN Apps installed via npm, "Libraries" folder is inside
; "node_modules/react-native" but in the source repo it is in the root
.*/Libraries/react-native/React.js
; Ignore polyfills
.*/Libraries/polyfills/.*
; Ignore metro
.*/node_modules/metro/.*
; These should not be required directly
; require from fbjs/lib instead: require('fbjs/lib/invariant')
.*/node_modules/invariant/.*
.*/node_modules/warning/.*
[include]
[libs]
Libraries/react-native/react-native-interface.js
flow/
flow-github/
[options]
emoji=true
esproposal.optional_chaining=enable
esproposal.nullish_coalescing=enable
module.system=haste
module.system.haste.use_name_reducers=true
# keep the following in sync with server/haste/hasteImpl.js
# get basename
module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
# strip .js or .js.flow suffix
module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
# strip .android suffix
module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
module.system.haste.paths.blacklist=.*/__tests__/.*
module.system.haste.paths.blacklist=.*/__mocks__/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/Libraries/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/RNTester/.*
module.system.haste.paths.whitelist=<PROJECT_ROOT>/IntegrationTests/.*
module.system.haste.paths.blacklist=<PROJECT_ROOT>/Libraries/Animated/src/polyfills/.*
munge_underscores=true
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*[react_native\\(_android\\)?_oss|react_native\\(_android\\)?_fb][a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*[react_native\\(_android\\)?_oss|react_native\\(_android\\)?_fb][a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
[lints]
all=warn
Check Flow and run basic packager tests using open source RN config Summary: Most of the changes associated with this commit will not be visible on GitHub, as they concern files in the internal Facebook monorepo. The bulk of this change is the addition of a new test that runs on the internal test infrastructure. The actual script used by the test has various references to the internal test infra, but a copy is produced below with some changes that should allow it to run on open source should anyone be interested in testing this outside of Facebook. The test has the main goal of catching common sources of FB-to-GitHub breakages, such as the OSS Flow config falling out of date (we use a different flow config than what is synced out in .flowconfig, and hence internally we rename this file to .github.flowconfig). It also checks that the packager can run on a brand new project, among other things. ``` set -e THIS_DIR=$(pwd) REACT_NATIVE_TEMP_DIR=$(mktemp -d /tmp/react-native-XXXXXXXX) REACT_NATIVE_APP_TEMP_DIR=$(mktemp -d /tmp/react-native-XXXXXXXX) OFFLINE_MIRROR=$(yarn config get yarn-offline-mirror) function describe { printf "\\n\\n>>>>> %s\\n\\n\\n" "$1" } function cleanup { set +e rm -rf "$REACT_NATIVE_TEMP_DIR" rm -rf "$REACT_NATIVE_APP_TEMP_DIR" rm "$OFFLINE_MIRROR/react-native-v1000.0.0.tgz" set -e } trap cleanup EXIT describe "Creating temporary react-native-github clone" cp -R "react-native" "$REACT_NATIVE_TEMP_DIR" pushd "$REACT_NATIVE_TEMP_DIR/react-native" >/dev/null echo yarn-offline-mirror="$OFFLINE_MIRROR" > .npmrc describe "Installing react-native node_modules from offline cache" yarn install --mutex network --offline --frozen-lockfile --ignore-engines --ignore-scripts 2>&1 describe "Running a Flow check" mv .github.flowconfig .flowconfig ./node_modules/.bin/flow check describe "Running a basic packager test" touch .watchmanconfig node local-cli/cli.js bundle --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js describe "Creating package for e2e test" yarn pack REACT_NATIVE_PACKAGE="$(pwd)/react-native-v1000.0.0.tgz" REACT_VERSION=$(node -p -e "require('./package.json').peerDependencies['react']") REACT_NATIVE_HASH=$(shasum "$REACT_NATIVE_PACKAGE" | awk '{print $1;}') REACT_NATIVE_DEPS=$(node -p -e "const deps=require('./package.json').dependencies; ' ' + Object.keys(deps).map(dep => dep + ' \"' + deps[dep] +'\"').join('\n ')") popd >/dev/null describe "Installing temporary RN app" mkdir "$REACT_NATIVE_APP_TEMP_DIR/PackagerTest" pushd "$REACT_NATIVE_APP_TEMP_DIR/PackagerTest" >/dev/null cp "$REACT_NATIVE_PACKAGE" ./ cp "$REACT_NATIVE_PACKAGE" "$OFFLINE_MIRROR" cp "$REACT_NATIVE_TEMP_DIR/react-native/.npmrc" ./ cp "$REACT_NATIVE_TEMP_DIR/react-native/yarn.lock" ./ cat <<LOCKFILE >> yarn.lock react-native@1000.0.0: version "1000.0.0" resolved react-native-v1000.0.0.tgz#$REACT_NATIVE_HASH dependencies: $REACT_NATIVE_DEPS LOCKFILE cat > package.json <<- EndOfFile { "name": "packager-test", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start" }, "dependencies": { "react": "$REACT_VERSION", "react-native": "1000.0.0" } } EndOfFile yarn install --mutex network --offline --frozen-lockfile --ignore-engines --ignore-scripts 2>&1 sed -e s/"HelloWorld"/PackagerTest/g "react-native/local-cli/templates/HelloWorld/app.json" > app.json cp "react-native/local-cli/templates/HelloWorld/_buckconfig" .buckconfig cp "react-native/local-cli/templates/HelloWorld/_flowconfig" .flowconfig cp "react-native/local-cli/templates/HelloWorld/_watchmanconfig" .watchmanconfig cp "react-native/local-cli/templates/HelloWorld/App.js" App.js cp "react-native/local-cli/templates/HelloWorld/index.js" index.js describe "Running a Flow check on a new RN app" flow check describe "Verifying packager can produce JS bundle for a new RN app on both platforms" node ./node_modules/react-native/local-cli/cli.js bundle --platform ios --dev true --entry-file index.js --bundle-output ios-bundle.js test -e ios-bundle.js rm ios-bundle.js node ./node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --entry-file index.js --bundle-output android-bundle.js test -e android-bundle.js rm android-bundle.js popd >/dev/null ``` Reviewed By: arcanis Differential Revision: D9129463 fbshipit-source-id: a91eeaa150ae6623ee67bd758bc8a98bb31e57b8
2018-08-09 23:15:19 +00:00
unnecessary-optional-chain=off
# There is an ESLint rule for this
unclear-type=off
sketchy-null=off
sketchy-null-number=warn
sketchy-null-mixed=warn
# This is noisy for now. We *do* still want to warn on importing types
# from untyped files, which is covered by untyped-type-import
untyped-import=off
[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import
[version]
Check Flow and run basic packager tests using open source RN config Summary: Most of the changes associated with this commit will not be visible on GitHub, as they concern files in the internal Facebook monorepo. The bulk of this change is the addition of a new test that runs on the internal test infrastructure. The actual script used by the test has various references to the internal test infra, but a copy is produced below with some changes that should allow it to run on open source should anyone be interested in testing this outside of Facebook. The test has the main goal of catching common sources of FB-to-GitHub breakages, such as the OSS Flow config falling out of date (we use a different flow config than what is synced out in .flowconfig, and hence internally we rename this file to .github.flowconfig). It also checks that the packager can run on a brand new project, among other things. ``` set -e THIS_DIR=$(pwd) REACT_NATIVE_TEMP_DIR=$(mktemp -d /tmp/react-native-XXXXXXXX) REACT_NATIVE_APP_TEMP_DIR=$(mktemp -d /tmp/react-native-XXXXXXXX) OFFLINE_MIRROR=$(yarn config get yarn-offline-mirror) function describe { printf "\\n\\n>>>>> %s\\n\\n\\n" "$1" } function cleanup { set +e rm -rf "$REACT_NATIVE_TEMP_DIR" rm -rf "$REACT_NATIVE_APP_TEMP_DIR" rm "$OFFLINE_MIRROR/react-native-v1000.0.0.tgz" set -e } trap cleanup EXIT describe "Creating temporary react-native-github clone" cp -R "react-native" "$REACT_NATIVE_TEMP_DIR" pushd "$REACT_NATIVE_TEMP_DIR/react-native" >/dev/null echo yarn-offline-mirror="$OFFLINE_MIRROR" > .npmrc describe "Installing react-native node_modules from offline cache" yarn install --mutex network --offline --frozen-lockfile --ignore-engines --ignore-scripts 2>&1 describe "Running a Flow check" mv .github.flowconfig .flowconfig ./node_modules/.bin/flow check describe "Running a basic packager test" touch .watchmanconfig node local-cli/cli.js bundle --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js describe "Creating package for e2e test" yarn pack REACT_NATIVE_PACKAGE="$(pwd)/react-native-v1000.0.0.tgz" REACT_VERSION=$(node -p -e "require('./package.json').peerDependencies['react']") REACT_NATIVE_HASH=$(shasum "$REACT_NATIVE_PACKAGE" | awk '{print $1;}') REACT_NATIVE_DEPS=$(node -p -e "const deps=require('./package.json').dependencies; ' ' + Object.keys(deps).map(dep => dep + ' \"' + deps[dep] +'\"').join('\n ')") popd >/dev/null describe "Installing temporary RN app" mkdir "$REACT_NATIVE_APP_TEMP_DIR/PackagerTest" pushd "$REACT_NATIVE_APP_TEMP_DIR/PackagerTest" >/dev/null cp "$REACT_NATIVE_PACKAGE" ./ cp "$REACT_NATIVE_PACKAGE" "$OFFLINE_MIRROR" cp "$REACT_NATIVE_TEMP_DIR/react-native/.npmrc" ./ cp "$REACT_NATIVE_TEMP_DIR/react-native/yarn.lock" ./ cat <<LOCKFILE >> yarn.lock react-native@1000.0.0: version "1000.0.0" resolved react-native-v1000.0.0.tgz#$REACT_NATIVE_HASH dependencies: $REACT_NATIVE_DEPS LOCKFILE cat > package.json <<- EndOfFile { "name": "packager-test", "version": "0.0.1", "private": true, "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start" }, "dependencies": { "react": "$REACT_VERSION", "react-native": "1000.0.0" } } EndOfFile yarn install --mutex network --offline --frozen-lockfile --ignore-engines --ignore-scripts 2>&1 sed -e s/"HelloWorld"/PackagerTest/g "react-native/local-cli/templates/HelloWorld/app.json" > app.json cp "react-native/local-cli/templates/HelloWorld/_buckconfig" .buckconfig cp "react-native/local-cli/templates/HelloWorld/_flowconfig" .flowconfig cp "react-native/local-cli/templates/HelloWorld/_watchmanconfig" .watchmanconfig cp "react-native/local-cli/templates/HelloWorld/App.js" App.js cp "react-native/local-cli/templates/HelloWorld/index.js" index.js describe "Running a Flow check on a new RN app" flow check describe "Verifying packager can produce JS bundle for a new RN app on both platforms" node ./node_modules/react-native/local-cli/cli.js bundle --platform ios --dev true --entry-file index.js --bundle-output ios-bundle.js test -e ios-bundle.js rm ios-bundle.js node ./node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --entry-file index.js --bundle-output android-bundle.js test -e android-bundle.js rm android-bundle.js popd >/dev/null ``` Reviewed By: arcanis Differential Revision: D9129463 fbshipit-source-id: a91eeaa150ae6623ee67bd758bc8a98bb31e57b8
2018-08-09 23:15:19 +00:00
^0.78.0