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