Introduce cxxreactpackage provider into default tmmdelegate (#41735)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41735 Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D51734655 fbshipit-source-id: 2966e9d7ef0af852750c35b35ec39d9e8f9b9a80
This commit is contained in:
Родитель
1c57e969fb
Коммит
73d0cf502d
|
@ -47,20 +47,39 @@ private constructor(
|
||||||
|
|
||||||
class Builder : ReactPackageTurboModuleManagerDelegate.Builder() {
|
class Builder : ReactPackageTurboModuleManagerDelegate.Builder() {
|
||||||
private var eagerInitModuleNames: List<String> = emptyList()
|
private var eagerInitModuleNames: List<String> = emptyList()
|
||||||
private var cxxReactPackages: MutableList<CxxReactPackage> = mutableListOf()
|
private var cxxReactPackageProviders:
|
||||||
|
MutableList<((context: ReactApplicationContext) -> CxxReactPackage)> =
|
||||||
|
mutableListOf()
|
||||||
|
|
||||||
fun setEagerInitModuleNames(eagerInitModuleNames: List<String>): Builder {
|
fun setEagerInitModuleNames(eagerInitModuleNames: List<String>): Builder {
|
||||||
this.eagerInitModuleNames = eagerInitModuleNames
|
this.eagerInitModuleNames = eagerInitModuleNames
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addCxxReactPackage(cxxReactPackage: CxxReactPackage): Builder {
|
fun addCxxReactPackage(provider: () -> CxxReactPackage): Builder {
|
||||||
this.cxxReactPackages.add(cxxReactPackage)
|
this.cxxReactPackageProviders.add({ _ -> provider() })
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun build(context: ReactApplicationContext, packages: List<ReactPackage>) =
|
fun addCxxReactPackage(
|
||||||
DefaultTurboModuleManagerDelegate(context, packages, eagerInitModuleNames, cxxReactPackages)
|
provider: (context: ReactApplicationContext) -> CxxReactPackage
|
||||||
|
): Builder {
|
||||||
|
this.cxxReactPackageProviders.add(provider)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun build(
|
||||||
|
context: ReactApplicationContext,
|
||||||
|
packages: List<ReactPackage>
|
||||||
|
): DefaultTurboModuleManagerDelegate {
|
||||||
|
val cxxReactPackages = mutableListOf<CxxReactPackage>()
|
||||||
|
for (cxxReactPackageProvider in cxxReactPackageProviders) {
|
||||||
|
cxxReactPackages.add(cxxReactPackageProvider(context))
|
||||||
|
}
|
||||||
|
|
||||||
|
return DefaultTurboModuleManagerDelegate(
|
||||||
|
context, packages, eagerInitModuleNames, cxxReactPackages)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче