@nrwl/react-native 14.5.5-beta.0 → 14.6.0-beta.1
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/CHANGELOG.md +1 -1
- package/migrations.json +6 -0
- package/package.json +9 -9
- package/src/executors/storybook/storybook.impl.js +6 -1
- package/src/executors/storybook/storybook.impl.js.map +1 -1
- package/src/executors/storybook/storybook.impl.ts +6 -6
- package/src/executors/sync-deps/schema.d.ts +2 -1
- package/src/executors/sync-deps/schema.json +14 -2
- package/src/executors/sync-deps/sync-deps.impl.d.ts +1 -1
- package/src/executors/sync-deps/sync-deps.impl.js +14 -9
- package/src/executors/sync-deps/sync-deps.impl.js.map +1 -1
- package/src/executors/sync-deps/sync-deps.impl.ts +18 -8
- package/src/migrations/update-14-5-5/add-exclude-sync-deps.d.ts +5 -0
- package/src/migrations/update-14-5-5/add-exclude-sync-deps.js +26 -0
- package/src/migrations/update-14-5-5/add-exclude-sync-deps.js.map +1 -0
- package/src/migrations/update-14-5-5/add-exclude-sync-deps.spec.ts +36 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# [14.6.0-beta.1](https://github.com/nrwl/nx/compare/14.5.4...14.6.0-beta.1) (2022-08-11)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @nrwl/react-native
|
package/migrations.json
CHANGED
|
@@ -47,6 +47,12 @@
|
|
|
47
47
|
"cli": "nx",
|
|
48
48
|
"description": "Rename blacklistRE to blockList in metro.config.js",
|
|
49
49
|
"factory": "./src/migrations/update-14-2-1/rename-blockList-metro-config"
|
|
50
|
+
},
|
|
51
|
+
"add-exclude-sync-deps-14-5-5": {
|
|
52
|
+
"version": "14.5.5-beta.0",
|
|
53
|
+
"cli": "nx",
|
|
54
|
+
"description": "Change include field from string to array for sync-deps target",
|
|
55
|
+
"factory": "./src/migrations/update-14-5-5/add-exclude-sync-deps"
|
|
50
56
|
}
|
|
51
57
|
},
|
|
52
58
|
"packageJsonUpdates": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nrwl/react-native",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.6.0-beta.1",
|
|
4
4
|
"description": "React Native brings React's declarative UI framework to iOS and Android. With React Native, you use native UI controls and have full access to the native platform.\n\nThe Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Detox, and Storybook.\n\n- Scaffolding for creating buildable libraries that can be published to npm.\n\n- Utilities for automatic workspace refactoring.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Monorepo",
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"main": "index.js",
|
|
25
25
|
"types": "index.d.ts",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@nrwl/detox": "14.
|
|
28
|
-
"@nrwl/devkit": "14.
|
|
29
|
-
"@nrwl/jest": "14.
|
|
30
|
-
"@nrwl/linter": "14.
|
|
31
|
-
"@nrwl/react": "14.
|
|
32
|
-
"@nrwl/storybook": "14.
|
|
33
|
-
"@nrwl/workspace": "14.
|
|
27
|
+
"@nrwl/detox": "14.6.0-beta.1",
|
|
28
|
+
"@nrwl/devkit": "14.6.0-beta.1",
|
|
29
|
+
"@nrwl/jest": "14.6.0-beta.1",
|
|
30
|
+
"@nrwl/linter": "14.6.0-beta.1",
|
|
31
|
+
"@nrwl/react": "14.6.0-beta.1",
|
|
32
|
+
"@nrwl/storybook": "14.6.0-beta.1",
|
|
33
|
+
"@nrwl/workspace": "14.6.0-beta.1",
|
|
34
34
|
"chalk": "^4.1.0",
|
|
35
35
|
"enhanced-resolve": "^5.8.3",
|
|
36
36
|
"fs-extra": "^10.1.0",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
},
|
|
51
51
|
"schematics": "./generators.json",
|
|
52
52
|
"typings": "./index.d.ts",
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "918ddf6d4b93849e3925b00f0e95457727cf3972"
|
|
54
54
|
}
|
|
@@ -15,7 +15,12 @@ function reactNatievStorybookExecutor(options, context) {
|
|
|
15
15
|
// add storybook addons to app's package.json
|
|
16
16
|
const packageJsonPath = (0, path_1.join)(context.root, projectRoot, 'package.json');
|
|
17
17
|
if ((0, fileutils_1.fileExists)(packageJsonPath))
|
|
18
|
-
(0, sync_deps_impl_1.displayNewlyAddedDepsMessage)(context.projectName, yield tslib_1.__await((0, sync_deps_impl_1.syncDeps)(context.projectName, projectRoot, context.root,
|
|
18
|
+
(0, sync_deps_impl_1.displayNewlyAddedDepsMessage)(context.projectName, yield tslib_1.__await((0, sync_deps_impl_1.syncDeps)(context.projectName, projectRoot, context.root, [
|
|
19
|
+
'@storybook/addon-ondevice-actions',
|
|
20
|
+
'@storybook/addon-ondevice-backgrounds',
|
|
21
|
+
'@storybook/addon-ondevice-controls',
|
|
22
|
+
'@storybook/addon-ondevice-notes',
|
|
23
|
+
])));
|
|
19
24
|
try {
|
|
20
25
|
yield tslib_1.__await(runCliStorybook(context.root, projectRoot, options));
|
|
21
26
|
yield yield tslib_1.__await({ success: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storybook.impl.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/storybook/storybook.impl.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,yCAAuD;AACvD,uEAAqE;AACrE,+BAA+B;AAG/B,iDAAmD;AACnD,gEAGqC;AAErC,IAAI,YAA0B,CAAC;AAE/B,SAA+B,4BAA4B,CACzD,OAAoC,EACpC,OAAwB;;QAExB,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;QACzE,eAAM,CAAC,IAAI,CACT,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAChB,MAAM,CACP,8IAA8I,CAChJ,CAAC;QAEF,6CAA6C;QAC7C,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACxE,IAAI,IAAA,sBAAU,EAAC,eAAe,CAAC;YAC7B,IAAA,6CAA4B,EAC1B,OAAO,CAAC,WAAW,EACnB,sBAAM,IAAA,yBAAQ,
|
|
1
|
+
{"version":3,"file":"storybook.impl.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/storybook/storybook.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,12 +28,12 @@ export default async function* reactNatievStorybookExecutor(
|
|
|
28
28
|
if (fileExists(packageJsonPath))
|
|
29
29
|
displayNewlyAddedDepsMessage(
|
|
30
30
|
context.projectName,
|
|
31
|
-
await syncDeps(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
'@storybook/addon-ondevice-
|
|
36
|
-
)
|
|
31
|
+
await syncDeps(context.projectName, projectRoot, context.root, [
|
|
32
|
+
'@storybook/addon-ondevice-actions',
|
|
33
|
+
'@storybook/addon-ondevice-backgrounds',
|
|
34
|
+
'@storybook/addon-ondevice-controls',
|
|
35
|
+
'@storybook/addon-ondevice-notes',
|
|
36
|
+
])
|
|
37
37
|
);
|
|
38
38
|
|
|
39
39
|
try {
|
|
@@ -7,8 +7,20 @@
|
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|
|
9
9
|
"include": {
|
|
10
|
-
"type": "
|
|
11
|
-
"
|
|
10
|
+
"type": "array",
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
},
|
|
14
|
+
"default": [],
|
|
15
|
+
"description": "An array of additional npm packages to include."
|
|
16
|
+
},
|
|
17
|
+
"exclude": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
},
|
|
22
|
+
"default": [],
|
|
23
|
+
"description": "An array of npm packages to exclude."
|
|
12
24
|
}
|
|
13
25
|
}
|
|
14
26
|
}
|
|
@@ -4,5 +4,5 @@ export interface ReactNativeSyncDepsOutput {
|
|
|
4
4
|
success: boolean;
|
|
5
5
|
}
|
|
6
6
|
export default function syncDepsExecutor(options: ReactNativeSyncDepsOptions, context: ExecutorContext): AsyncGenerator<ReactNativeSyncDepsOutput>;
|
|
7
|
-
export declare function syncDeps(projectName: string, projectRoot: string, workspaceRoot: string, include?: string): Promise<string[]>;
|
|
7
|
+
export declare function syncDeps(projectName: string, projectRoot: string, workspaceRoot: string, include?: string[], exclude?: string[]): Promise<string[]>;
|
|
8
8
|
export declare function displayNewlyAddedDepsMessage(projectName: string, deps: string[]): void;
|
|
@@ -3,33 +3,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.displayNewlyAddedDepsMessage = exports.syncDeps = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const path_1 = require("path");
|
|
6
|
-
const find_all_npm_dependencies_1 = require("../../utils/find-all-npm-dependencies");
|
|
7
6
|
const chalk = require("chalk");
|
|
8
7
|
const devkit_1 = require("@nrwl/devkit");
|
|
9
|
-
const
|
|
8
|
+
const find_all_npm_dependencies_1 = require("../../utils/find-all-npm-dependencies");
|
|
10
9
|
function syncDepsExecutor(options, context) {
|
|
11
10
|
return tslib_1.__asyncGenerator(this, arguments, function* syncDepsExecutor_1() {
|
|
12
11
|
const projectRoot = context.workspace.projects[context.projectName].root;
|
|
13
|
-
displayNewlyAddedDepsMessage(context.projectName, yield tslib_1.__await(syncDeps(context.projectName, projectRoot, context.root, options.include
|
|
12
|
+
displayNewlyAddedDepsMessage(context.projectName, yield tslib_1.__await(syncDeps(context.projectName, projectRoot, context.root, typeof options.include === 'string'
|
|
13
|
+
? options.include.split(',')
|
|
14
|
+
: options.include, typeof options.exclude === 'string'
|
|
15
|
+
? options.exclude.split(',')
|
|
16
|
+
: options.exclude)));
|
|
14
17
|
yield yield tslib_1.__await({ success: true });
|
|
15
18
|
});
|
|
16
19
|
}
|
|
17
20
|
exports.default = syncDepsExecutor;
|
|
18
|
-
function syncDeps(projectName, projectRoot, workspaceRoot, include) {
|
|
21
|
+
function syncDeps(projectName, projectRoot, workspaceRoot, include = [], exclude = []) {
|
|
19
22
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
const graph = yield (0,
|
|
21
|
-
|
|
23
|
+
const graph = yield (0, devkit_1.createProjectGraphAsync)();
|
|
24
|
+
let npmDeps = (0, find_all_npm_dependencies_1.findAllNpmDependencies)(graph, projectName);
|
|
22
25
|
const packageJsonPath = (0, path_1.join)(workspaceRoot, projectRoot, 'package.json');
|
|
23
26
|
const packageJson = (0, devkit_1.readJsonFile)(packageJsonPath);
|
|
24
27
|
const newDeps = [];
|
|
25
|
-
const includeDeps = include === null || include === void 0 ? void 0 : include.split(',');
|
|
26
28
|
let updated = false;
|
|
27
29
|
if (!packageJson.dependencies) {
|
|
28
30
|
packageJson.dependencies = {};
|
|
29
31
|
updated = true;
|
|
30
32
|
}
|
|
31
|
-
if (
|
|
32
|
-
npmDeps.push(...
|
|
33
|
+
if (include && include.length) {
|
|
34
|
+
npmDeps.push(...include);
|
|
35
|
+
}
|
|
36
|
+
if (exclude && exclude.length) {
|
|
37
|
+
npmDeps = npmDeps.filter((dep) => !exclude.includes(dep));
|
|
33
38
|
}
|
|
34
39
|
npmDeps.forEach((dep) => {
|
|
35
40
|
if (!packageJson.dependencies[dep]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-deps.impl.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/sync-deps/sync-deps.impl.ts"],"names":[],"mappings":";;;;AAAA,+BAA4B;AAC5B
|
|
1
|
+
{"version":3,"file":"sync-deps.impl.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/sync-deps/sync-deps.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { join } from 'path';
|
|
2
|
-
import { findAllNpmDependencies } from '../../utils/find-all-npm-dependencies';
|
|
3
2
|
import * as chalk from 'chalk';
|
|
4
3
|
import {
|
|
5
4
|
ExecutorContext,
|
|
6
5
|
logger,
|
|
7
6
|
readJsonFile,
|
|
8
7
|
writeJsonFile,
|
|
8
|
+
createProjectGraphAsync,
|
|
9
9
|
} from '@nrwl/devkit';
|
|
10
|
+
|
|
11
|
+
import { findAllNpmDependencies } from '../../utils/find-all-npm-dependencies';
|
|
12
|
+
|
|
10
13
|
import { ReactNativeSyncDepsOptions } from './schema';
|
|
11
|
-
import { createProjectGraphAsync } from '@nrwl/devkit';
|
|
12
14
|
|
|
13
15
|
export interface ReactNativeSyncDepsOutput {
|
|
14
16
|
success: boolean;
|
|
@@ -25,7 +27,12 @@ export default async function* syncDepsExecutor(
|
|
|
25
27
|
context.projectName,
|
|
26
28
|
projectRoot,
|
|
27
29
|
context.root,
|
|
28
|
-
options.include
|
|
30
|
+
typeof options.include === 'string'
|
|
31
|
+
? options.include.split(',')
|
|
32
|
+
: options.include,
|
|
33
|
+
typeof options.exclude === 'string'
|
|
34
|
+
? options.exclude.split(',')
|
|
35
|
+
: options.exclude
|
|
29
36
|
)
|
|
30
37
|
);
|
|
31
38
|
|
|
@@ -36,14 +43,14 @@ export async function syncDeps(
|
|
|
36
43
|
projectName: string,
|
|
37
44
|
projectRoot: string,
|
|
38
45
|
workspaceRoot: string,
|
|
39
|
-
include
|
|
46
|
+
include: string[] = [],
|
|
47
|
+
exclude: string[] = []
|
|
40
48
|
): Promise<string[]> {
|
|
41
49
|
const graph = await createProjectGraphAsync();
|
|
42
|
-
|
|
50
|
+
let npmDeps = findAllNpmDependencies(graph, projectName);
|
|
43
51
|
const packageJsonPath = join(workspaceRoot, projectRoot, 'package.json');
|
|
44
52
|
const packageJson = readJsonFile(packageJsonPath);
|
|
45
53
|
const newDeps = [];
|
|
46
|
-
const includeDeps = include?.split(',');
|
|
47
54
|
let updated = false;
|
|
48
55
|
|
|
49
56
|
if (!packageJson.dependencies) {
|
|
@@ -51,8 +58,11 @@ export async function syncDeps(
|
|
|
51
58
|
updated = true;
|
|
52
59
|
}
|
|
53
60
|
|
|
54
|
-
if (
|
|
55
|
-
npmDeps.push(...
|
|
61
|
+
if (include && include.length) {
|
|
62
|
+
npmDeps.push(...include);
|
|
63
|
+
}
|
|
64
|
+
if (exclude && exclude.length) {
|
|
65
|
+
npmDeps = npmDeps.filter((dep) => !exclude.includes(dep));
|
|
56
66
|
}
|
|
57
67
|
|
|
58
68
|
npmDeps.forEach((dep) => {
|
|
@@ -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
|
+
/**
|
|
6
|
+
* This function changes include field from string to array for sync-deps target
|
|
7
|
+
*/
|
|
8
|
+
function update(tree) {
|
|
9
|
+
var _a, _b, _c, _d, _e;
|
|
10
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
11
|
+
const projects = (0, devkit_1.getProjects)(tree);
|
|
12
|
+
for (const [name, config] of projects.entries()) {
|
|
13
|
+
if (((_b = (_a = config.targets) === null || _a === void 0 ? void 0 : _a['sync-deps']) === null || _b === void 0 ? void 0 : _b.executor) !== '@nrwl/react-native:sync-deps')
|
|
14
|
+
continue;
|
|
15
|
+
const include = (_e = (_d = (_c = config.targets) === null || _c === void 0 ? void 0 : _c['sync-deps']) === null || _d === void 0 ? void 0 : _d.options) === null || _e === void 0 ? void 0 : _e.include;
|
|
16
|
+
if (!include || !include.length) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
config.targets['sync-deps'].options.include = include.split(',');
|
|
20
|
+
(0, devkit_1.updateProjectConfiguration)(tree, name, config);
|
|
21
|
+
}
|
|
22
|
+
yield (0, devkit_1.formatFiles)(tree);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exports.default = update;
|
|
26
|
+
//# sourceMappingURL=add-exclude-sync-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-exclude-sync-deps.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/migrations/update-14-5-5/add-exclude-sync-deps.ts"],"names":[],"mappings":";;;AAAA,yCAKsB;AAEtB;;GAEG;AACH,SAA8B,MAAM,CAAC,IAAU;;;QAC7C,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAEnC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;YAC/C,IACE,CAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAG,WAAW,CAAC,0CAAE,QAAQ,MAAK,8BAA8B;gBAE1E,SAAS;YACX,MAAM,OAAO,GAAG,MAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAG,WAAW,CAAC,0CAAE,OAAO,0CAAE,OAAO,CAAC;YAChE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC/B,SAAS;aACV;YACD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjE,IAAA,mCAA0B,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SAChD;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;;CACzB;AAjBD,yBAiBC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { addProjectConfiguration, getProjects, Tree } from '@nrwl/devkit';
|
|
2
|
+
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
|
3
|
+
import update from './add-exclude-sync-deps';
|
|
4
|
+
|
|
5
|
+
describe('add-exclude-sync-deps', () => {
|
|
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
|
+
'sync-deps': {
|
|
15
|
+
executor: '@nrwl/react-native:sync-deps',
|
|
16
|
+
options: {
|
|
17
|
+
include: 'react-native-reanmiated,react-native-screens',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it(`should change include from string to array`, async () => {
|
|
25
|
+
await update(tree);
|
|
26
|
+
|
|
27
|
+
getProjects(tree).forEach((project) => {
|
|
28
|
+
expect(project.targets['sync-deps']).toEqual({
|
|
29
|
+
executor: '@nrwl/react-native:sync-deps',
|
|
30
|
+
options: {
|
|
31
|
+
include: ['react-native-reanmiated', 'react-native-screens'],
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
});
|