@nrwl/react-native 13.4.5-beta.4 → 13.4.5-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/migrations.json +6 -0
- package/package.json +7 -7
- package/src/generators/init/init.js +10 -8
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/init/init.spec.ts +31 -0
- package/src/generators/init/lib/init-root-babel-config.d.ts +2 -0
- package/src/generators/init/lib/init-root-babel-config.js +14 -0
- package/src/generators/init/lib/init-root-babel-config.js.map +1 -0
- package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.d.ts +2 -0
- package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.js +26 -0
- package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.js.map +1 -0
- package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.spec.ts +48 -0
- package/src/utils/versions.js +1 -1
package/migrations.json
CHANGED
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
"cli": "nx",
|
|
18
18
|
"description": "Update typing for svg in react native",
|
|
19
19
|
"factory": "./src/migrations/update-13-5-0/update-react-native-typing-svg-13-5-0"
|
|
20
|
+
},
|
|
21
|
+
"add-babel-config-root-13-5-0": {
|
|
22
|
+
"version": "13.5.0-beta.0",
|
|
23
|
+
"cli": "nx",
|
|
24
|
+
"description": "Add babel.config.json at root for react native workspace if it does not exist",
|
|
25
|
+
"factory": "./src/migrations/update-13-5-0/add-babel-config-root-13-5-0"
|
|
20
26
|
}
|
|
21
27
|
},
|
|
22
28
|
"packageJsonUpdates": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nrwl/react-native",
|
|
3
|
-
"version": "13.4.5-beta.
|
|
3
|
+
"version": "13.4.5-beta.5",
|
|
4
4
|
"description": "React Native Plugin for Nx",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Monorepo",
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
"main": "index.js",
|
|
25
25
|
"types": "index.d.ts",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@nrwl/detox": "13.4.5-beta.
|
|
28
|
-
"@nrwl/devkit": "13.4.5-beta.
|
|
29
|
-
"@nrwl/jest": "13.4.5-beta.
|
|
30
|
-
"@nrwl/linter": "13.4.5-beta.
|
|
31
|
-
"@nrwl/react": "13.4.5-beta.
|
|
32
|
-
"@nrwl/workspace": "13.4.5-beta.
|
|
27
|
+
"@nrwl/detox": "13.4.5-beta.5",
|
|
28
|
+
"@nrwl/devkit": "13.4.5-beta.5",
|
|
29
|
+
"@nrwl/jest": "13.4.5-beta.5",
|
|
30
|
+
"@nrwl/linter": "13.4.5-beta.5",
|
|
31
|
+
"@nrwl/react": "13.4.5-beta.5",
|
|
32
|
+
"@nrwl/workspace": "13.4.5-beta.5",
|
|
33
33
|
"chalk": "^4.1.0",
|
|
34
34
|
"enhanced-resolve": "^5.8.3",
|
|
35
35
|
"fs-extra": "^9.1.0",
|
|
@@ -4,16 +4,18 @@ exports.reactNativeInitSchematic = exports.updateDependencies = exports.reactNat
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const set_default_collection_1 = require("@nrwl/workspace/src/utilities/set-default-collection");
|
|
6
6
|
const devkit_1 = require("@nrwl/devkit");
|
|
7
|
-
const versions_1 = require("../../utils/versions");
|
|
8
7
|
const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial");
|
|
9
|
-
const add_git_ignore_entry_1 = require("./lib/add-git-ignore-entry");
|
|
10
8
|
const jest_1 = require("@nrwl/jest");
|
|
11
9
|
const detox_1 = require("@nrwl/detox");
|
|
12
|
-
const
|
|
10
|
+
const versions_1 = require("@nrwl/react/src/utils/versions");
|
|
11
|
+
const versions_2 = require("../../utils/versions");
|
|
12
|
+
const add_git_ignore_entry_1 = require("./lib/add-git-ignore-entry");
|
|
13
|
+
const init_root_babel_config_1 = require("./lib/init-root-babel-config");
|
|
13
14
|
function reactNativeInitGenerator(host, schema) {
|
|
14
15
|
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
15
16
|
(0, set_default_collection_1.setDefaultCollection)(host, '@nrwl/react-native');
|
|
16
17
|
(0, add_git_ignore_entry_1.addGitIgnoreEntry)(host);
|
|
18
|
+
(0, init_root_babel_config_1.initRootBabelConfig)(host);
|
|
17
19
|
const tasks = [moveDependency(host), updateDependencies(host)];
|
|
18
20
|
if (!schema.unitTestRunner || schema.unitTestRunner === 'jest') {
|
|
19
21
|
const jestTask = (0, jest_1.jestInitGenerator)(host, {});
|
|
@@ -33,12 +35,12 @@ exports.reactNativeInitGenerator = reactNativeInitGenerator;
|
|
|
33
35
|
function updateDependencies(host) {
|
|
34
36
|
const isPnpm = (0, devkit_1.detectPackageManager)(host.root) === 'pnpm';
|
|
35
37
|
return (0, devkit_1.addDependenciesToPackageJson)(host, {
|
|
36
|
-
react:
|
|
37
|
-
'react-native':
|
|
38
|
-
}, Object.assign({ '@nrwl/react-native':
|
|
38
|
+
react: versions_1.reactVersion,
|
|
39
|
+
'react-native': versions_2.reactNativeVersion,
|
|
40
|
+
}, Object.assign({ '@nrwl/react-native': versions_2.nxVersion, '@types/react': versions_1.typesReactVersion, '@types/react-native': versions_2.typesReactNativeVersion, '@react-native-community/cli': versions_2.reactNativeCommunityCli, '@react-native-community/cli-platform-android': versions_2.reactNativeCommunityCliAndroid, '@react-native-community/cli-platform-ios': versions_2.reactNativeCommunityCliIos, 'metro-react-native-babel-preset': versions_2.metroReactNativeBabelPresetVersion, '@testing-library/react-native': versions_2.testingLibraryReactNativeVersion, '@testing-library/jest-native': versions_2.testingLibraryJestNativeVersion, 'jest-react-native': versions_2.jestReactNativeVersion, metro: versions_2.metroVersion, 'metro-resolver': versions_2.metroVersion, 'react-test-renderer': versions_2.reactTestRendererVersion, 'react-native-svg-transformer': versions_2.reactNativeSvgTransformerVersion, 'react-native-svg': versions_2.reactNativeSvgVersion }, (isPnpm
|
|
39
41
|
? {
|
|
40
|
-
'metro-config':
|
|
41
|
-
'@babel/runtime':
|
|
42
|
+
'metro-config': versions_2.metroVersion,
|
|
43
|
+
'@babel/runtime': versions_2.babelRuntimeVersion, // @babel/runtime is used by react-native-svg
|
|
42
44
|
}
|
|
43
45
|
: {})));
|
|
44
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/generators/init/init.ts"],"names":[],"mappings":";;;;AAAA,iGAA4F;AAC5F,yCAOsB;AAEtB,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/generators/init/init.ts"],"names":[],"mappings":";;;;AAAA,iGAA4F;AAC5F,yCAOsB;AAEtB,2FAAqF;AACrF,qCAA+C;AAC/C,uCAAiD;AACjD,6DAGwC;AAExC,mDAgB8B;AAE9B,qEAA+D;AAC/D,yEAAmE;AAEnE,SAAsB,wBAAwB,CAAC,IAAU,EAAE,MAAc;;QACvE,IAAA,6CAAoB,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACjD,IAAA,wCAAiB,EAAC,IAAI,CAAC,CAAC;QACxB,IAAA,4CAAmB,EAAC,IAAI,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/D,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,KAAK,MAAM,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtB;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,KAAK,OAAO,EAAE;YAC7D,MAAM,SAAS,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvB;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACtB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,IAAA,sCAAgB,EAAC,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;CAAA;AAtBD,4DAsBC;AAED,SAAgB,kBAAkB,CAAC,IAAU;IAC3C,MAAM,MAAM,GAAG,IAAA,6BAAoB,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;IAC1D,OAAO,IAAA,qCAA4B,EACjC,IAAI,EACJ;QACE,KAAK,EAAE,uBAAY;QACnB,cAAc,EAAE,6BAAkB;KACnC,kBAEC,oBAAoB,EAAE,oBAAS,EAC/B,cAAc,EAAE,4BAAiB,EACjC,qBAAqB,EAAE,kCAAuB,EAC9C,6BAA6B,EAAE,kCAAuB,EACtD,8CAA8C,EAC5C,yCAA8B,EAChC,0CAA0C,EAAE,qCAA0B,EACtE,iCAAiC,EAAE,6CAAkC,EACrE,+BAA+B,EAAE,2CAAgC,EACjE,8BAA8B,EAAE,0CAA+B,EAC/D,mBAAmB,EAAE,iCAAsB,EAC3C,KAAK,EAAE,uBAAY,EACnB,gBAAgB,EAAE,uBAAY,EAC9B,qBAAqB,EAAE,mCAAwB,EAC/C,8BAA8B,EAAE,2CAAgC,EAChE,kBAAkB,EAAE,gCAAqB,IACtC,CAAC,MAAM;QACR,CAAC,CAAC;YACE,cAAc,EAAE,uBAAY;YAC5B,gBAAgB,EAAE,8BAAmB,EAAE,6CAA6C;SACrF;QACH,CAAC,CAAC,EAAE,CAAC,EAEV,CAAC;AACJ,CAAC;AAjCD,gDAiCC;AAED,SAAS,cAAc,CAAC,IAAU;IAChC,OAAO,IAAA,0CAAiC,EAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,kBAAe,wBAAwB,CAAC;AAC3B,QAAA,wBAAwB,GAAG,IAAA,2BAAkB,EACxD,wBAAwB,CACzB,CAAC"}
|
|
@@ -56,4 +56,35 @@ describe('init', () => {
|
|
|
56
56
|
expect(cli.defaultCollection).toEqual('@nrwl/react');
|
|
57
57
|
});
|
|
58
58
|
});
|
|
59
|
+
|
|
60
|
+
describe('babel config', () => {
|
|
61
|
+
it('should create babel config if not present', async () => {
|
|
62
|
+
await reactNativeInitGenerator(tree, {
|
|
63
|
+
unitTestRunner: 'none',
|
|
64
|
+
e2eTestRunner: 'none',
|
|
65
|
+
});
|
|
66
|
+
expect(tree.exists('babel.config.json')).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('should not overwrite existing babel config', async () => {
|
|
70
|
+
tree.write('babel.config.json', '{ "preset": ["preset-awesome"] }');
|
|
71
|
+
|
|
72
|
+
await reactNativeInitGenerator(tree, {
|
|
73
|
+
unitTestRunner: 'none',
|
|
74
|
+
e2eTestRunner: 'none',
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const existing = readJson(tree, 'babel.config.json');
|
|
78
|
+
expect(existing).toEqual({ preset: ['preset-awesome'] });
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it('should not overwrite existing babel config (.js)', async () => {
|
|
82
|
+
tree.write('/babel.config.js', 'module.exports = () => {};');
|
|
83
|
+
await reactNativeInitGenerator(tree, {
|
|
84
|
+
unitTestRunner: 'none',
|
|
85
|
+
e2eTestRunner: 'none',
|
|
86
|
+
});
|
|
87
|
+
expect(tree.exists('babel.config.json')).toBe(false);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
59
90
|
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initRootBabelConfig = void 0;
|
|
4
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
5
|
+
function initRootBabelConfig(tree) {
|
|
6
|
+
if (tree.exists('/babel.config.json') || tree.exists('/babel.config.js')) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
(0, devkit_1.writeJson)(tree, '/babel.config.json', {
|
|
10
|
+
babelrcRoots: ['*'], // Make sure .babelrc files other than root can be loaded in a monorepo
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
exports.initRootBabelConfig = initRootBabelConfig;
|
|
14
|
+
//# sourceMappingURL=init-root-babel-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-root-babel-config.js","sourceRoot":"","sources":["../../../../../../../packages/react-native/src/generators/init/lib/init-root-babel-config.ts"],"names":[],"mappings":";;;AAAA,yCAA+C;AAE/C,SAAgB,mBAAmB,CAAC,IAAU;IAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;QACxE,OAAO;KACR;IAED,IAAA,kBAAS,EAAC,IAAI,EAAE,oBAAoB,EAAE;QACpC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,uEAAuE;KAC7F,CAAC,CAAC;AACL,CAAC;AARD,kDAQC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
5
|
+
const init_root_babel_config_1 = require("../../generators/init/lib/init-root-babel-config");
|
|
6
|
+
function update(tree) {
|
|
7
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
8
|
+
const projects = (0, devkit_1.getProjects)(tree);
|
|
9
|
+
if (tree.exists('/babel.config.json') || tree.exists('/babel.config.js')) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
let hasReactNaiveProject = false;
|
|
13
|
+
projects.forEach((project) => {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
if (hasReactNaiveProject)
|
|
16
|
+
return;
|
|
17
|
+
hasReactNaiveProject =
|
|
18
|
+
((_b = (_a = project.targets) === null || _a === void 0 ? void 0 : _a.start) === null || _b === void 0 ? void 0 : _b.executor) === '@nrwl/react-native:start';
|
|
19
|
+
});
|
|
20
|
+
if (hasReactNaiveProject) {
|
|
21
|
+
(0, init_root_babel_config_1.initRootBabelConfig)(tree);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exports.default = update;
|
|
26
|
+
//# sourceMappingURL=add-babel-config-root-13-5-0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-babel-config-root-13-5-0.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AAEjD,6FAAuF;AAEvF,SAA8B,MAAM,CAAC,IAAU;;QAC7C,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;YACxE,OAAO;SACR;QAED,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;;YAC3B,IAAI,oBAAoB;gBAAE,OAAO;YACjC,oBAAoB;gBAClB,CAAA,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,0CAAE,QAAQ,MAAK,0BAA0B,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,oBAAoB,EAAE;YACxB,IAAA,4CAAmB,EAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC;CAAA;AAjBD,yBAiBC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { addProjectConfiguration, readJson, Tree } from '@nrwl/devkit';
|
|
2
|
+
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
|
3
|
+
import update from './add-babel-config-root-13-5-0';
|
|
4
|
+
|
|
5
|
+
describe('Add react-native-svg to dev dependencies', () => {
|
|
6
|
+
let tree: Tree;
|
|
7
|
+
|
|
8
|
+
beforeEach(async () => {
|
|
9
|
+
tree = createTreeWithEmptyWorkspace();
|
|
10
|
+
addProjectConfiguration(tree, 'products', {
|
|
11
|
+
root: 'apps/products',
|
|
12
|
+
sourceRoot: 'apps/products/src',
|
|
13
|
+
targets: {
|
|
14
|
+
start: {
|
|
15
|
+
executor: '@nrwl/react-native:start',
|
|
16
|
+
options: {
|
|
17
|
+
port: 8081,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
test: {
|
|
21
|
+
executor: '@nrwl/jest:jest',
|
|
22
|
+
options: {
|
|
23
|
+
jestConfig: 'apps/products/jest.config.js',
|
|
24
|
+
passWithNoTests: true,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it(`should add babel.config.json at root`, async () => {
|
|
32
|
+
await update(tree);
|
|
33
|
+
|
|
34
|
+
const babelConfigJson = readJson(tree, 'babel.config.json');
|
|
35
|
+
expect(babelConfigJson).toEqual({
|
|
36
|
+
babelrcRoots: ['*'],
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it(`should not change babel.config.json if it already exists`, async () => {
|
|
41
|
+
tree.write('babel.config.json', '{}');
|
|
42
|
+
|
|
43
|
+
await update(tree);
|
|
44
|
+
|
|
45
|
+
const babelConfigJson = readJson(tree, 'babel.config.json');
|
|
46
|
+
expect(babelConfigJson).toEqual({});
|
|
47
|
+
});
|
|
48
|
+
});
|
package/src/utils/versions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.babelRuntimeVersion = exports.reactNativeSvgVersion = exports.reactNativeSvgTransformerVersion = exports.reactTestRendererVersion = exports.jestReactNativeVersion = exports.testingLibraryJestNativeVersion = exports.testingLibraryReactNativeVersion = exports.metroReactNativeBabelPresetVersion = exports.reactNativeCommunityCliAndroid = exports.reactNativeCommunityCliIos = exports.reactNativeCommunityCli = exports.metroVersion = exports.typesReactNativeVersion = exports.reactNativeVersion = exports.nxVersion = void 0;
|
|
4
|
-
exports.nxVersion = '13.4.5-beta.
|
|
4
|
+
exports.nxVersion = '13.4.5-beta.5';
|
|
5
5
|
exports.reactNativeVersion = '0.66.4';
|
|
6
6
|
exports.typesReactNativeVersion = '0.66.11';
|
|
7
7
|
exports.metroVersion = '0.66.2';
|