package Ġex po . modules . kotlin Ċ Ċ import Ġcom . facebook . react . bridge . Readable Array Ċ import Ġex po . modules . core . Promise Ċ Ċ private Ġtype alias ĠModule Name Ġ= ĠString Ċ private Ġtype alias ĠModule Constants Ġ= ĠMap < String , ĠAny ?> Ċ private Ġtype alias ĠModule MethodInfo Ġ= ĠMap < String , ĠAny ?> Ċ Ċ class ĠKotlin Interop Module Registry ( ĊĠ Ġmodules Provider : ĠModules Provider , ĊĠ Ġlegacy Module Registry : Ġex po . modules . core . Module Registry Ċ ) Ġ{ ĊĠ Ġprivate Ġval Ġapp Context Ġ= ĠApp Context ( modules Provider , Ġlegacy Module Registry ) ĊĊĠ Ġprivate Ġval Ġregistry : ĠModule Registry ĊĠĠĠ Ġget () Ġ= Ġapp Context . registry ĊĊĠ Ġfun Ġhas Module ( name : ĠString ): ĠBoolean Ġ= Ġregistry . has Module ( name ) ĊĊĠ Ġfun Ġcall Method ( moduleName : ĠString , Ġmethod : ĠString , Ġarguments : ĠRead able Array , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġregistry ĊĠĠĠĠĠ Ġ. getModule Holder ( moduleName ) ĊĠĠĠĠĠ Ġ? . call ( method , Ġarguments , Ġpromise ) ĊĠ Ġ} ĊĊĠ Ġfun Ġexported Modules Constants (): ĠMap < ModuleName , ĠModule Constants > Ġ{ ĊĠĠĠ Ġreturn Ġregistry ĊĠĠĠĠĠ Ġ. map Ġ{ Ġholder Ġ-> ĊĠĠĠĠĠĠĠ Ġholder . name Ġto Ġholder . definition . constants Provider () ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. toMap () ĊĠ Ġ} ĊĊĠ Ġfun Ġexport Methods ( export Key : Ġ( String , ĠList < Module MethodInfo >) Ġ-> ĠUnit Ġ= Ġ{ Ġ_, Ġ_ Ġ-> Ġ}): ĠMap < ModuleName , ĠList < Module MethodInfo >> Ġ{ ĊĠĠĠ Ġreturn Ġregistry ĊĠĠĠĠĠ Ġ. map Ġ{ Ġholder Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġmethods Info Ġ= Ġholder . definition . methods . map Ġ{ Ġ( name , Ġmethod ) Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" name " Ġto Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" arguments Count " Ġto Ġmethod . args Count ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexport Key ( holder . name , Ġmethods Info ) ĊĠĠĠĠĠĠĠ Ġholder . name Ġto Ġmethods Info ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. toMap () ĊĠ Ġ} Ċ } Ċ