UNPKG

react-native-cloud-storage

Version:

☁️ Save to & read from iCloud and Google Drive using React Native

35 lines (34 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createProxiedNativeModule = void 0; var _native = require("../types/native"); var _cloudStorageError = _interopRequireDefault(require("./cloud-storage-error")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * Creates a proxied native module that wraps thrown errors in a CloudStorageError. * @param nativeModule The native module to proxy. * @returns The proxied native module. */ const createProxiedNativeModule = nativeModule => { if (!nativeModule) return null; return new Proxy(nativeModule, { get(target, property, receiver) { const originalValue = Reflect.get(target, property, receiver); if (typeof originalValue === 'function') { return async (...arguments_) => { try { return await Reflect.apply(originalValue, target, arguments_); } catch (error) { const error_ = typeof error === 'object' && error !== null && 'code' in error && typeof error.code === 'string' && Object.values(_native.NativeCloudStorageErrorCode).includes(error.code) ? new _cloudStorageError.default('message' in error && typeof error.message === 'string' ? error.message : 'Unknown error', error.code) : new _cloudStorageError.default('Unknown error', _native.NativeCloudStorageErrorCode.UNKNOWN, error); throw error_; } }; } return originalValue; } }); }; exports.createProxiedNativeModule = createProxiedNativeModule; //# sourceMappingURL=native.js.map