create-react-native-library 0.48.4 → 0.48.6

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.
@@ -9,28 +9,25 @@ var _fsExtra = _interopRequireDefault(require("fs-extra"));
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  // This is added to the example app's build.gradle file to invoke codegen before every build
11
11
  const GRADLE_INVOKE_CODEGEN_TASK = `
12
- def isNewArchitectureEnabled() {
13
- return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
14
- }
12
+ // Run Codegen during development for the example app.
13
+ tasks.register('invokeLibraryCodegen', Exec) {
14
+ workingDir "$rootDir/../../"
15
+ def isWindows = System.getProperty('os.name').toLowerCase().contains('windows')
15
16
 
16
- if (isNewArchitectureEnabled()) {
17
- // Since our library doesn't invoke codegen automatically we need to do it here.
18
- tasks.register('invokeLibraryCodegen', Exec) {
19
- workingDir "$rootDir/../../"
20
- def isWindows = System.getProperty('os.name').toLowerCase().contains('windows')
17
+ if (isWindows) {
18
+ commandLine 'cmd', '/c', 'npx bob build --target codegen'
19
+ } else {
20
+ commandLine 'sh', '-c', 'npx bob build --target codegen'
21
+ }
22
+ }
21
23
 
22
- if (isWindows) {
23
- commandLine 'cmd', '/c', 'npx bob build --target codegen'
24
- } else {
25
- commandLine 'sh', '-c', 'npx bob build --target codegen'
26
- }
27
- }
28
- preBuild.dependsOn invokeLibraryCodegen
29
- }`;
24
+ preBuild.dependsOn invokeLibraryCodegen
25
+ `;
30
26
 
31
27
  // You need to have the files before calling pod install otherwise they won't be registered in your pod.
32
28
  // So we add a pre_install hook to the podfile that invokes codegen
33
29
  const PODSPEC_INVOKE_CODEGEN_SCRIPT = `
30
+ # Run Codegen during development for the example app.
34
31
  pre_install do |installer|
35
32
  system("cd ../../ && npx bob build --target codegen")
36
33
  end
@@ -1 +1 @@
1
- {"version":3,"file":"addCodegenBuildScript.js","names":["_path","_interopRequireDefault","require","_fsExtra","e","__esModule","default","GRADLE_INVOKE_CODEGEN_TASK","PODSPEC_INVOKE_CODEGEN_SCRIPT","addCodegenBuildScript","libraryPath","appBuildGradlePath","path","join","podfilePath","appBuildGradle","fs","readFile","toString","writeFile","podfile","split","podfilePostInstallIndex","findIndex","line","includes","splice"],"sources":["../../src/exampleApp/addCodegenBuildScript.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\n\n// This is added to the example app's build.gradle file to invoke codegen before every build\nconst GRADLE_INVOKE_CODEGEN_TASK = `\ndef isNewArchitectureEnabled() {\n return rootProject.hasProperty(\"newArchEnabled\") && rootProject.getProperty(\"newArchEnabled\") == \"true\"\n}\n\nif (isNewArchitectureEnabled()) {\n // Since our library doesn't invoke codegen automatically we need to do it here.\n tasks.register('invokeLibraryCodegen', Exec) {\n workingDir \"$rootDir/../../\"\n def isWindows = System.getProperty('os.name').toLowerCase().contains('windows')\n\n if (isWindows) {\n commandLine 'cmd', '/c', 'npx bob build --target codegen'\n } else {\n commandLine 'sh', '-c', 'npx bob build --target codegen'\n }\n }\n preBuild.dependsOn invokeLibraryCodegen\n}`;\n\n// You need to have the files before calling pod install otherwise they won't be registered in your pod.\n// So we add a pre_install hook to the podfile that invokes codegen\nconst PODSPEC_INVOKE_CODEGEN_SCRIPT = `\n pre_install do |installer|\n system(\"cd ../../ && npx bob build --target codegen\")\n end\n`;\n\n/**\n * Codegen isn't invoked for libraries with `includesGeneratedCode` set to `true`.\n * This patches the example app to invoke library codegen on every app build.\n */\nexport async function addCodegenBuildScript(libraryPath: string) {\n const appBuildGradlePath = path.join(\n libraryPath,\n 'example',\n 'android',\n 'app',\n 'build.gradle'\n );\n const podfilePath = path.join(libraryPath, 'example', 'ios', 'Podfile');\n\n // Add a gradle task that runs before every build\n let appBuildGradle = (await fs.readFile(appBuildGradlePath)).toString();\n appBuildGradle += GRADLE_INVOKE_CODEGEN_TASK;\n\n await fs.writeFile(appBuildGradlePath, appBuildGradle);\n\n // Add a preinstall action to the podfile that invokes codegen\n const podfile = (await fs.readFile(podfilePath)).toString().split('\\n');\n const podfilePostInstallIndex = podfile.findIndex((line) =>\n line.includes('post_install do |installer|')\n );\n podfile.splice(podfilePostInstallIndex, 0, PODSPEC_INVOKE_CODEGEN_SCRIPT);\n\n await fs.writeFile(podfilePath, podfile.join('\\n'));\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B;AACA,MAAMG,0BAA0B,GAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,MAAMC,6BAA6B,GAAG;AACtC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACO,eAAeC,qBAAqBA,CAACC,WAAmB,EAAE;EAC/D,MAAMC,kBAAkB,GAAGC,aAAI,CAACC,IAAI,CAClCH,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,EACL,cACF,CAAC;EACD,MAAMI,WAAW,GAAGF,aAAI,CAACC,IAAI,CAACH,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;;EAEvE;EACA,IAAIK,cAAc,GAAG,CAAC,MAAMC,gBAAE,CAACC,QAAQ,CAACN,kBAAkB,CAAC,EAAEO,QAAQ,CAAC,CAAC;EACvEH,cAAc,IAAIR,0BAA0B;EAE5C,MAAMS,gBAAE,CAACG,SAAS,CAACR,kBAAkB,EAAEI,cAAc,CAAC;;EAEtD;EACA,MAAMK,OAAO,GAAG,CAAC,MAAMJ,gBAAE,CAACC,QAAQ,CAACH,WAAW,CAAC,EAAEI,QAAQ,CAAC,CAAC,CAACG,KAAK,CAAC,IAAI,CAAC;EACvE,MAAMC,uBAAuB,GAAGF,OAAO,CAACG,SAAS,CAAEC,IAAI,IACrDA,IAAI,CAACC,QAAQ,CAAC,6BAA6B,CAC7C,CAAC;EACDL,OAAO,CAACM,MAAM,CAACJ,uBAAuB,EAAE,CAAC,EAAEd,6BAA6B,CAAC;EAEzE,MAAMQ,gBAAE,CAACG,SAAS,CAACL,WAAW,EAAEM,OAAO,CAACP,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD","ignoreList":[]}
1
+ {"version":3,"file":"addCodegenBuildScript.js","names":["_path","_interopRequireDefault","require","_fsExtra","e","__esModule","default","GRADLE_INVOKE_CODEGEN_TASK","PODSPEC_INVOKE_CODEGEN_SCRIPT","addCodegenBuildScript","libraryPath","appBuildGradlePath","path","join","podfilePath","appBuildGradle","fs","readFile","toString","writeFile","podfile","split","podfilePostInstallIndex","findIndex","line","includes","splice"],"sources":["../../src/exampleApp/addCodegenBuildScript.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\n\n// This is added to the example app's build.gradle file to invoke codegen before every build\nconst GRADLE_INVOKE_CODEGEN_TASK = `\n// Run Codegen during development for the example app.\ntasks.register('invokeLibraryCodegen', Exec) {\n workingDir \"$rootDir/../../\"\n def isWindows = System.getProperty('os.name').toLowerCase().contains('windows')\n\n if (isWindows) {\n commandLine 'cmd', '/c', 'npx bob build --target codegen'\n } else {\n commandLine 'sh', '-c', 'npx bob build --target codegen'\n }\n}\n\npreBuild.dependsOn invokeLibraryCodegen\n`;\n\n// You need to have the files before calling pod install otherwise they won't be registered in your pod.\n// So we add a pre_install hook to the podfile that invokes codegen\nconst PODSPEC_INVOKE_CODEGEN_SCRIPT = `\n # Run Codegen during development for the example app.\n pre_install do |installer|\n system(\"cd ../../ && npx bob build --target codegen\")\n end\n`;\n\n/**\n * Codegen isn't invoked for libraries with `includesGeneratedCode` set to `true`.\n * This patches the example app to invoke library codegen on every app build.\n */\nexport async function addCodegenBuildScript(libraryPath: string) {\n const appBuildGradlePath = path.join(\n libraryPath,\n 'example',\n 'android',\n 'app',\n 'build.gradle'\n );\n const podfilePath = path.join(libraryPath, 'example', 'ios', 'Podfile');\n\n // Add a gradle task that runs before every build\n let appBuildGradle = (await fs.readFile(appBuildGradlePath)).toString();\n appBuildGradle += GRADLE_INVOKE_CODEGEN_TASK;\n\n await fs.writeFile(appBuildGradlePath, appBuildGradle);\n\n // Add a preinstall action to the podfile that invokes codegen\n const podfile = (await fs.readFile(podfilePath)).toString().split('\\n');\n const podfilePostInstallIndex = podfile.findIndex((line) =>\n line.includes('post_install do |installer|')\n );\n podfile.splice(podfilePostInstallIndex, 0, PODSPEC_INVOKE_CODEGEN_SCRIPT);\n\n await fs.writeFile(podfilePath, podfile.join('\\n'));\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B;AACA,MAAMG,0BAA0B,GAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,MAAMC,6BAA6B,GAAG;AACtC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACO,eAAeC,qBAAqBA,CAACC,WAAmB,EAAE;EAC/D,MAAMC,kBAAkB,GAAGC,aAAI,CAACC,IAAI,CAClCH,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,EACL,cACF,CAAC;EACD,MAAMI,WAAW,GAAGF,aAAI,CAACC,IAAI,CAACH,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC;;EAEvE;EACA,IAAIK,cAAc,GAAG,CAAC,MAAMC,gBAAE,CAACC,QAAQ,CAACN,kBAAkB,CAAC,EAAEO,QAAQ,CAAC,CAAC;EACvEH,cAAc,IAAIR,0BAA0B;EAE5C,MAAMS,gBAAE,CAACG,SAAS,CAACR,kBAAkB,EAAEI,cAAc,CAAC;;EAEtD;EACA,MAAMK,OAAO,GAAG,CAAC,MAAMJ,gBAAE,CAACC,QAAQ,CAACH,WAAW,CAAC,EAAEI,QAAQ,CAAC,CAAC,CAACG,KAAK,CAAC,IAAI,CAAC;EACvE,MAAMC,uBAAuB,GAAGF,OAAO,CAACG,SAAS,CAAEC,IAAI,IACrDA,IAAI,CAACC,QAAQ,CAAC,6BAA6B,CAC7C,CAAC;EACDL,OAAO,CAACM,MAAM,CAACJ,uBAAuB,EAAE,CAAC,EAAEd,6BAA6B,CAAC;EAEzE,MAAMQ,gBAAE,CAACG,SAAS,CAACL,WAAW,EAAEM,OAAO,CAACP,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD","ignoreList":[]}
@@ -172,7 +172,7 @@ async function generateExampleApp({
172
172
  gradleProperties = gradleProperties.replace('#newArchEnabled=true', 'newArchEnabled=true');
173
173
  } else if (gradleProperties.split('\n').includes('newArchEnabled=false')) {
174
174
  gradleProperties = gradleProperties.replace('newArchEnabled=false', 'newArchEnabled=true');
175
- } else {
175
+ } else if (!gradleProperties.split('\n').includes('newArchEnabled=true')) {
176
176
  gradleProperties += '\nnewArchEnabled=true';
177
177
  }
178
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateExampleApp.js","names":["_fsExtra","_interopRequireDefault","require","_path","_https","_spawn","_sortObjectKeys","e","__esModule","default","FILES_TO_DELETE","PACKAGES_TO_REMOVE","PACKAGES_TO_ADD_WEB","generateExampleApp","config","destination","reactNativeVersion","directory","path","join","testAppArgs","project","name","vanillaArgs","package","expoArgs","args","example","spawn","env","process","npm_config_yes","file","fs","remove","pkg","readJSON","slug","jest","scripts","dependencies","devDependencies","test","lint","SCRIPTS_TO_ADD","Object","assign","androidBuild","iosBuild","app","android","ios","bundleIdentifier","writeJSON","spaces","forEach","PACKAGES_TO_ADD_DEV","versions","bob","moduleConfig","packagesToAddNitro","nitroModules","sdkVersion","expo","split","replace","bundledNativeModules","Promise","resolve","reject","https","get","res","data","on","chunk","JSON","parse","entries","version","web","field","sortObjectKeys","gradleProperties","readFile","arch","podfile","writeFile","includes"],"sources":["../../src/exampleApp/generateExampleApp.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport https from 'https';\nimport { spawn } from '../utils/spawn';\nimport sortObjectKeys from '../utils/sortObjectKeys';\nimport type { TemplateConfiguration } from '../template';\n\nconst FILES_TO_DELETE = [\n '__tests__',\n '.buckconfig',\n '.eslintrc.js',\n '.flowconfig',\n '.git',\n '.gitignore',\n '.prettierrc.js',\n 'App.js',\n 'App.tsx',\n 'index.js',\n 'tsconfig.json',\n];\n\nconst PACKAGES_TO_REMOVE = [\n '@react-native/eslint-config',\n '@tsconfig/react-native',\n '@types/jest',\n '@types/react',\n '@types/react-test-renderer',\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'babel-jest',\n 'eslint',\n 'jest',\n 'prettier',\n 'react-test-renderer',\n 'typescript',\n];\n\nconst PACKAGES_TO_ADD_WEB = {\n '@expo/metro-runtime': '~3.2.1',\n 'react-dom': '18.2.0',\n 'react-native-web': '~0.18.10',\n};\n\nexport default async function generateExampleApp({\n config,\n destination,\n reactNativeVersion = 'latest',\n}: {\n config: TemplateConfiguration;\n destination: string;\n reactNativeVersion?: string;\n}) {\n const directory = path.join(destination, 'example');\n\n // `npx --package react-native-test-app@latest init --name ${projectName}Example --destination example --version ${reactNativeVersion}`\n const testAppArgs = [\n '--package',\n `react-native-test-app@latest`,\n 'init',\n '--name',\n `${config.project.name}Example`,\n `--destination`,\n directory,\n ...(reactNativeVersion !== 'latest'\n ? ['--version', reactNativeVersion]\n : []),\n '--platform',\n 'ios',\n '--platform',\n 'android',\n ];\n\n // `npx @react-native-community/cli init <projectName> --directory example --skip-install`\n const vanillaArgs = [\n `@react-native-community/cli`,\n 'init',\n `${config.project.name}Example`,\n '--package-name',\n `${config.project.package}.example`,\n '--directory',\n directory,\n '--version',\n reactNativeVersion,\n '--skip-install',\n '--pm',\n 'npm',\n ];\n\n // `npx create-expo-app example --no-install --template blank`\n const expoArgs = [\n 'create-expo-app@latest',\n directory,\n '--no-install',\n '--template',\n 'blank',\n ];\n\n let args: string[] = [];\n\n switch (config.example) {\n case 'vanilla':\n args = vanillaArgs;\n break;\n case 'test-app':\n args = testAppArgs;\n break;\n case 'expo':\n args = expoArgs;\n break;\n }\n\n await spawn('npx', args, {\n env: { ...process.env, npm_config_yes: 'true' },\n });\n\n // Remove unnecessary files and folders\n for (const file of FILES_TO_DELETE) {\n await fs.remove(path.join(directory, file));\n }\n\n // Patch the example app's package.json\n const pkg = await fs.readJSON(path.join(directory, 'package.json'));\n\n pkg.name = `${config.project.slug}-example`;\n\n // Remove Jest config for now\n delete pkg.jest;\n\n const { scripts, dependencies, devDependencies } = pkg;\n\n delete scripts.test;\n delete scripts.lint;\n\n const SCRIPTS_TO_ADD = {\n 'build:android':\n 'react-native build-android --extra-params \"--no-daemon --console=plain -PreactNativeArchitectures=arm64-v8a\"',\n 'build:ios': `react-native build-ios --scheme ${config.project.name}Example --mode Debug --extra-params \"-sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO\"`,\n };\n\n if (config.example === 'vanilla') {\n Object.assign(scripts, SCRIPTS_TO_ADD);\n } else if (config.example === 'test-app') {\n // `react-native-test-app` doesn't bundle application by default in 'Release' mode and also `bundle` command doesn't create a directory.\n // `mkdist` script should be removed after stable React Native major contains this fix: https://github.com/facebook/react-native/pull/45182.\n\n const androidBuild = [\n 'npm run mkdist',\n 'react-native bundle --entry-file index.js --platform android --dev true --bundle-output dist/main.android.jsbundle --assets-dest dist',\n SCRIPTS_TO_ADD['build:android'],\n ].join(' && ');\n\n const iosBuild = [\n 'npm run mkdist',\n 'react-native bundle --entry-file index.js --platform ios --dev true --bundle-output dist/main.ios.jsbundle --assets-dest dist',\n SCRIPTS_TO_ADD['build:ios'],\n ].join(' && ');\n\n Object.assign(scripts, {\n 'build:android': androidBuild,\n 'build:ios': iosBuild,\n });\n\n const app = await fs.readJSON(path.join(directory, 'app.json'));\n\n app.android = app.android || {};\n app.android.package = `${config.project.package}.example`;\n app.ios = app.ios || {};\n app.ios.bundleIdentifier = `${config.project.package}.example`;\n\n await fs.writeJSON(path.join(directory, 'app.json'), app, {\n spaces: 2,\n });\n }\n\n PACKAGES_TO_REMOVE.forEach((name) => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete devDependencies[name];\n });\n\n const PACKAGES_TO_ADD_DEV = {\n 'react-native-builder-bob': `^${config.versions.bob}`,\n };\n\n if (config.project.moduleConfig === 'nitro-modules') {\n const packagesToAddNitro = {\n 'react-native-nitro-modules': `^${config.versions.nitroModules}`,\n };\n Object.assign(dependencies, packagesToAddNitro);\n }\n\n Object.assign(devDependencies, PACKAGES_TO_ADD_DEV);\n\n if (config.example === 'expo') {\n const sdkVersion = dependencies.expo.split('.')[0].replace(/[^\\d]/, '');\n\n let bundledNativeModules: Record<string, string>;\n\n try {\n bundledNativeModules = await new Promise((resolve, reject) => {\n https\n .get(\n `https://raw.githubusercontent.com/expo/expo/sdk-${sdkVersion}/packages/expo/bundledNativeModules.json`,\n (res) => {\n let data = '';\n\n res.on('data', (chunk) => (data += chunk));\n res.on('end', () => {\n try {\n resolve(JSON.parse(data));\n } catch (e) {\n reject(e);\n }\n });\n }\n )\n .on('error', reject);\n });\n } catch (e) {\n bundledNativeModules = {};\n }\n\n Object.entries(PACKAGES_TO_ADD_WEB).forEach(([name, version]) => {\n dependencies[name] = bundledNativeModules[name] || version;\n });\n\n scripts.web = 'expo start --web';\n\n const app = await fs.readJSON(path.join(directory, 'app.json'));\n\n app.expo.android = app.expo.android || {};\n app.expo.android.package = `${config.project.package}.example`;\n app.expo.ios = app.expo.ios || {};\n app.expo.ios.bundleIdentifier = `${config.project.package}.example`;\n\n await fs.writeJSON(path.join(directory, 'app.json'), app, {\n spaces: 2,\n });\n }\n\n // Sort the deps by name to match behavior of package managers\n // This way the package.json doesn't get updated when installing deps\n for (const field of ['dependencies', 'devDependencies']) {\n if (pkg[field]) {\n pkg[field] = sortObjectKeys(pkg[field]);\n }\n }\n\n await fs.writeJSON(path.join(directory, 'package.json'), pkg, {\n spaces: 2,\n });\n\n if (config.example !== 'expo') {\n let gradleProperties = await fs.readFile(\n path.join(directory, 'android', 'gradle.properties'),\n 'utf8'\n );\n\n // Disable Jetifier.\n // Remove this when the app template is updated.\n gradleProperties = gradleProperties.replace(\n 'android.enableJetifier=true',\n 'android.enableJetifier=false'\n );\n\n // If the library is on new architecture, enable new arch for iOS and Android\n if (config.project.arch === 'new') {\n // iOS\n // Add ENV['RCT_NEW_ARCH_ENABLED'] = 1 on top of example/ios/Podfile\n const podfile = await fs.readFile(\n path.join(directory, 'ios', 'Podfile'),\n 'utf8'\n );\n\n await fs.writeFile(\n path.join(directory, 'ios', 'Podfile'),\n \"ENV['RCT_NEW_ARCH_ENABLED'] = '1'\\n\\n\" + podfile\n );\n\n // Android\n // Make sure newArchEnabled=true is present in android/gradle.properties\n if (gradleProperties.split('\\n').includes('#newArchEnabled=true')) {\n gradleProperties = gradleProperties.replace(\n '#newArchEnabled=true',\n 'newArchEnabled=true'\n );\n } else if (\n gradleProperties.split('\\n').includes('newArchEnabled=false')\n ) {\n gradleProperties = gradleProperties.replace(\n 'newArchEnabled=false',\n 'newArchEnabled=true'\n );\n } else {\n gradleProperties += '\\nnewArchEnabled=true';\n }\n }\n\n await fs.writeFile(\n path.join(directory, 'android', 'gradle.properties'),\n gradleProperties\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"generateExampleApp.js","names":["_fsExtra","_interopRequireDefault","require","_path","_https","_spawn","_sortObjectKeys","e","__esModule","default","FILES_TO_DELETE","PACKAGES_TO_REMOVE","PACKAGES_TO_ADD_WEB","generateExampleApp","config","destination","reactNativeVersion","directory","path","join","testAppArgs","project","name","vanillaArgs","package","expoArgs","args","example","spawn","env","process","npm_config_yes","file","fs","remove","pkg","readJSON","slug","jest","scripts","dependencies","devDependencies","test","lint","SCRIPTS_TO_ADD","Object","assign","androidBuild","iosBuild","app","android","ios","bundleIdentifier","writeJSON","spaces","forEach","PACKAGES_TO_ADD_DEV","versions","bob","moduleConfig","packagesToAddNitro","nitroModules","sdkVersion","expo","split","replace","bundledNativeModules","Promise","resolve","reject","https","get","res","data","on","chunk","JSON","parse","entries","version","web","field","sortObjectKeys","gradleProperties","readFile","arch","podfile","writeFile","includes"],"sources":["../../src/exampleApp/generateExampleApp.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport https from 'https';\nimport { spawn } from '../utils/spawn';\nimport sortObjectKeys from '../utils/sortObjectKeys';\nimport type { TemplateConfiguration } from '../template';\n\nconst FILES_TO_DELETE = [\n '__tests__',\n '.buckconfig',\n '.eslintrc.js',\n '.flowconfig',\n '.git',\n '.gitignore',\n '.prettierrc.js',\n 'App.js',\n 'App.tsx',\n 'index.js',\n 'tsconfig.json',\n];\n\nconst PACKAGES_TO_REMOVE = [\n '@react-native/eslint-config',\n '@tsconfig/react-native',\n '@types/jest',\n '@types/react',\n '@types/react-test-renderer',\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'babel-jest',\n 'eslint',\n 'jest',\n 'prettier',\n 'react-test-renderer',\n 'typescript',\n];\n\nconst PACKAGES_TO_ADD_WEB = {\n '@expo/metro-runtime': '~3.2.1',\n 'react-dom': '18.2.0',\n 'react-native-web': '~0.18.10',\n};\n\nexport default async function generateExampleApp({\n config,\n destination,\n reactNativeVersion = 'latest',\n}: {\n config: TemplateConfiguration;\n destination: string;\n reactNativeVersion?: string;\n}) {\n const directory = path.join(destination, 'example');\n\n // `npx --package react-native-test-app@latest init --name ${projectName}Example --destination example --version ${reactNativeVersion}`\n const testAppArgs = [\n '--package',\n `react-native-test-app@latest`,\n 'init',\n '--name',\n `${config.project.name}Example`,\n `--destination`,\n directory,\n ...(reactNativeVersion !== 'latest'\n ? ['--version', reactNativeVersion]\n : []),\n '--platform',\n 'ios',\n '--platform',\n 'android',\n ];\n\n // `npx @react-native-community/cli init <projectName> --directory example --skip-install`\n const vanillaArgs = [\n `@react-native-community/cli`,\n 'init',\n `${config.project.name}Example`,\n '--package-name',\n `${config.project.package}.example`,\n '--directory',\n directory,\n '--version',\n reactNativeVersion,\n '--skip-install',\n '--pm',\n 'npm',\n ];\n\n // `npx create-expo-app example --no-install --template blank`\n const expoArgs = [\n 'create-expo-app@latest',\n directory,\n '--no-install',\n '--template',\n 'blank',\n ];\n\n let args: string[] = [];\n\n switch (config.example) {\n case 'vanilla':\n args = vanillaArgs;\n break;\n case 'test-app':\n args = testAppArgs;\n break;\n case 'expo':\n args = expoArgs;\n break;\n }\n\n await spawn('npx', args, {\n env: { ...process.env, npm_config_yes: 'true' },\n });\n\n // Remove unnecessary files and folders\n for (const file of FILES_TO_DELETE) {\n await fs.remove(path.join(directory, file));\n }\n\n // Patch the example app's package.json\n const pkg = await fs.readJSON(path.join(directory, 'package.json'));\n\n pkg.name = `${config.project.slug}-example`;\n\n // Remove Jest config for now\n delete pkg.jest;\n\n const { scripts, dependencies, devDependencies } = pkg;\n\n delete scripts.test;\n delete scripts.lint;\n\n const SCRIPTS_TO_ADD = {\n 'build:android':\n 'react-native build-android --extra-params \"--no-daemon --console=plain -PreactNativeArchitectures=arm64-v8a\"',\n 'build:ios': `react-native build-ios --scheme ${config.project.name}Example --mode Debug --extra-params \"-sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO\"`,\n };\n\n if (config.example === 'vanilla') {\n Object.assign(scripts, SCRIPTS_TO_ADD);\n } else if (config.example === 'test-app') {\n // `react-native-test-app` doesn't bundle application by default in 'Release' mode and also `bundle` command doesn't create a directory.\n // `mkdist` script should be removed after stable React Native major contains this fix: https://github.com/facebook/react-native/pull/45182.\n\n const androidBuild = [\n 'npm run mkdist',\n 'react-native bundle --entry-file index.js --platform android --dev true --bundle-output dist/main.android.jsbundle --assets-dest dist',\n SCRIPTS_TO_ADD['build:android'],\n ].join(' && ');\n\n const iosBuild = [\n 'npm run mkdist',\n 'react-native bundle --entry-file index.js --platform ios --dev true --bundle-output dist/main.ios.jsbundle --assets-dest dist',\n SCRIPTS_TO_ADD['build:ios'],\n ].join(' && ');\n\n Object.assign(scripts, {\n 'build:android': androidBuild,\n 'build:ios': iosBuild,\n });\n\n const app = await fs.readJSON(path.join(directory, 'app.json'));\n\n app.android = app.android || {};\n app.android.package = `${config.project.package}.example`;\n app.ios = app.ios || {};\n app.ios.bundleIdentifier = `${config.project.package}.example`;\n\n await fs.writeJSON(path.join(directory, 'app.json'), app, {\n spaces: 2,\n });\n }\n\n PACKAGES_TO_REMOVE.forEach((name) => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete devDependencies[name];\n });\n\n const PACKAGES_TO_ADD_DEV = {\n 'react-native-builder-bob': `^${config.versions.bob}`,\n };\n\n if (config.project.moduleConfig === 'nitro-modules') {\n const packagesToAddNitro = {\n 'react-native-nitro-modules': `^${config.versions.nitroModules}`,\n };\n Object.assign(dependencies, packagesToAddNitro);\n }\n\n Object.assign(devDependencies, PACKAGES_TO_ADD_DEV);\n\n if (config.example === 'expo') {\n const sdkVersion = dependencies.expo.split('.')[0].replace(/[^\\d]/, '');\n\n let bundledNativeModules: Record<string, string>;\n\n try {\n bundledNativeModules = await new Promise((resolve, reject) => {\n https\n .get(\n `https://raw.githubusercontent.com/expo/expo/sdk-${sdkVersion}/packages/expo/bundledNativeModules.json`,\n (res) => {\n let data = '';\n\n res.on('data', (chunk) => (data += chunk));\n res.on('end', () => {\n try {\n resolve(JSON.parse(data));\n } catch (e) {\n reject(e);\n }\n });\n }\n )\n .on('error', reject);\n });\n } catch (e) {\n bundledNativeModules = {};\n }\n\n Object.entries(PACKAGES_TO_ADD_WEB).forEach(([name, version]) => {\n dependencies[name] = bundledNativeModules[name] || version;\n });\n\n scripts.web = 'expo start --web';\n\n const app = await fs.readJSON(path.join(directory, 'app.json'));\n\n app.expo.android = app.expo.android || {};\n app.expo.android.package = `${config.project.package}.example`;\n app.expo.ios = app.expo.ios || {};\n app.expo.ios.bundleIdentifier = `${config.project.package}.example`;\n\n await fs.writeJSON(path.join(directory, 'app.json'), app, {\n spaces: 2,\n });\n }\n\n // Sort the deps by name to match behavior of package managers\n // This way the package.json doesn't get updated when installing deps\n for (const field of ['dependencies', 'devDependencies']) {\n if (pkg[field]) {\n pkg[field] = sortObjectKeys(pkg[field]);\n }\n }\n\n await fs.writeJSON(path.join(directory, 'package.json'), pkg, {\n spaces: 2,\n });\n\n if (config.example !== 'expo') {\n let gradleProperties = await fs.readFile(\n path.join(directory, 'android', 'gradle.properties'),\n 'utf8'\n );\n\n // Disable Jetifier.\n // Remove this when the app template is updated.\n gradleProperties = gradleProperties.replace(\n 'android.enableJetifier=true',\n 'android.enableJetifier=false'\n );\n\n // If the library is on new architecture, enable new arch for iOS and Android\n if (config.project.arch === 'new') {\n // iOS\n // Add ENV['RCT_NEW_ARCH_ENABLED'] = 1 on top of example/ios/Podfile\n const podfile = await fs.readFile(\n path.join(directory, 'ios', 'Podfile'),\n 'utf8'\n );\n\n await fs.writeFile(\n path.join(directory, 'ios', 'Podfile'),\n \"ENV['RCT_NEW_ARCH_ENABLED'] = '1'\\n\\n\" + podfile\n );\n\n // Android\n // Make sure newArchEnabled=true is present in android/gradle.properties\n if (gradleProperties.split('\\n').includes('#newArchEnabled=true')) {\n gradleProperties = gradleProperties.replace(\n '#newArchEnabled=true',\n 'newArchEnabled=true'\n );\n } else if (\n gradleProperties.split('\\n').includes('newArchEnabled=false')\n ) {\n gradleProperties = gradleProperties.replace(\n 'newArchEnabled=false',\n 'newArchEnabled=true'\n );\n } else if (\n !gradleProperties.split('\\n').includes('newArchEnabled=true')\n ) {\n gradleProperties += '\\nnewArchEnabled=true';\n }\n }\n\n await fs.writeFile(\n path.join(directory, 'android', 'gradle.properties'),\n gradleProperties\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-react-native-library",
3
- "version": "0.48.4",
3
+ "version": "0.48.6",
4
4
  "description": "CLI to scaffold React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -65,5 +65,5 @@
65
65
  "@types/validate-npm-package-name": "^3.0.3",
66
66
  "@types/yargs": "^17.0.10"
67
67
  },
68
- "gitHead": "8ff17fc6cdab28a63f1de06b381726e2132e5691"
68
+ "gitHead": "9c0d0df06e65af995d685551835957c3af60d57a"
69
69
  }
@@ -217,8 +217,7 @@
217
217
  [
218
218
  "typescript",
219
219
  {
220
- "project": "tsconfig.build.json",
221
- "esm": true
220
+ "project": "tsconfig.build.json"
222
221
  }
223
222
  ]
224
223
  ]
@@ -11,7 +11,7 @@
11
11
  "jsx": "react-jsx",
12
12
  "lib": ["ESNext"],
13
13
  "module": "ESNext",
14
- "moduleResolution": "Bundler",
14
+ "moduleResolution": "bundler",
15
15
  "noEmit": true,
16
16
  "noFallthroughCasesInSwitch": true,
17
17
  "noImplicitReturns": true,
@@ -22,19 +22,15 @@ def reactNativeArchitectures() {
22
22
  }
23
23
  <% } -%>
