@nrwl/react-native 14.8.7 → 14.9.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.
Files changed (188) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/LICENSE +22 -22
  3. package/README.md +6 -27
  4. package/migrations.json +268 -0
  5. package/package.json +13 -13
  6. package/plugins/metro-resolver.js +16 -5
  7. package/plugins/metro-resolver.js.map +1 -1
  8. package/project.json +5 -35
  9. package/src/executors/build-android/build-android.impl.js +3 -4
  10. package/src/executors/build-android/build-android.impl.js.map +1 -1
  11. package/src/executors/build-android/build-android.impl.ts +4 -4
  12. package/src/executors/build-android/schema.json +4 -1
  13. package/src/executors/bundle/bundle.impl.js +2 -2
  14. package/src/executors/bundle/bundle.impl.js.map +1 -1
  15. package/src/executors/bundle/bundle.impl.ts +4 -3
  16. package/src/executors/bundle/schema.d.ts +1 -1
  17. package/src/executors/bundle/schema.json +5 -1
  18. package/src/executors/ensure-symlink/ensure-symlink.impl.js +1 -1
  19. package/src/executors/ensure-symlink/ensure-symlink.impl.js.map +1 -1
  20. package/src/executors/ensure-symlink/ensure-symlink.impl.ts +2 -1
  21. package/src/executors/ensure-symlink/schema.json +2 -0
  22. package/src/executors/run-android/run-android.impl.js +8 -4
  23. package/src/executors/run-android/run-android.impl.js.map +1 -1
  24. package/src/executors/run-android/run-android.impl.ts +8 -3
  25. package/src/executors/run-android/schema.d.ts +1 -0
  26. package/src/executors/run-android/schema.json +11 -2
  27. package/src/executors/run-ios/run-ios.impl.js +1 -1
  28. package/src/executors/run-ios/run-ios.impl.js.map +1 -1
  29. package/src/executors/run-ios/run-ios.impl.ts +2 -1
  30. package/src/executors/run-ios/schema.json +21 -7
  31. package/src/executors/start/schema.json +4 -1
  32. package/src/executors/start/start.impl.js +2 -2
  33. package/src/executors/start/start.impl.js.map +1 -1
  34. package/src/executors/start/start.impl.ts +3 -2
  35. package/src/executors/storybook/schema.json +2 -0
  36. package/src/executors/storybook/storybook.impl.js +1 -1
  37. package/src/executors/storybook/storybook.impl.js.map +1 -1
  38. package/src/executors/storybook/storybook.impl.ts +2 -1
  39. package/src/executors/sync-deps/schema.json +2 -0
  40. package/src/executors/sync-deps/sync-deps.impl.js +1 -1
  41. package/src/executors/sync-deps/sync-deps.impl.js.map +1 -1
  42. package/src/executors/sync-deps/sync-deps.impl.ts +2 -1
  43. package/src/generators/application/application.d.ts +1 -1
  44. package/src/generators/application/application.js +6 -8
  45. package/src/generators/application/application.js.map +1 -1
  46. package/src/generators/application/application.spec.ts +124 -5
  47. package/src/generators/application/files/app/.ruby-version +1 -0
  48. package/src/generators/application/files/app/Gemfile.template +6 -0
  49. package/src/generators/application/files/app/android/app/build.gradle.template +71 -217
  50. package/src/generators/application/files/app/android/app/src/androidTest/java/com/__lowerCaseName__/DetoxTest.java.template +2 -8
  51. package/src/generators/application/files/app/android/app/src/debug/java/com/__lowerCaseName__/ReactNativeFlipper.java.template +4 -2
  52. package/src/generators/application/files/app/android/app/src/main/AndroidManifest.xml.template +3 -3
  53. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainActivity.java.template +13 -26
  54. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainApplication.java.template +19 -48
  55. package/src/generators/application/files/app/android/app/src/release/java/com/__lowerCaseName__/ReactNativeFlipper.java.template +20 -0
  56. package/src/generators/application/files/app/android/build.gradle.template +13 -36
  57. package/src/generators/application/files/app/android/gradle.properties +4 -0
  58. package/src/generators/application/files/app/android/settings.gradle.template +2 -17
  59. package/src/generators/application/files/app/ios/Podfile.template +21 -5
  60. package/src/generators/application/files/app/ios/__className__/AppDelegate.h +2 -4
  61. package/src/generators/application/files/app/ios/__className__/AppDelegate.mm.template +12 -109
  62. package/src/generators/application/files/app/ios/__className__/Info.plist.template +2 -2
  63. package/src/generators/application/files/app/ios/__className__.xcodeproj/project.pbxproj.template +4 -2
  64. package/src/generators/application/files/app/ios/__className__.xcworkspace/{contents.xcworkspacedata → xcshareddata/contents.xcworkspacedata} +1 -1
  65. package/src/generators/application/files/app/src/app/App.tsx.template +224 -38
  66. package/src/generators/application/files/app/tsconfig.app.json.template +2 -2
  67. package/src/generators/application/files/app/tsconfig.json.template +3 -2
  68. package/src/generators/application/lib/add-detox.js +1 -1
  69. package/src/generators/application/lib/add-detox.js.map +1 -1
  70. package/src/generators/application/lib/add-project.js +2 -8
  71. package/src/generators/application/lib/add-project.js.map +1 -1
  72. package/src/generators/application/lib/create-application-files.js +2 -2
  73. package/src/generators/application/lib/create-application-files.js.map +1 -1
  74. package/src/generators/application/lib/nomalize-options.spec.ts +1 -1
  75. package/src/generators/application/lib/normalize-options.js +1 -1
  76. package/src/generators/application/lib/normalize-options.js.map +1 -1
  77. package/src/generators/application/schema.d.ts +1 -0
  78. package/src/generators/application/schema.json +14 -7
  79. package/src/generators/component/component.js +6 -2
  80. package/src/generators/component/component.js.map +1 -1
  81. package/src/generators/component/component.spec.ts +1 -1
  82. package/src/generators/component/lib/add-import.d.ts +1 -1
  83. package/src/generators/component/lib/add-import.js +7 -3
  84. package/src/generators/component/lib/add-import.js.map +1 -1
  85. package/src/generators/component/schema.json +3 -3
  86. package/src/generators/component-story/component-story.spec.ts +9 -14
  87. package/src/generators/init/init.d.ts +3 -3
  88. package/src/generators/init/init.js +16 -9
  89. package/src/generators/init/init.js.map +1 -1
  90. package/src/generators/init/init.spec.ts +1 -1
  91. package/src/generators/init/lib/gitignore-entries.d.ts +1 -1
  92. package/src/generators/init/lib/gitignore-entries.js +17 -9
  93. package/src/generators/init/lib/gitignore-entries.js.map +1 -1
  94. package/src/generators/init/schema.d.ts +1 -0
  95. package/src/generators/init/schema.json +8 -1
  96. package/src/generators/library/files/lib/tsconfig.json__tmpl__ +1 -1
  97. package/src/generators/library/files/lib/tsconfig.lib.json__tmpl__ +3 -4
  98. package/src/generators/library/library.js +8 -24
  99. package/src/generators/library/library.js.map +1 -1
  100. package/src/generators/library/library.spec.ts +14 -1
  101. package/src/generators/library/schema.d.ts +1 -1
  102. package/src/generators/library/schema.json +14 -10
  103. package/src/generators/stories/stories-app.spec.ts +1 -1
  104. package/src/generators/stories/stories-lib.spec.ts +1 -1
  105. package/src/generators/stories/stories.js +6 -4
  106. package/src/generators/stories/stories.js.map +1 -1
  107. package/src/generators/storybook-configuration/configuration.js +3 -2
  108. package/src/generators/storybook-configuration/configuration.js.map +1 -1
  109. package/src/generators/storybook-configuration/configuration.spec.ts +10 -6
  110. package/src/generators/storybook-configuration/files/app/storybook.ts.template +4 -4
  111. package/src/generators/storybook-configuration/lib/add-resolver-main-fields-to-metro-config.spec.ts +1 -1
  112. package/src/generators/storybook-configuration/lib/create-storybook-files.js +5 -6
  113. package/src/generators/storybook-configuration/lib/create-storybook-files.js.map +1 -1
  114. package/src/generators/storybook-configuration/lib/replace-app-import-with-storybook-toggle.spec.ts +1 -1
  115. package/src/generators/storybook-configuration/schema.json +6 -3
  116. package/src/generators/upgrade-native/schema.json +2 -1
  117. package/src/generators/upgrade-native/upgrade-native.d.ts +5 -1
  118. package/src/generators/upgrade-native/upgrade-native.js +10 -13
  119. package/src/generators/upgrade-native/upgrade-native.js.map +1 -1
  120. package/src/migrations/update-12-10-0/add-react-native-svg-12-10-0.spec.ts +1 -1
  121. package/src/migrations/update-12-5-0/update-jest-for-react-native.js +1 -1
  122. package/src/migrations/update-12-5-0/update-jest-for-react-native.js.map +1 -1
  123. package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.js +2 -2
  124. package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.js.map +1 -1
  125. package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.spec.ts +1 -1
  126. package/src/migrations/update-13-5-0/update-react-native-typing-svg-13-5-0.spec.ts +1 -1
  127. package/src/migrations/update-14-0-0/add-project-root-metro-config-14-0-0.spec.ts +1 -1
  128. package/src/migrations/update-14-0-0/update-entry-file-bundle-14-0-0.spec.ts +1 -1
  129. package/src/migrations/update-14-0-2/change-main-to-class-name-14-0-2.spec.ts +1 -1
  130. package/src/migrations/update-14-2-1/rename-blockList-metro-config.spec.ts +1 -1
  131. package/src/migrations/update-14-5-5/add-exclude-sync-deps.spec.ts +1 -1
  132. package/src/migrations/update-14-5-8/change-searchDir-storybook.spec.ts +1 -1
  133. package/src/migrations/update-14-6-0/remove-jest-transform.js +1 -1
  134. package/src/migrations/update-14-6-0/remove-jest-transform.js.map +1 -1
  135. package/src/migrations/update-14-6-0/remove-jest-transform.spec.ts +1 -1
  136. package/src/migrations/update-15-0-0/add-babel-inputs.d.ts +2 -0
  137. package/src/migrations/update-15-0-0/add-babel-inputs.js +11 -0
  138. package/src/migrations/update-15-0-0/add-babel-inputs.js.map +1 -0
  139. package/src/migrations/update-15-0-0/add-babel-inputs.spec.ts +73 -0
  140. package/src/utils/add-jest.d.ts +1 -1
  141. package/src/utils/add-jest.js +3 -2
  142. package/src/utils/add-jest.js.map +1 -1
  143. package/src/utils/add-linting.d.ts +3 -2
  144. package/src/utils/add-linting.js +16 -17
  145. package/src/utils/add-linting.js.map +1 -1
  146. package/src/utils/add-linting.spec.ts +2 -17
  147. package/src/utils/chmod-android-gradle-files.d.ts +3 -0
  148. package/src/utils/chmod-android-gradle-files.js +24 -0
  149. package/src/utils/chmod-android-gradle-files.js.map +1 -0
  150. package/src/utils/find-all-npm-dependencies.spec.ts +1 -1
  151. package/src/utils/pod-install-task.js +1 -1
  152. package/src/utils/pod-install-task.js.map +1 -1
  153. package/src/utils/versions.d.ts +17 -13
  154. package/src/utils/versions.js +18 -14
  155. package/src/utils/versions.js.map +1 -1
  156. package/src/generators/application/files/app/android/app/_BUCK.template +0 -55
  157. package/src/generators/application/files/app/android/app/build_defs.bzl +0 -19
  158. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/newarchitecture/MainApplicationReactNativeHost.java.template +0 -116
  159. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/newarchitecture/components/MainComponentsRegistry.java.template +0 -36
  160. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java.template +0 -48
  161. package/src/generators/application/files/app/android/app/src/main/jni/CMakeLists.txt.template +0 -6
  162. package/src/generators/application/files/app/android/app/src/main/jni/MainApplicationModuleProvider.cpp +0 -32
  163. package/src/generators/application/files/app/android/app/src/main/jni/MainApplicationModuleProvider.h +0 -16
  164. package/src/generators/application/files/app/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +0 -45
  165. package/src/generators/application/files/app/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h.template +0 -38
  166. package/src/generators/application/files/app/android/app/src/main/jni/MainComponentsRegistry.cpp +0 -65
  167. package/src/generators/application/files/app/android/app/src/main/jni/MainComponentsRegistry.h.template +0 -32
  168. package/src/generators/application/files/app/android/app/src/main/jni/OnLoad.cpp +0 -11
  169. package/src/generators/application/files/app/ios/__className__.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  170. package/src/generators/application/files/app/src/app/icons/blog.svg +0 -1
  171. package/src/generators/application/files/app/src/app/icons/book.svg +0 -1
  172. package/src/generators/application/files/app/src/app/icons/checkmark.svg +0 -1
  173. package/src/generators/application/files/app/src/app/icons/chevron-right.svg +0 -1
  174. package/src/generators/application/files/app/src/app/icons/courses.svg +0 -1
  175. package/src/generators/application/files/app/src/app/icons/github.svg +0 -1
  176. package/src/generators/application/files/app/src/app/icons/heart.svg +0 -1
  177. package/src/generators/application/files/app/src/app/icons/logo.png +0 -0
  178. package/src/generators/application/files/app/src/app/icons/nx-cloud.svg +0 -1
  179. package/src/generators/application/files/app/src/app/icons/pointer.svg +0 -1
  180. package/src/generators/application/files/app/src/app/icons/terminal.svg +0 -1
  181. package/src/generators/application/files/app/src/app/icons/vscode.svg +0 -1
  182. package/src/generators/application/files/app/src/app/icons/youtube.svg +0 -1
  183. package/src/generators/init/lib/init-root-babel-config.d.ts +0 -2
  184. package/src/generators/init/lib/init-root-babel-config.js +0 -20
  185. package/src/generators/init/lib/init-root-babel-config.js.map +0 -1
  186. package/src/utils/chmod-task.d.ts +0 -2
  187. package/src/utils/chmod-task.js +0 -18
  188. package/src/utils/chmod-task.js.map +0 -1
@@ -9,7 +9,7 @@ describe('component', () => {
9
9
 
10
10
  beforeEach(async () => {
11
11
  projectName = 'my-lib';
12
- appTree = createTreeWithEmptyWorkspace();
12
+ appTree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
13
13
  appTree.write('.gitignore', '');
14
14
  await createApp(appTree, 'my-app');
15
15
  await createLib(appTree, projectName);
@@ -1,3 +1,3 @@
1
- import * as ts from 'typescript';
1
+ import type * as ts from 'typescript';
2
2
  import { StringChange } from '@nrwl/devkit';
3
3
  export declare function addImport(source: ts.SourceFile, statement: string): StringChange[];
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addImport = void 0;
4
- const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
5
- const ts = require("typescript");
4
+ const typescript_1 = require("nx/src/utils/typescript");
6
5
  const devkit_1 = require("@nrwl/devkit");
6
+ const ensure_typescript_1 = require("@nrwl/js/src/utils/typescript/ensure-typescript");
7
+ let tsModule;
7
8
  function addImport(source, statement) {
8
- const allImports = (0, typescript_1.findNodes)(source, ts.SyntaxKind.ImportDeclaration);
9
+ if (!tsModule) {
10
+ tsModule = (0, ensure_typescript_1.ensureTypescript)();
11
+ }
12
+ const allImports = (0, typescript_1.findNodes)(source, tsModule.SyntaxKind.ImportDeclaration);
9
13
  if (allImports.length > 0) {
10
14
  const lastImport = allImports[allImports.length - 1];
11
15
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"add-import.js","sourceRoot":"","sources":["../../../../../../../packages/react-native/src/generators/component/lib/add-import.ts"],"names":[],"mappings":";;;AAAA,yEAAqE;AACrE,iCAAiC;AACjC,yCAAwD;AAExD,SAAgB,SAAS,CACvB,MAAqB,EACrB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAA,sBAAS,EAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO;YACL;gBACE,IAAI,EAAE,mBAAU,CAAC,MAAM;gBACvB,KAAK,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC;gBACzB,IAAI,EAAE,KAAK,SAAS,IAAI;aACzB;SACF,CAAC;KACH;SAAM;QACL,OAAO;YACL;gBACE,IAAI,EAAE,mBAAU,CAAC,MAAM;gBACvB,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,KAAK,SAAS,IAAI;aACzB;SACF,CAAC;KACH;AACH,CAAC;AAvBD,8BAuBC"}
1
+ {"version":3,"file":"add-import.js","sourceRoot":"","sources":["../../../../../../../packages/react-native/src/generators/component/lib/add-import.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AAEpD,yCAAwD;AACxD,uFAAmF;AAEnF,IAAI,QAAqC,CAAC;AAC1C,SAAgB,SAAS,CACvB,MAAqB,EACrB,SAAiB;IAEjB,IAAI,CAAC,QAAQ,EAAE;QACb,QAAQ,GAAG,IAAA,oCAAgB,GAAE,CAAC;KAC/B;IACD,MAAM,UAAU,GAAG,IAAA,sBAAS,EAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC5E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO;YACL;gBACE,IAAI,EAAE,mBAAU,CAAC,MAAM;gBACvB,KAAK,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC;gBACzB,IAAI,EAAE,KAAK,SAAS,IAAI;aACzB;SACF,CAAC;KACH;SAAM;QACL,OAAO;YACL;gBACE,IAAI,EAAE,mBAAU,CAAC,MAAM;gBACvB,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,KAAK,SAAS,IAAI;aACzB;SACF,CAAC;KACH;AACH,CAAC;AA1BD,8BA0BC"}
@@ -7,11 +7,11 @@
7
7
  "type": "object",
8
8
  "examples": [
9
9
  {
10
- "command": "nx g component my-component --project=mylib",
10
+ "command": "nx g @nrwl/react-native:component my-component --project=mylib",
11
11
  "description": "Generate a component in the `mylib` library"
12
12
  },
13
13
  {
14
- "command": "nx g component my-component --project=mylib --classComponent",
14
+ "command": "nx g @nrwl/react-native:component my-component --project=mylib --classComponent",
15
15
  "description": "Generate a class component in the `mylib` library"
16
16
  }
17
17
  ],
@@ -47,7 +47,7 @@
47
47
  "directory": {
48
48
  "type": "string",
49
49
  "description": "Create the component under this directory (can be nested).",
50
- "alias": "d"
50
+ "x-priority": "important"
51
51
  },
52
52
  "flat": {
53
53
  "type": "boolean",
@@ -15,7 +15,7 @@ describe('react-native:component-story', () => {
15
15
 
16
16
  describe('default setup', () => {
17
17
  beforeEach(async () => {
18
- appTree = await createTestUILib('test-ui-lib', true);
18
+ appTree = await createTestUILib('test-ui-lib');
19
19
  });
20
20
 
21
21
  describe('when file does not contain a component', () => {
@@ -376,7 +376,7 @@ describe('react-native:component-story', () => {
376
376
 
377
377
  describe('using eslint', () => {
378
378
  beforeEach(async () => {
379
- appTree = await createTestUILib('test-ui-lib', false);
379
+ appTree = await createTestUILib('test-ui-lib');
380
380
  await componentGenerator(appTree, {
381
381
  name: 'test-ui-lib',
382
382
  project: 'test-ui-lib',
@@ -404,16 +404,13 @@ describe('react-native:component-story', () => {
404
404
  });
405
405
  });
406
406
 
407
- export async function createTestUILib(
408
- libName: string,
409
- useEsLint = false
410
- ): Promise<Tree> {
411
- let appTree = createTreeWithEmptyWorkspace();
407
+ export async function createTestUILib(libName: string): Promise<Tree> {
408
+ let appTree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
412
409
  appTree.write('.gitignore', '');
413
410
 
414
411
  await libraryGenerator(appTree, {
415
412
  name: libName,
416
- linter: useEsLint ? Linter.EsLint : Linter.TsLint,
413
+ linter: Linter.EsLint,
417
414
  skipFormat: true,
418
415
  skipTsConfig: false,
419
416
  unitTestRunner: 'jest',
@@ -425,14 +422,12 @@ export async function createTestUILib(
425
422
  export: true,
426
423
  });
427
424
 
428
- if (useEsLint) {
429
- const currentWorkspaceJson = getProjects(appTree);
425
+ const currentWorkspaceJson = getProjects(appTree);
430
426
 
431
- const projectConfig = currentWorkspaceJson.get(libName);
432
- projectConfig.targets.lint.options.linter = 'eslint';
427
+ const projectConfig = currentWorkspaceJson.get(libName);
428
+ projectConfig.targets.lint.options.linter = 'eslint';
433
429
 
434
- updateProjectConfiguration(appTree, libName, projectConfig);
435
- }
430
+ updateProjectConfiguration(appTree, libName, projectConfig);
436
431
 
437
432
  return appTree;
438
433
  }
@@ -1,6 +1,6 @@
1
- import { Tree } from '@nrwl/devkit';
1
+ import { GeneratorCallback, Tree } from '@nrwl/devkit';
2
2
  import { Schema } from './schema';
3
- export declare function reactNativeInitGenerator(host: Tree, schema: Schema): Promise<import("@nrwl/devkit").GeneratorCallback>;
4
- export declare function updateDependencies(host: Tree): import("@nrwl/devkit").GeneratorCallback;
3
+ export declare function reactNativeInitGenerator(host: Tree, schema: Schema): Promise<GeneratorCallback>;
4
+ export declare function updateDependencies(host: Tree): GeneratorCallback;
5
5
  export default reactNativeInitGenerator;
6
6
  export declare const reactNativeInitSchematic: (generatorOptions: Schema) => (tree: any, context: any) => Promise<any>;
@@ -3,39 +3,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reactNativeInitSchematic = exports.updateDependencies = exports.reactNativeInitGenerator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nrwl/devkit");
6
- const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial");
6
+ const add_babel_inputs_1 = require("@nrwl/js/src/utils/add-babel-inputs");
7
7
  const jest_1 = require("@nrwl/jest");
8
8
  const detox_1 = require("@nrwl/detox");
9
9
  const versions_1 = require("@nrwl/react/src/utils/versions");
10
+ const js_1 = require("@nrwl/js");
10
11
  const versions_2 = require("../../utils/versions");
11
12
  const add_git_ignore_entry_1 = require("./lib/add-git-ignore-entry");
12
- const init_root_babel_config_1 = require("./lib/init-root-babel-config");
13
13
  function reactNativeInitGenerator(host, schema) {
14
14
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
15
  (0, add_git_ignore_entry_1.addGitIgnoreEntry)(host);
16
- (0, init_root_babel_config_1.initRootBabelConfig)(host);
17
- const tasks = [moveDependency(host), updateDependencies(host)];
16
+ (0, add_babel_inputs_1.addBabelInputs)(host);
17
+ const tasks = [];
18
+ tasks.push(yield (0, js_1.initGenerator)(host, Object.assign(Object.assign({}, schema), { skipFormat: true })));
19
+ if (!schema.skipPackageJson) {
20
+ const installTask = updateDependencies(host);
21
+ tasks.push(moveDependency(host));
22
+ tasks.push(installTask);
23
+ }
18
24
  if (!schema.unitTestRunner || schema.unitTestRunner === 'jest') {
19
- const jestTask = (0, jest_1.jestInitGenerator)(host, schema);
25
+ const jestTask = yield (0, jest_1.jestInitGenerator)(host, schema);
20
26
  tasks.push(jestTask);
21
27
  }
22
28
  if (!schema.e2eTestRunner || schema.e2eTestRunner === 'detox') {
23
- const detoxTask = yield (0, detox_1.detoxInitGenerator)(host, {});
29
+ const detoxTask = yield (0, detox_1.detoxInitGenerator)(host, Object.assign(Object.assign({}, schema), { skipFormat: true }));
24
30
  tasks.push(detoxTask);
25
31
  }
26
32
  if (!schema.skipFormat) {
27
33
  yield (0, devkit_1.formatFiles)(host);
28
34
  }
29
- return (0, run_tasks_in_serial_1.runTasksInSerial)(...tasks);
35
+ return (0, devkit_1.runTasksInSerial)(...tasks);
30
36
  });
31
37
  }
32
38
  exports.reactNativeInitGenerator = reactNativeInitGenerator;
33
39
  function updateDependencies(host) {
34
40
  const isPnpm = (0, devkit_1.detectPackageManager)(host.root) === 'pnpm';
35
41
  return (0, devkit_1.addDependenciesToPackageJson)(host, {
36
- react: versions_1.reactVersion,
42
+ react: versions_2.reactVersion,
43
+ 'react-dom': versions_2.reactDomVersion,
37
44
  'react-native': versions_2.reactNativeVersion,
38
- }, Object.assign({ '@nrwl/react-native': versions_2.nxVersion, '@types/node': versions_2.typesNodeVersion, '@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, '@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, 'metro-babel-register': versions_2.metroVersion, 'metro-react-native-babel-preset': versions_2.metroVersion, 'metro-react-native-babel-transformer': versions_2.metroVersion, 'react-test-renderer': versions_1.reactTestRendererVersion, 'react-native-svg-transformer': versions_2.reactNativeSvgTransformerVersion, 'react-native-svg': versions_2.reactNativeSvgVersion, 'react-native-config': versions_2.reactNativeConfigVersion, '@react-native-async-storage/async-storage': versions_2.reactNativeAsyncStorageAsyncStorageVersion }, (isPnpm
45
+ }, Object.assign({ '@nrwl/react-native': versions_2.nxVersion, '@types/node': versions_2.typesNodeVersion, '@types/react': versions_2.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, '@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, 'metro-babel-register': versions_2.metroVersion, 'metro-react-native-babel-preset': versions_2.metroVersion, 'metro-react-native-babel-transformer': versions_2.metroVersion, 'react-test-renderer': versions_2.reactTestRendererVersion, 'react-native-svg-transformer': versions_2.reactNativeSvgTransformerVersion, 'react-native-svg': versions_2.reactNativeSvgVersion, 'react-native-config': versions_2.reactNativeConfigVersion, '@react-native-async-storage/async-storage': versions_2.reactNativeAsyncStorageAsyncStorageVersion, '@babel/preset-react': versions_1.babelPresetReactVersion }, (isPnpm
39
46
  ? {
40
47
  'metro-config': versions_2.metroVersion,
41
48
  '@babel/runtime': versions_2.babelRuntimeVersion, // @babel/runtime is used by react-native-svg
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/generators/init/init.ts"],"names":[],"mappings":";;;;AAAA,yCAOsB;AAEtB,2FAAqF;AACrF,qCAA+C;AAC/C,uCAAiD;AACjD,6DAIwC;AAExC,mDAiB8B;AAE9B,qEAA+D;AAC/D,yEAAmE;AAEnE,SAAsB,wBAAwB,CAAC,IAAU,EAAE,MAAc;;QACvE,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,MAAM,CAAC,CAAC;YACjD,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;AArBD,4DAqBC;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,aAAa,EAAE,2BAAgB,EAC/B,cAAc,EAAE,4BAAiB,EACjC,qBAAqB,EAAE,kCAAuB,EAC9C,6BAA6B,EAAE,kCAAuB,EACtD,8CAA8C,EAC5C,yCAA8B,EAChC,0CAA0C,EAAE,qCAA0B,EACtE,+BAA+B,EAAE,2CAAgC,EACjE,8BAA8B,EAAE,0CAA+B,EAC/D,mBAAmB,EAAE,iCAAsB,EAC3C,KAAK,EAAE,uBAAY,EACnB,gBAAgB,EAAE,uBAAY,EAC9B,sBAAsB,EAAE,uBAAY,EACpC,iCAAiC,EAAE,uBAAY,EAC/C,sCAAsC,EAAE,uBAAY,EACpD,qBAAqB,EAAE,mCAAwB,EAC/C,8BAA8B,EAAE,2CAAgC,EAChE,kBAAkB,EAAE,gCAAqB,EACzC,qBAAqB,EAAE,mCAAwB,EAC/C,2CAA2C,EACzC,qDAA0C,IACzC,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;AAvCD,gDAuCC;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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/generators/init/init.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ describe('init', () => {
7
7
  let tree: Tree;
8
8
 
9
9
  beforeEach(() => {
10
- tree = createTreeWithEmptyWorkspace();
10
+ tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
11
11
  tree.write('.gitignore', '');
12
12
  });
13
13
 
@@ -1 +1 @@
1
- export declare const gitIgnoreEntriesForReactNative = "\n# React Native\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata\n*.xccheckout\n*.moved-aside\nDerivedData\n*.hmap\n*.ipa\n*.xcuserstate\n**/ios/.xcode.env.local\n\n# Android/IntelliJ\n#\nbuild/\n.idea\n.gradle\nlocal.properties\n*.iml\n*.hprof\n\n# node.js\n#\nnode_modules/\nnpm-debug.log\nyarn-error.log\n\n# BUCK\nbuck-out/\n.buckd/\n*.keystore\n!debug.keystore\n\n# fastlane\n#\n# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the\n# screenshots whenever they are needed.\n# For more information about the recommended setup visit:\n# https://docs.fastlane.tools/best-practices/source-control/\n\n**/fastlane/report.xml\n**/fastlane/Preview.html\n**/fastlane/screenshots\n**/fastlane/test_output\n\n# Bundle artifact\n*.jsbundle\n\n# Ruby / CocoaPods\n**/ios/Pods/\n**/vendor/bundle/\n";
1
+ export declare const gitIgnoreEntriesForReactNative = "\n# React Native\n\n# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata\n*.xccheckout\n*.moved-aside\nDerivedData\n*.hmap\n*.ipa\n*.xcuserstate\nios/.xcode.env.local\n\n# Android/IntelliJ\n#\nbuild/\n.idea\n.gradle\nlocal.properties\n*.iml\n*.hprof\n.cxx/\n*.keystore\n!debug.keystore\n\n# node.js\n#\nnode_modules/\nnpm-debug.log\nyarn-error.log\n\n# fastlane\n#\n# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the\n# screenshots whenever they are needed.\n# For more information about the recommended setup visit:\n# https://docs.fastlane.tools/best-practices/source-control/\n\n**/fastlane/report.xml\n**/fastlane/Preview.html\n**/fastlane/screenshots\n**/fastlane/test_output\n\n# Bundle artifact\n*.jsbundle\n\n# Ruby / CocoaPods\n/ios/Pods/\n/vendor/bundle/\n\n# Temporary files created by Metro to check the health of the file watcher\n.metro-health-check*\n\n# testing\n/coverage\n";
@@ -1,9 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.gitIgnoreEntriesForReactNative = void 0;
4
+ // template from https://github.com/facebook/react-native/blob/main/template/_gitignore
4
5
  exports.gitIgnoreEntriesForReactNative = `
5
6
  # React Native
6
7
 
8
+ # OSX
9
+ #
10
+ .DS_Store
11
+
7
12
  # Xcode
8
13
  #
9
14
  build/
@@ -22,7 +27,7 @@ DerivedData
22
27
  *.hmap
23
28
  *.ipa
24
29
  *.xcuserstate
25
- **/ios/.xcode.env.local
30
+ ios/.xcode.env.local
26
31
 
27
32
  # Android/IntelliJ
28
33
  #
@@ -32,6 +37,9 @@ build/
32
37
  local.properties
33
38
  *.iml
34
39
  *.hprof
40
+ .cxx/
41
+ *.keystore
42
+ !debug.keystore
35
43
 
36
44
  # node.js
37
45
  #
@@ -39,12 +47,6 @@ node_modules/
39
47
  npm-debug.log
40
48
  yarn-error.log
41
49
 
42
- # BUCK
43
- buck-out/
44
- \.buckd/
45
- *.keystore
46
- !debug.keystore
47
-
48
50
  # fastlane
49
51
  #
50
52
  # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
@@ -61,7 +63,13 @@ buck-out/
61
63
  *.jsbundle
62
64
 
63
65
  # Ruby / CocoaPods
64
- **/ios/Pods/
65
- **/vendor/bundle/
66
+ /ios/Pods/
67
+ /vendor/bundle/
68
+
69
+ # Temporary files created by Metro to check the health of the file watcher
70
+ .metro-health-check*
71
+
72
+ # testing
73
+ /coverage
66
74
  `;
67
75
  //# sourceMappingURL=gitignore-entries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore-entries.js","sourceRoot":"","sources":["../../../../../../../packages/react-native/src/generators/init/lib/gitignore-entries.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8D7C,CAAC"}
1
+ {"version":3,"file":"gitignore-entries.js","sourceRoot":"","sources":["../../../../../../../packages/react-native/src/generators/init/lib/gitignore-entries.ts"],"names":[],"mappings":";;;AAAA,uFAAuF;AAC1E,QAAA,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqE7C,CAAC"}
@@ -2,5 +2,6 @@ export interface Schema {
2
2
  unitTestRunner?: 'jest' | 'none';
3
3
  skipFormat?: boolean;
4
4
  e2eTestRunner?: 'detox' | 'none';
5
+ skipPackageJson?: boolean; //default is false
5
6
  js?: boolean;
6
7
  }
@@ -15,7 +15,8 @@
15
15
  "skipFormat": {
16
16
  "description": "Skip formatting files.",
17
17
  "type": "boolean",
18
- "default": false
18
+ "default": false,
19
+ "x-priority": "internal"
19
20
  },
20
21
  "e2eTestRunner": {
21
22
  "description": "Adds the specified E2E test runner.",
@@ -27,6 +28,12 @@
27
28
  "type": "boolean",
28
29
  "default": false,
29
30
  "description": "Use JavaScript instead of TypeScript"
31
+ },
32
+ "skipPackageJson": {
33
+ "description": "Do not add dependencies to `package.json`.",
34
+ "type": "boolean",
35
+ "default": false,
36
+ "x-priority": "internal"
30
37
  }
31
38
  },
32
39
  "required": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "extends": "<%= rootTsConfigPath %>",
3
3
  "compilerOptions": {
4
- "jsx": "react-jsx",
4
+ "jsx": "react-native",
5
5
  "allowJs": true,
6
6
  "esModuleInterop": true,
7
7
  "allowSyntheticDefaultImports": true
@@ -2,9 +2,8 @@
2
2
  "extends": "./tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "outDir": "<%= offsetFromRoot %>dist/out-tsc",
5
- "types": ["node"],
6
- "jsx": "react-native"
5
+ "types": ["node"]
7
6
  },
8
- "exclude": ["jest.config.ts", "**/*.spec.ts", "**/*.spec.tsx", "test-setup.ts"],
9
- "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"]
7
+ "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.spec.tsx", "test-setup.ts"],
8
+ "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"]
10
9
  }
@@ -3,35 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reactNativeLibrarySchematic = exports.reactNativeLibraryGenerator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nrwl/devkit");
6
- const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial");
6
+ const js_1 = require("@nrwl/js");
7
7
  const init_1 = require("../init/init");
8
8
  const add_linting_1 = require("../../utils/add-linting");
9
9
  const add_jest_1 = require("../../utils/add-jest");
10
10
  const normalize_options_1 = require("./lib/normalize-options");
11
- const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
12
11
  function reactNativeLibraryGenerator(host, schema) {
13
12
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
13
  const options = (0, normalize_options_1.normalizeOptions)(host, schema);
15
14
  if (options.publishable === true && !schema.importPath) {
16
15
  throw new Error(`For publishable libs you have to provide a proper "--importPath" which needs to be a valid npm package name (e.g. my-awesome-lib or @myorg/my-lib)`);
17
16
  }
17
+ const initTask = yield (0, init_1.default)(host, Object.assign(Object.assign({}, options), { skipFormat: true, e2eTestRunner: 'none' }));
18
18
  addProject(host, options);
19
19
  createFiles(host, options);
20
- const initTask = yield (0, init_1.default)(host, Object.assign(Object.assign({}, options), { skipFormat: true, e2eTestRunner: 'none' }));
21
20
  const lintTask = yield (0, add_linting_1.addLinting)(host, Object.assign(Object.assign({}, options), { projectName: options.name, tsConfigPaths: [
22
21
  (0, devkit_1.joinPathFragments)(options.projectRoot, 'tsconfig.lib.json'),
23
22
  ] }));
24
- if (!options.skipTsConfig) {
25
- updateBaseTsConfig(host, options);
26
- }
27
- const jestTask = yield (0, add_jest_1.addJest)(host, options.unitTestRunner, options.name, options.projectRoot, options.js);
23
+ const jestTask = yield (0, add_jest_1.addJest)(host, options.unitTestRunner, options.name, options.projectRoot, options.js, options.skipPackageJson);
28
24
  if (options.publishable || options.buildable) {
29
25
  updateLibPackageNpmScope(host, options);
30
26
  }
27
+ if (!options.skipTsConfig) {
28
+ (0, js_1.updateRootTsConfig)(host, Object.assign(Object.assign({}, options), { js: false }));
29
+ }
31
30
  if (!options.skipFormat) {
32
31
  yield (0, devkit_1.formatFiles)(host);
33
32
  }
34
- return (0, run_tasks_in_serial_1.runTasksInSerial)(initTask, lintTask, jestTask);
33
+ return (0, devkit_1.runTasksInSerial)(initTask, lintTask, jestTask);
35
34
  });
36
35
  }
37
36
  exports.reactNativeLibraryGenerator = reactNativeLibraryGenerator;
@@ -76,23 +75,8 @@ function updateTsConfig(tree, options) {
76
75
  return json;
77
76
  });
78
77
  }
79
- function updateBaseTsConfig(host, options) {
80
- (0, devkit_1.updateJson)(host, (0, typescript_1.getRootTsConfigPathInTree)(host), (json) => {
81
- const c = json.compilerOptions;
82
- c.paths = c.paths || {};
83
- delete c.paths[options.name];
84
- if (c.paths[options.importPath]) {
85
- throw new Error(`You already have a library using the import path "${options.importPath}". Make sure to specify a unique one.`);
86
- }
87
- const { libsDir } = (0, devkit_1.getWorkspaceLayout)(host);
88
- c.paths[options.importPath] = [
89
- maybeJs(options, (0, devkit_1.joinPathFragments)(libsDir, `${options.projectDirectory}/src/index.ts`)),
90
- ];
91
- return json;
92
- });
93
- }
94
78
  function createFiles(host, options) {
95
- (0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, './files/lib'), options.projectRoot, Object.assign(Object.assign(Object.assign({}, options), (0, devkit_1.names)(options.name)), { tmpl: '', offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot), rootTsConfigPath: (0, typescript_1.getRelativePathToRootTsConfig)(host, options.projectRoot) }));
79
+ (0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, './files/lib'), options.projectRoot, Object.assign(Object.assign(Object.assign({}, options), (0, devkit_1.names)(options.name)), { tmpl: '', offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot), rootTsConfigPath: (0, js_1.getRelativePathToRootTsConfig)(host, options.projectRoot) }));
96
80
  if (!options.publishable && !options.buildable) {
97
81
  host.delete(`${options.projectRoot}/package.json`);
98
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/generators/library/library.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/generators/library/library.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ describe('lib', () => {
22
22
  };
23
23
 
24
24
  beforeEach(() => {
25
- appTree = createTreeWithEmptyWorkspace();
25
+ appTree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
26
26
  appTree.write('.gitignore', '');
27
27
  });
28
28
 
@@ -381,4 +381,17 @@ describe('lib', () => {
381
381
  ).not.toBeDefined();
382
382
  });
383
383
  });
384
+
385
+ describe('--skipPackageJson', () => {
386
+ it('should not add or update dependencies when true', async () => {
387
+ const packageJsonBefore = appTree.read('package.json', 'utf-8');
388
+
389
+ await libraryGenerator(appTree, {
390
+ ...defaultSchema,
391
+ skipPackageJson: true,
392
+ });
393
+
394
+ expect(appTree.read('package.json', 'utf-8')).toEqual(packageJsonBefore);
395
+ });
396
+ });
384
397
  });
@@ -16,7 +16,7 @@ export interface Schema {
16
16
  buildable?: boolean;
17
17
  importPath?: string;
18
18
  js?: boolean;
19
- globalCss?: boolean;
20
19
  strict?: boolean;
21
20
  setParserOptionsProject?: boolean;
21
+ skipPackageJson?: boolean; //default is false
22
22
  }
@@ -7,7 +7,7 @@
7
7
  "type": "object",
8
8
  "examples": [
9
9
  {
10
- "command": "nx g lib mylib --directory=myapp",
10
+ "command": "nx g @nrwl/react-native:lib mylib --directory=myapp",
11
11
  "description": "Generate `libs/myapp/mylib`"
12
12
  }
13
13
  ],
@@ -25,12 +25,13 @@
25
25
  "directory": {
26
26
  "type": "string",
27
27
  "description": "A directory where the lib is placed.",
28
- "alias": "d"
28
+ "alias": "dir",
29
+ "x-priority": "important"
29
30
  },
30
31
  "linter": {
31
32
  "description": "The tool to use for running lint checks.",
32
33
  "type": "string",
33
- "enum": ["eslint", "tslint"],
34
+ "enum": ["eslint"],
34
35
  "default": "eslint"
35
36
  },
36
37
  "unitTestRunner": {
@@ -47,12 +48,14 @@
47
48
  "skipFormat": {
48
49
  "description": "Skip formatting files.",
49
50
  "type": "boolean",
50
- "default": false
51
+ "default": false,
52
+ "x-priority": "internal"
51
53
  },
52
54
  "skipTsConfig": {
53
55
  "type": "boolean",
54
56
  "default": false,
55
- "description": "Do not update `tsconfig.json` for development experience."
57
+ "description": "Do not update `tsconfig.json` for development experience.",
58
+ "x-priority": "internal"
56
59
  },
57
60
  "pascalCaseFiles": {
58
61
  "type": "boolean",
@@ -78,11 +81,6 @@
78
81
  "description": "Generate JavaScript files rather than TypeScript files.",
79
82
  "default": false
80
83
  },
81
- "globalCss": {
82
- "type": "boolean",
83
- "description": "When `true`, the stylesheet is generated using global CSS instead of CSS modules (e.g. file is `*.css` rather than `*.module.css`).",
84
- "default": false
85
- },
86
84
  "strict": {
87
85
  "type": "boolean",
88
86
  "description": "Whether to enable tsconfig strict mode or not.",
@@ -92,6 +90,12 @@
92
90
  "type": "boolean",
93
91
  "description": "Whether or not to configure the ESLint `parserOptions.project` option. We do not do this by default for lint performance reasons.",
94
92
  "default": false
93
+ },
94
+ "skipPackageJson": {
95
+ "description": "Do not add dependencies to `package.json`.",
96
+ "type": "boolean",
97
+ "default": false,
98
+ "x-priority": "internal"
95
99
  }
96
100
  },
97
101
  "required": ["name"]
@@ -130,7 +130,7 @@ describe('react:stories for applications', () => {
130
130
  });
131
131
 
132
132
  export async function createTestUIApp(libName: string): Promise<Tree> {
133
- let appTree = createTreeWithEmptyWorkspace();
133
+ let appTree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
134
134
  appTree.write('.gitignore', '');
135
135
 
136
136
  await applicationGenerator(appTree, {
@@ -90,7 +90,7 @@ describe('react-native:stories for libraries', () => {
90
90
  });
91
91
 
92
92
  export async function createTestUILib(libName: string): Promise<Tree> {
93
- let appTree = createTreeWithEmptyWorkspace();
93
+ let appTree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
94
94
  appTree.write('.gitignore', '');
95
95
 
96
96
  await libraryGenerator(appTree, {
@@ -6,14 +6,16 @@ const devkit_1 = require("@nrwl/devkit");
6
6
  const path_1 = require("path");
7
7
  const component_story_1 = require("../component-story/component-story");
8
8
  const stories_1 = require("@nrwl/react/src/generators/stories/stories");
9
- const utilities_1 = require("@nrwl/storybook/src/utils/utilities");
10
9
  const minimatch = require("minimatch");
10
+ const versions_1 = require("../../utils/versions");
11
11
  function createAllStories(tree, projectName, ignorePaths) {
12
12
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ (0, devkit_1.ensurePackage)('@nrwl/storybook', versions_1.nxVersion);
14
+ const { isTheFileAStory } = yield Promise.resolve().then(() => require('@nrwl/storybook/src/utils/utilities'));
13
15
  const projects = (0, devkit_1.getProjects)(tree);
14
16
  const projectConfiguration = projects.get(projectName);
15
- const { sourceRoot, root } = projectConfiguration;
16
- const projectPath = (0, stories_1.projectRootPath)(projectConfiguration);
17
+ const { sourceRoot } = projectConfiguration;
18
+ const projectPath = yield (0, stories_1.projectRootPath)(tree, projectConfiguration);
17
19
  let componentPaths = [];
18
20
  (0, devkit_1.visitNotIgnoredFiles)(tree, projectPath, (path) => {
19
21
  if (ignorePaths === null || ignorePaths === void 0 ? void 0 : ignorePaths.some((pattern) => minimatch(path, pattern)))
@@ -22,7 +24,7 @@ function createAllStories(tree, projectName, ignorePaths) {
22
24
  (path.endsWith('.js') && !path.endsWith('.spec.js')) ||
23
25
  (path.endsWith('.jsx') && !path.endsWith('.spec.jsx'))) {
24
26
  // Check if file is NOT a story (either ts/tsx or js/jsx)
25
- if (!(0, utilities_1.isTheFileAStory)(tree, path)) {
27
+ if (!isTheFileAStory(tree, path)) {
26
28
  // Since the file is not a story
27
29
  // Let's see if the .stories.* file exists
28
30
  const ext = path.slice(path.lastIndexOf('.'));
@@ -1 +1 @@
1
- {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/generators/stories/stories.ts"],"names":[],"mappings":";;;;AAAA,yCAKsB;AACtB,+BAA4B;AAC5B,wEAAyE;AAEzE,wEAGoD;AACpD,mEAAsE;AACtE,uCAAwC;AAExC,SAAsB,gBAAgB,CACpC,IAAU,EACV,WAAmB,EACnB,WAAsB;;QAEtB,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QACnC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEvD,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC;QAClD,MAAM,WAAW,GAAG,IAAA,yBAAe,EAAC,oBAAoB,CAAC,CAAC;QAE1D,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,IAAA,6BAAoB,EAAC,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/C,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAAE,OAAO;YAErE,IACE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACtD,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACpD,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EACtD;gBACA,yDAAyD;gBACzD,IAAI,CAAC,IAAA,2BAAe,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE;oBAChC,gCAAgC;oBAChC,0CAA0C;oBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC9C,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC;oBAExD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;wBAC3B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC3B;iBACF;aACF;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAO,aAAa,EAAE,EAAE;YACzC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAExE,IAAI,CAAC,IAAA,sCAA4B,EAAC,IAAI,EAAE,aAAa,CAAC,EAAE;gBACtD,OAAO;aACR;YAED,MAAM,IAAA,yBAAuB,EAAC,IAAI,EAAE;gBAClC,aAAa,EAAE,cAAc;gBAC7B,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;QACL,CAAC,CAAA,CAAC,CACH,CAAC;IACJ,CAAC;CAAA;AAhDD,4CAgDC;AAED,SAAsB,gBAAgB,CACpC,IAAU,EACV,MAA8B;;QAE9B,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;CAAA;AALD,4CAKC;AAED,kBAAe,gBAAgB,CAAC;AACnB,QAAA,gBAAgB,GAAG,IAAA,2BAAkB,EAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/generators/stories/stories.ts"],"names":[],"mappings":";;;;AAAA,yCAMsB;AACtB,+BAA4B;AAC5B,wEAAyE;AAEzE,wEAGoD;AACpD,uCAAwC;AACxC,mDAAiD;AAEjD,SAAsB,gBAAgB,CACpC,IAAU,EACV,WAAmB,EACnB,WAAsB;;QAEtB,IAAA,sBAAa,EAAC,iBAAiB,EAAE,oBAAS,CAAC,CAAC;QAC5C,MAAM,EAAE,eAAe,EAAE,GAAG,2CAC1B,qCAAqC,EACtC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QACnC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEvD,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,CAAC;QAC5C,MAAM,WAAW,GAAG,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAEtE,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,IAAA,6BAAoB,EAAC,IAAI,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/C,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAAE,OAAO;YAErE,IACE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACtD,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACpD,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EACtD;gBACA,yDAAyD;gBACzD,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;oBAChC,gCAAgC;oBAChC,0CAA0C;oBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC9C,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC;oBAExD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;wBAC3B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC3B;iBACF;aACF;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,CAAO,aAAa,EAAE,EAAE;YACzC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,IAAA,WAAI,EAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAExE,IAAI,CAAC,IAAA,sCAA4B,EAAC,IAAI,EAAE,aAAa,CAAC,EAAE;gBACtD,OAAO;aACR;YAED,MAAM,IAAA,yBAAuB,EAAC,IAAI,EAAE;gBAClC,aAAa,EAAE,cAAc;gBAC7B,OAAO,EAAE,WAAW;aACrB,CAAC,CAAC;QACL,CAAC,CAAA,CAAC,CACH,CAAC;IACJ,CAAC;CAAA;AArDD,4CAqDC;AAED,SAAsB,gBAAgB,CACpC,IAAU,EACV,MAA8B;;QAE9B,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACnE,CAAC;CAAA;AALD,4CAKC;AAED,kBAAe,gBAAgB,CAAC;AACnB,QAAA,gBAAgB,GAAG,IAAA,2BAAkB,EAAC,gBAAgB,CAAC,CAAC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.storybookConfigurationSchematic = exports.storybookConfigurationGenerator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nrwl/devkit");
6
- const storybook_1 = require("@nrwl/storybook");
6
+ const versions_1 = require("../../utils/versions");
7
7
  const stories_1 = require("../stories/stories");
8
8
  const add_resolver_main_fields_to_metro_config_1 = require("./lib/add-resolver-main-fields-to-metro-config");
9
9
  const create_storybook_files_1 = require("./lib/create-storybook-files");
@@ -18,7 +18,8 @@ function generateStories(host, schema) {
18
18
  }
19
19
  function storybookConfigurationGenerator(host, schema) {
20
20
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
21
- const installTask = yield (0, storybook_1.configurationGenerator)(host, {
21
+ const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nrwl/storybook', versions_1.nxVersion);
22
+ const installTask = yield configurationGenerator(host, {
22
23
  name: schema.name,
23
24
  uiFramework: '@storybook/react-native',
24
25
  configureCypress: false,