UNPKG

@ilo-home/react-native-tuya

Version:

React Native bindings for the Tuya SDK

310 lines (297 loc) 10.2 kB
import { Platform, NativeModules, NativeEventEmitter } from 'react-native'; var tuya = NativeModules.TuyaActivatorModule; var tuyaBLEActivator = NativeModules.TuyaBLEActivatorModule; var tuyaBLEScanner = NativeModules.TuyaBLEScannerModule; function openNetworkSettings() { return tuya.openNetworkSettings({}); } var ActivatorType; (function (ActivatorType) { ActivatorType["AP"] = "THING_AP"; ActivatorType["EZ"] = "THING_EZ"; ActivatorType["AP_4G_GATEWAY"] = "THING_4G_GATEWAY"; ActivatorType["QR"] = "THING_QR"; })(ActivatorType || (ActivatorType = {})); function initActivator(params) { return tuya.initActivator(params); } function stopActivator() { return tuya.stopActivator(); } function destroyActivator() { return tuya.destroyActivator(); } function startBluetoothScan() { if (Platform.OS === 'ios') { return tuyaBLEScanner.startBluetoothScan(); } return tuya.startBluetoothScan(); } function initBluetoothDualModeActivator(params) { if (Platform.OS === 'ios') { return tuyaBLEActivator.initActivator(params); } return tuya.initBluetoothDualModeActivator(params); } function getCurrentWifi(success, error) { // We need the Allow While Using App location permission to use this. return tuya.getCurrentWifi({}, success, error); } var GROUPLISTENER = 'groupListener'; var HARDWAREUPGRADELISTENER = 'hardwareUpgradeListener'; var DEVLISTENER = 'devListener'; var SUBDEVLISTENER = 'subDevListener'; var HOMESTATUS = 'homeStatus'; var HOMECHANGE = 'homeChange'; var SINGLETRANSFER = 'SingleTransfer'; var eventEmitter = /*#__PURE__*/new NativeEventEmitter(NativeModules.TuyaRNEventEmitter); function addEvent(eventName, callback) { return eventEmitter.addListener(eventName, callback); } var bridge = function bridge(key, id) { return key + "//" + id; }; var tuya$1 = NativeModules.TuyaDeviceModule; var devListenerSubs = {}; function registerDevListener(params, type, callback) { tuya$1.registerDevListener(params); var sub = addEvent(bridge(DEVLISTENER, params.devId), function (data) { if (data.type === type) { callback(data); } }); devListenerSubs[params.devId] = sub; } function unRegisterAllDevListeners() { for (var devId in devListenerSubs) { var sub = devListenerSubs[devId]; sub.remove(); tuya$1.unRegisterDevListener({ devId: devId }); } devListenerSubs = {}; } function send(params) { return tuya$1.send(params); } function removeDevice(params) { return tuya$1.removeDevice(params); } function renameDevice(params) { return tuya$1.renameDevice(params); } function getDataPointStat(params) { return tuya$1.getDataPointStat(params); } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } var getHomeDetail = function getHomeDetail(params) { try { return Promise.resolve(tuya$2.getHomeDetail(params)).then(function (home) { // Tuya's Android SDK uses different property names and has different types than the iOS SDK... if (Platform.OS === 'android') { home.deviceList = home.deviceList.map(function (device) { return _extends({}, device, { homeId: parseInt(device.ownerId), category: device.deviceCategory }); }); } return home; }); } catch (e) { return Promise.reject(e); } }; var tuya$2 = NativeModules.TuyaHomeModule; function queryRoomList(params) { return tuya$2.queryRoomList(params); } function updateHome(params) { return tuya$2.updateHome(params); } function dismissHome(params) { return tuya$2.dismissHome(params); } function sortRoom(params) { return tuya$2.sortRoom(params); } var tuya$3 = NativeModules.TuyaHomeDataManagerModule; function getRoomDeviceList(params) { return tuya$3.getRoomDeviceList(params); } var queryHomeList = function queryHomeList() { try { return Promise.resolve(tuya$4.queryHomeList()).then(function (homes) { // Tuya's Android SDK uses different property names than the iOS SDK... if (Platform.OS === 'android') { homes = homes.map(function (m) { return _extends({}, m, { dealStatus: m.homeStatus }); }); } return homes; }); } catch (e) { return Promise.reject(e); } }; var tuya$4 = NativeModules.TuyaHomeManagerModule; function createHome(params) { return tuya$4.createHome(params); } function joinFamily(params) { return tuya$4.joinFamily(params); } var queryMemberList = function queryMemberList(params) { try { return Promise.resolve(tuya$5.queryMemberList(params)).then(function (members) { // Tuya's Android SDK uses different property names than the iOS SDK... if (Platform.OS === 'android') { members = members.map(function (m) { return { admin: m.admin, username: m.account, id: m.memberId, dealStatus: m.memberStatus }; }); } return members; }); } catch (e) { return Promise.reject(e); } }; var tuya$5 = NativeModules.TuyaHomeMemberModule; function addMember(params) { return tuya$5.addMember(params); } function removeMember(params) { return tuya$5.removeMember(params); } var tuya$6 = NativeModules.TuyaDeviceModule; function startOta(params, onSuccess, onFailure, onProgress) { tuya$6.startOta(params); return addEvent(bridge(HARDWAREUPGRADELISTENER, params.devId), function (data) { if (data.type === 'onSuccess') { onSuccess(data); } else if (data.type === 'onFailure') { onFailure(data); } else if (data.type === 'onProgress') { onProgress(data); } }); } function getOtaInfo(params) { return tuya$6.getOtaInfo(params); } var getTimerWithTask = function getTimerWithTask(params) { try { return Promise.resolve(tuya$7.getTimerWithTask(params)).then(function (timers) { timers.forEach(function (t) { t.timerTaskStatus.open = !!t.timerTaskStatus.open; // Tuya's Android SDK uses different property names and has different types than the iOS SDK... t.timerList = t.timerList.map(function (timer) { return _extends({}, timer, { status: !!timer.status, dps: Platform.OS === 'android' ? JSON.parse(timer.value) : timer.dps }); }); }); return timers; }); } catch (e) { return Promise.reject(e); } }; var getAllTimerWithDeviceId = function getAllTimerWithDeviceId(params) { try { return Promise.resolve(tuya$7.getAllTimerWithDeviceId(params)).then(function (timers) { timers.forEach(function (t) { t.timerTaskStatus.open = !!t.timerTaskStatus.open; // Tuya's Android SDK uses different property names and has different types than the iOS SDK... t.timerList = t.timerList.map(function (timer) { return _extends({}, timer, { status: !!timer.status, dps: Platform.OS === 'android' ? JSON.parse(timer.value) : timer.dps }); }); }); return timers; }); } catch (e) { return Promise.reject(e); } }; var tuya$7 = NativeModules.TuyaTimerModule; function addTimerWithTask(params) { return tuya$7.addTimerWithTask(params); } function updateTimerWithTask(params) { return tuya$7.updateTimerWithTask(params); } function getTimerTaskStatusWithDeviceId(params) { return tuya$7.getTimerTaskStatusWithDeviceId(params); } function removeTimerWithTask(params) { return tuya$7.removeTimerWithTask(params); } function updateTimerStatusWithTask(params) { return tuya$7.updateTimerStatusWithTask(params); } function updateTimerTaskStatusWithTask(params) { return tuya$7.updateTimerTaskStatusWithTask(params); } var getCurrentUser = function getCurrentUser() { try { return Promise.resolve(tuya$8.getCurrentUser()).then(function (user) { // The iOS SDK returns an empty user model but the Android one doesn't. return user ? user : null; }); } catch (e) { return Promise.reject(e); } }; var tuya$8 = NativeModules.TuyaUserModule; function loginOrRegisterWithUid(params) { return tuya$8.loginOrRegisterWithUid(params); } function registerAccountWithEmail(params) { return tuya$8.registerAccountWithEmail(params); } function loginWithEmailPassword(params) { return tuya$8.loginWithEmailPassword(params); } function getValidateCode(params) { return tuya$8.getValidateCode(params); } function checkValidateCode(params) { return tuya$8.checkValidateCode(params); } function resetEmailPassword(params) { return tuya$8.resetEmailPassword(params); } function logout() { return tuya$8.logout(); } function cancelAccount() { return tuya$8.cancelAccount(); } var ValidateCodeType; (function (ValidateCodeType) { ValidateCodeType[ValidateCodeType["REGISTER"] = 1] = "REGISTER"; ValidateCodeType[ValidateCodeType["LOGIN"] = 2] = "LOGIN"; ValidateCodeType[ValidateCodeType["RESET_PASSWORD"] = 3] = "RESET_PASSWORD"; })(ValidateCodeType || (ValidateCodeType = {})); export { ActivatorType, DEVLISTENER, GROUPLISTENER, HARDWAREUPGRADELISTENER, HOMECHANGE, HOMESTATUS, SINGLETRANSFER, SUBDEVLISTENER, ValidateCodeType, addEvent, addMember, addTimerWithTask, bridge, cancelAccount, checkValidateCode, createHome, destroyActivator, dismissHome, getAllTimerWithDeviceId, getCurrentUser, getCurrentWifi, getDataPointStat, getHomeDetail, getOtaInfo, getRoomDeviceList, getTimerTaskStatusWithDeviceId, getTimerWithTask, getValidateCode, initActivator, initBluetoothDualModeActivator, joinFamily, loginOrRegisterWithUid, loginWithEmailPassword, logout, openNetworkSettings, queryHomeList, queryMemberList, queryRoomList, registerAccountWithEmail, registerDevListener, removeDevice, removeMember, removeTimerWithTask, renameDevice, resetEmailPassword, send, sortRoom, startBluetoothScan, startOta, stopActivator, unRegisterAllDevListeners, updateHome, updateTimerStatusWithTask, updateTimerTaskStatusWithTask, updateTimerWithTask }; //# sourceMappingURL=react-native-tuya.esm.js.map