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:
Ramanpreet Nara 2023-12-05 16:55:16 -08:00 коммит произвёл Facebook GitHub Bot
Родитель 1c57e969fb
Коммит 73d0cf502d
1 изменённых файлов: 24 добавлений и 5 удалений

Просмотреть файл

@ -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 {