24
24
 
25
- def isNewArchitectureEnabled() {
26
- return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
27
- }
28
-
29
25
  apply plugin: "com.android.library"
30
26
  apply plugin: "kotlin-android"
31
27
  <% if (project.moduleConfig === 'nitro-modules') { -%>
32
28
  apply from: '../nitrogen/generated/android/<%- project.package_cpp -%>+autolinking.gradle'
33
29
  <% } -%>
34
30
 
35
- if (isNewArchitectureEnabled()) {
36
- apply plugin: "com.facebook.react"
37
- }
31
+ <% if (project.arch === "new") { -%>
32
+ apply plugin: "com.facebook.react"
33
+ <% } -%>
38
34
 
39
35
  def getExtOrIntegerDefault(name) {
40
36
  return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["<%- project.name -%>_" + name]).toInteger()
@@ -72,9 +68,6 @@ android {
72
68
  defaultConfig {
73
69
  minSdkVersion getExtOrIntegerDefault("minSdkVersion")
74
70
  targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
75
- <% if (project.arch === "new") { -%>
76
- buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
77
- <% } -%>
78
71
  <% if (project.cpp || project.moduleConfig === 'nitro-modules') { -%>
79
72
 
80
73
  externalNativeBuild {
@@ -154,12 +147,10 @@ android {
154
147
 
155
148
  sourceSets {
156
149
  main {
157
- if (isNewArchitectureEnabled()) {
158
- java.srcDirs += [
159
- "generated/java",
160
- "generated/jni"
161
- ]
162
- }
150
+ java.srcDirs += [
151
+ "generated/java",
152
+ "generated/jni"
153
+ ]
163
154
  }
164
155
  }
165
156
  <% } -%>
@@ -181,11 +172,9 @@ dependencies {
181
172
  }
182
173
 
183
174
  <% if (project.moduleConfig === "turbo-modules" || project.viewConfig === "fabric-view") { -%>
184
- if (isNewArchitectureEnabled()) {
185
- react {
186
- jsRootDir = file("../src/")
187
- libraryName = "<%- project.viewConfig !== null ? project.name + 'View' : project.name -%>"
188
- codegenJavaPackageName = "com.<%- project.package -%>"
189
- }
175
+ react {
176
+ jsRootDir = file("../src/")
177
+ libraryName = "<%- project.viewConfig !== null ? project.name + 'View' : project.name -%>"
178
+ codegenJavaPackageName = "com.<%- project.package -%>"
190
179
  }
191
180
  <% } -%>