Skip to content

Commit 33f6b36

Browse files
committed
Make reat-native-graphql-transformer compatible with new RN
1 parent cbaf3f6 commit 33f6b36

4 files changed

Lines changed: 30 additions & 25 deletions

File tree

.prettierrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
22
"printWidth": 100,
3-
"singleQuote": true
3+
"singleQuote": true,
4+
"trailingComma": "all"
45
}

index.js

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
const gqlLoader = require('graphql-tag/loader');
2-
3-
let rnTransform = null;
4-
5-
try {
6-
// handle RN >= 0.47
7-
rnTransform = require('metro-bundler/src/transformer').transform;
8-
} catch (e) {
9-
try {
10-
// handle RN 0.46
11-
rnTransform = require('metro-bundler/build/transformer').transform;
12-
} catch (e2) {
13-
// handle RN <= 0.45
14-
const oldrnTransform = require('react-native/packager/transformer').transform;
15-
rnTransform = {
16-
transform({ src, filename, options }) {
17-
return oldrnTransform.transform(src, filename, options);
18-
},
19-
};
20-
}
2+
const semver = require('semver');
3+
4+
let upstreamTransformer = null;
5+
6+
const reactNativeVersionString = require('react-native/package.json').version;
7+
8+
const reactNativeMinorVersion = semver(reactNativeVersionString).minor;
9+
10+
if (reactNativeMinorVersion >= 52) {
11+
upstreamTransformer = require('metro/src/transformer');
12+
} else if (reactNativeMinorVersion >= 0.47) {
13+
upstreamTransformer = require('metro-bundler/src/transformer');
14+
} else if (reactNativeMinorVersion === 0.46) {
15+
upstreamTransformer = require('metro-bundler/build/transformer');
16+
} else {
17+
// handle RN <= 0.45
18+
const oldUpstreamTransformer = require('react-native/packager/transformer');
19+
upstreamTransformer = {
20+
transform({ src, filename, options }) {
21+
return oldUpstreamTransformer.transform(src, filename, options);
22+
},
23+
};
2124
}
2225

2326
const gqlTransform = gqlLoader.bind({
@@ -36,7 +39,7 @@ function transform(src, filename, options) {
3639
result = gqlTransform(result);
3740
}
3841

39-
const babelCompileResult = rnTransform({
42+
const babelCompileResult = upstreamTransformer({
4043
src: result,
4144
filename,
4245
options,

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "react-native-graphql-transformer",
3-
"version": "0.1.1",
2+
"name": "@bam.tech/react-native-graphql-transformer",
3+
"version": "0.1.2",
44
"description": "Transform GraphQL source files with ReactNative",
55
"main": "index.js",
66
"repository": "git@github.com:bamlab/react-native-graphql-transformer.git",
@@ -16,7 +16,8 @@
1616
"react-native": ">=0.45.0"
1717
},
1818
"dependencies": {
19-
"graphql-tag": "^2.6.0"
19+
"graphql-tag": "^2.6.0",
20+
"semver": "^5.4.1"
2021
},
2122
"devDependencies": {
2223
"all-contributors-cli": "^4.10.0",

yarn.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1392,7 +1392,7 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
13921392
version "5.1.1"
13931393
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
13941394

1395-
"semver@2 || 3 || 4 || 5", semver@^5.3.0:
1395+
"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1:
13961396
version "5.4.1"
13971397
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
13981398

0 commit comments

Comments
 (0)