#import "RCTDefaultReactNativeFactoryDelegate.h"
#import "DgisModule.h"
#import <Dgis-Swift.h>

@implementation DgisModule

RCT_EXPORT_MODULE(DgisModule)

+ (BOOL)requiresMainQueueSetup {
    return YES;
}

RCT_EXPORT_METHOD(init:(RCTPromiseResolveBlock)resolve
                  reject:(RCTPromiseRejectBlock)reject) {
    dispatch_async(dispatch_get_main_queue(), ^{
        if ([[DGisBridge shared] initializeWithKeyPath:@"dgissdk.key"]) {
            resolve(nil);
        } else {
            reject(@"DGIS_INIT_ERROR", @"Failed to initialize DGis SDK", nil);
        }
    });
}

#ifdef RCT_NEW_ARCH_ENABLED
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params {
    return std::make_shared<facebook::react::NativeDgisModuleSpecJSI>(params);
}
#endif

@end
