1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 import Foundation 4 5 @objc 6 public protocol DevMenuDataSourceItem { 7 @objc serializenull8 func serialize() -> [String: Any] 9 } 10 11 public typealias DevMenuDataSourceResolver = ([DevMenuDataSourceItem]) -> Void 12 13 @objc 14 public protocol DevMenuDataSourceProtocol { 15 var id: String { get } 16 17 func fetchData(resolve: @escaping DevMenuDataSourceResolver) 18 } 19 20 @objc 21 public class DevMenuListDataSource: NSObject, DevMenuDataSourceProtocol { 22 public var id: String 23 private var dataFetcher: (@escaping ([DevMenuSelectionList.Item]) -> Void) -> Void 24 25 public init(id: String, dataFetcher: @escaping (@escaping ([DevMenuSelectionList.Item]) -> Void) -> Void) { 26 self.id = id 27 self.dataFetcher = dataFetcher 28 } 29 30 public func fetchData(resolve: @escaping ([DevMenuDataSourceItem]) -> Void) { 31 dataFetcher(resolve) 32 } 33 } 34