create-react-native-library 0.30.1 → 0.31.0
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/lib/utils/generateExampleApp.js +3 -3
- package/lib/utils/generateExampleApp.js.map +1 -1
- package/package.json +2 -2
- package/templates/common/$.nvmrc +1 -1
- package/templates/native-common/android/build.gradle +18 -4
- package/templates/native-common/android/src/main/AndroidManifest.xml +1 -3
- package/templates/native-common/android/src/main/AndroidManifestDeprecated.xml +3 -0
- package/templates/objc-library/ios/{%- project.name %}.mm +6 -12
|
@@ -21,11 +21,11 @@ const PACKAGES_TO_ADD_DEV = {
|
|
|
21
21
|
'babel-plugin-module-resolver': '^5.0.0'
|
|
22
22
|
};
|
|
23
23
|
const PACKAGES_TO_ADD_WEB = {
|
|
24
|
-
'react-dom': '18.
|
|
25
|
-
'react-native-web': '~0.18.
|
|
24
|
+
'react-dom': '18.2.0',
|
|
25
|
+
'react-native-web': '~0.18.10'
|
|
26
26
|
};
|
|
27
27
|
const PACKAGES_TO_ADD_WEB_DEV = {
|
|
28
|
-
'@expo/webpack-config': '^0.
|
|
28
|
+
'@expo/webpack-config': '^18.0.1',
|
|
29
29
|
'babel-loader': '^8.1.0'
|
|
30
30
|
};
|
|
31
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateExampleApp.js","names":["FILES_TO_DELETE","PACKAGES_TO_REMOVE","PACKAGES_TO_ADD_DEV","PACKAGES_TO_ADD_WEB","PACKAGES_TO_ADD_WEB_DEV","generateExampleApp","type","dest","projectName","arch","reactNativeVersion","directory","path","join","args","Promise","resolve","reject","child","spawn","cwd","env","process","npm_config_yes","stderr","setEncoding","on","data","once","code","Error","file","fs","remove","pkg","JSON","parse","readFile","jest","scripts","dependencies","devDependencies","test","lint","pods","forEach","name","Object","assign","sdkVersion","expo","split","replace","bundledNativeModules","https","get","res","chunk","e","entries","version","web","writeFile","stringify","gradleProperties","podfile"],"sources":["../../src/utils/generateExampleApp.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport spawn from 'cross-spawn';\nimport path from 'path';\nimport https from 'https';\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-community/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_DEV = {\n 'babel-plugin-module-resolver': '^5.0.0',\n};\n\nconst PACKAGES_TO_ADD_WEB = {\n 'react-dom': '18.1.0',\n 'react-native-web': '~0.18.9',\n};\n\nconst PACKAGES_TO_ADD_WEB_DEV = {\n '@expo/webpack-config': '^0.17.2',\n 'babel-loader': '^8.1.0',\n};\n\nexport default async function generateExampleApp({\n type,\n dest,\n projectName,\n arch,\n reactNativeVersion = 'latest',\n}: {\n type: 'expo' | 'native';\n dest: string;\n projectName: string;\n arch: 'new' | 'mixed' | 'legacy';\n reactNativeVersion?: string;\n}) {\n const directory = path.join(dest, 'example');\n const args =\n type === 'native'\n ? // `npx react-native init <projectName> --directory example --skip-install`\n [\n 'react-native@latest',\n 'init',\n `${projectName}Example`,\n '--directory',\n directory,\n '--version',\n reactNativeVersion,\n '--skip-install',\n '--npm',\n ]\n : // `npx create-expo-app example --no-install`\n ['create-expo-app@latest', directory, '--no-install'];\n\n await new Promise((resolve, reject) => {\n const child = spawn('npx', args, {\n cwd: dest,\n env: { ...process.env, npm_config_yes: 'true' },\n });\n\n let stderr = '';\n\n child.stderr?.setEncoding('utf8');\n child.stderr?.on('data', (data) => {\n stderr += data;\n });\n\n child.once('error', reject);\n child.once('close', resolve);\n child.once('exit', (code) => {\n if (code === 1) {\n reject(new Error(stderr));\n }\n });\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 = JSON.parse(\n await fs.readFile(path.join(directory, 'package.json'), 'utf8')\n );\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 if (type === 'native') {\n scripts.pods = 'pod-install --quiet';\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 Object.assign(devDependencies, PACKAGES_TO_ADD_DEV);\n\n if (type === '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 Object.entries(PACKAGES_TO_ADD_WEB_DEV).forEach(([name, version]) => {\n devDependencies[name] = bundledNativeModules[name] || version;\n });\n\n scripts.web = 'expo start --web';\n }\n\n await fs.writeFile(\n path.join(directory, 'package.json'),\n JSON.stringify(pkg, null, 2)\n );\n\n // If the library is on new architecture, enable new arch for iOS and Android\n if (arch === 'new') {\n // Android\n // Change newArchEnabled=false to newArchEnabled=true in example/android/gradle.properties\n const gradleProperties = await fs.readFile(\n path.join(directory, 'android', 'gradle.properties'),\n 'utf8'\n );\n\n await fs.writeFile(\n path.join(directory, 'android', 'gradle.properties'),\n gradleProperties.replace('newArchEnabled=false', 'newArchEnabled=true')\n );\n\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}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generateExampleApp.js","names":["FILES_TO_DELETE","PACKAGES_TO_REMOVE","PACKAGES_TO_ADD_DEV","PACKAGES_TO_ADD_WEB","PACKAGES_TO_ADD_WEB_DEV","generateExampleApp","type","dest","projectName","arch","reactNativeVersion","directory","path","join","args","Promise","resolve","reject","child","spawn","cwd","env","process","npm_config_yes","stderr","setEncoding","on","data","once","code","Error","file","fs","remove","pkg","JSON","parse","readFile","jest","scripts","dependencies","devDependencies","test","lint","pods","forEach","name","Object","assign","sdkVersion","expo","split","replace","bundledNativeModules","https","get","res","chunk","e","entries","version","web","writeFile","stringify","gradleProperties","podfile"],"sources":["../../src/utils/generateExampleApp.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport spawn from 'cross-spawn';\nimport path from 'path';\nimport https from 'https';\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-community/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_DEV = {\n 'babel-plugin-module-resolver': '^5.0.0',\n};\n\nconst PACKAGES_TO_ADD_WEB = {\n 'react-dom': '18.2.0',\n 'react-native-web': '~0.18.10',\n};\n\nconst PACKAGES_TO_ADD_WEB_DEV = {\n '@expo/webpack-config': '^18.0.1',\n 'babel-loader': '^8.1.0',\n};\n\nexport default async function generateExampleApp({\n type,\n dest,\n projectName,\n arch,\n reactNativeVersion = 'latest',\n}: {\n type: 'expo' | 'native';\n dest: string;\n projectName: string;\n arch: 'new' | 'mixed' | 'legacy';\n reactNativeVersion?: string;\n}) {\n const directory = path.join(dest, 'example');\n const args =\n type === 'native'\n ? // `npx react-native init <projectName> --directory example --skip-install`\n [\n 'react-native@latest',\n 'init',\n `${projectName}Example`,\n '--directory',\n directory,\n '--version',\n reactNativeVersion,\n '--skip-install',\n '--npm',\n ]\n : // `npx create-expo-app example --no-install`\n ['create-expo-app@latest', directory, '--no-install'];\n\n await new Promise((resolve, reject) => {\n const child = spawn('npx', args, {\n cwd: dest,\n env: { ...process.env, npm_config_yes: 'true' },\n });\n\n let stderr = '';\n\n child.stderr?.setEncoding('utf8');\n child.stderr?.on('data', (data) => {\n stderr += data;\n });\n\n child.once('error', reject);\n child.once('close', resolve);\n child.once('exit', (code) => {\n if (code === 1) {\n reject(new Error(stderr));\n }\n });\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 = JSON.parse(\n await fs.readFile(path.join(directory, 'package.json'), 'utf8')\n );\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 if (type === 'native') {\n scripts.pods = 'pod-install --quiet';\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 Object.assign(devDependencies, PACKAGES_TO_ADD_DEV);\n\n if (type === '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 Object.entries(PACKAGES_TO_ADD_WEB_DEV).forEach(([name, version]) => {\n devDependencies[name] = bundledNativeModules[name] || version;\n });\n\n scripts.web = 'expo start --web';\n }\n\n await fs.writeFile(\n path.join(directory, 'package.json'),\n JSON.stringify(pkg, null, 2)\n );\n\n // If the library is on new architecture, enable new arch for iOS and Android\n if (arch === 'new') {\n // Android\n // Change newArchEnabled=false to newArchEnabled=true in example/android/gradle.properties\n const gradleProperties = await fs.readFile(\n path.join(directory, 'android', 'gradle.properties'),\n 'utf8'\n );\n\n await fs.writeFile(\n path.join(directory, 'android', 'gradle.properties'),\n gradleProperties.replace('newArchEnabled=false', 'newArchEnabled=true')\n );\n\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}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-react-native-library",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
4
4
|
"description": "CLI to scaffold React Native libraries",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"@types/validate-npm-package-name": "^3.0.3",
|
|
71
71
|
"@types/yargs": "^17.0.10"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "1902e5f7a295282023bb60d05cdf10fa66de50a5"
|
|
74
74
|
}
|
package/templates/common/$.nvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
v18
|
|
@@ -64,14 +64,28 @@ def getExtOrIntegerDefault(name) {
|
|
|
64
64
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["<%- project.name -%>_" + name]).toInteger()
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
def
|
|
68
|
-
def
|
|
69
|
-
|
|
67
|
+
def supportsNamespace() {
|
|
68
|
+
def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
|
|
69
|
+
def major = parsed[0].toInteger()
|
|
70
|
+
def minor = parsed[1].toInteger()
|
|
71
|
+
|
|
72
|
+
// Namespace support was added in 7.3.0
|
|
73
|
+
if (major == 7 && minor >= 3) {
|
|
74
|
+
return true
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return major >= 8
|
|
70
78
|
}
|
|
71
79
|
|
|
72
80
|
android {
|
|
73
|
-
if (
|
|
81
|
+
if (supportsNamespace()) {
|
|
74
82
|
namespace "com.<%- project.package -%>"
|
|
83
|
+
} else {
|
|
84
|
+
sourceSets {
|
|
85
|
+
main {
|
|
86
|
+
manifest.srcFile "src/main/AndroidManifestDeprecated.xml"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
75
89
|
}
|
|
76
90
|
|
|
77
91
|
<% if (project.cpp || (project.view && (project.arch === "new" || project.arch === "mixed"))) { -%>
|
|
@@ -7,10 +7,10 @@ RCT_EXPORT_MODULE()
|
|
|
7
7
|
<% if (project.arch === 'legacy' || project.arch === 'mixed') { -%>
|
|
8
8
|
// Example method
|
|
9
9
|
// See // https://reactnative.dev/docs/native-modules-ios
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
RCT_EXPORT_METHOD(multiply:(double)a
|
|
11
|
+
b:(double)b
|
|
12
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
13
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
14
14
|
{
|
|
15
15
|
<% if (project.cpp) { -%>
|
|
16
16
|
NSNumber *result = @(<%- project.package_cpp -%>::multiply(a, b));
|
|
@@ -20,29 +20,23 @@ RCT_REMAP_METHOD(multiply,
|
|
|
20
20
|
|
|
21
21
|
resolve(result);
|
|
22
22
|
}
|
|
23
|
-
<% } -%>
|
|
24
23
|
|
|
24
|
+
<% } -%>
|
|
25
25
|
<% if (project.arch === 'new' || project.arch === 'mixed') { -%>
|
|
26
26
|
// Don't compile this code when we build for the old architecture.
|
|
27
27
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
28
28
|
<% if (project.arch === 'new') { -%>
|
|
29
29
|
- (NSNumber *)multiply:(double)a b:(double)b {
|
|
30
|
-
<% } else { -%>
|
|
31
|
-
- (void)multiply:(double)a b:(double)b resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
32
|
-
<% } -%>
|
|
33
30
|
<% if (project.cpp) { -%>
|
|
34
31
|
NSNumber *result = @(<%- project.package_cpp -%>::multiply(a, b));
|
|
35
32
|
<% } else { -%>
|
|
36
33
|
NSNumber *result = @(a * b);
|
|
37
34
|
<% } -%>
|
|
38
35
|
|
|
39
|
-
<% if (project.arch === 'new') { -%>
|
|
40
36
|
return result;
|
|
41
|
-
<% } else { -%>
|
|
42
|
-
resolve(result);
|
|
43
|
-
<% } -%>
|
|
44
37
|
}
|
|
45
38
|
|
|
39
|
+
<% } -%>
|
|
46
40
|
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
47
41
|
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
48
42
|
{
|