1 import ExpoModulesCore
2 
3 class UnnamedModule: Module {
4   func definition() -> ModuleDefinition {}
5 }
6 
7 class NamedModule: Module {
8   static let namedModuleName = "MyModule"
9 
10   func definition() -> ModuleDefinition {
11     name(Self.namedModuleName)
12   }
13 }
14 
15 class CustomModule: Module {
16   var customDefinition: ((CustomModule) -> ModuleDefinition)!
17 
18   convenience init(appContext: AppContext, @ModuleDefinitionBuilder _ customDefinition: @escaping (CustomModule) -> ModuleDefinition) {
19     self.init(appContext: appContext)
20     self.customDefinition = customDefinition
21   }
22 
23   func definition() -> ModuleDefinition {
24     return customDefinition(self)
25   }
26 }
27