UNPKG

@react-native-agconnect/clouddb

Version:
88 lines (72 loc) 2.72 kB
/* * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. */ import AGCCloudDBException from '@react-native-agconnect/clouddb/src/AGCCloudDBException'; import AGCCloudDBZone from './AGCCloudDBZone'; import { NativeEventEmitter, NativeModules } from 'react-native'; const { AGCCloudDBModule } = NativeModules; export default class AGCCloudDB { constructor() { this.instance = AGCCloudDBModule.initialize(); } static getInstance() { if (!this.instance) { return new AGCCloudDB() } return this.instance } closeCloudDBZone(cloudDBZone) { return AGCCloudDBModule.closeCloudDBZone(cloudDBZone.id); } createObjectType() { return AGCCloudDBModule.createObjectType(); } getCloudDBZoneConfigs() { return AGCCloudDBModule.getCloudDBZoneConfigs(); } openCloudDBZone(cloudDBZoneConfig, isAllowToCreate) { let id = Math.random().toString(36).substr(2, 9) + Date.now(); return AGCCloudDBModule.openCloudDBZone(cloudDBZoneConfig, isAllowToCreate, id) .then(response => { return new AGCCloudDBZone(id); }) .catch(error => { throw new AGCCloudDBException(error) }) } openCloudDBZone2(cloudDBZoneConfig, isAllowToCreate) { let id = Math.random().toString(36).substr(2, 9) + Date.now(); return AGCCloudDBModule.openCloudDBZone2(cloudDBZoneConfig, isAllowToCreate, id) .then(response => { return new AGCCloudDBZone(id); }) .catch(error => { throw new AGCCloudDBException(error) }) } deleteCloudDBZone(zoneName) { return AGCCloudDBModule.deleteCloudDBZone(zoneName); } enableNetwork(zoneName) { return AGCCloudDBModule.enableNetwork(zoneName); } disableNetwork(zoneName) { return AGCCloudDBModule.disableNetwork(zoneName); } setUserKey(userKey, userReKey) { return AGCCloudDBModule.setUserKey(userKey, userReKey); } updateDataEncryptionKey() { return AGCCloudDBModule.updateDataEncryptionKey(); } addEventListener(listener) { let eventEmitter = new NativeEventEmitter(AGCCloudDBModule); let eventListener = eventEmitter.addListener("onEvent", listener) return AGCCloudDBModule.addEventListener(); } addDataEncryptionKeyListener(listener) { let eventEmitter = new NativeEventEmitter(AGCCloudDBModule); let eventListener = eventEmitter.addListener("onDataKeyChange", listener) return AGCCloudDBModule.addDataEncryptionKeyListener(); } }