airbridge-react-native-sdk
Version:
Airbridge SDK for React Native
46 lines • 2.09 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { NativeModules } from 'react-native';
import { createInteractor } from '../architecture/Interactor';
import { check } from '../utility/check';
import { log } from '../utility/log';
export const createDependency = () => { };
createDependency.WebInterfaceModule = () => ({
interactor: createInteractor(NativeModules.WebInterfaceInteractor),
});
export const createWebInterfaceModule = () => {
// create dependency
const { interactor } = createDependency.WebInterfaceModule();
// define method
const createWebInterfaceScript = (webToken, postMessageScript) => __awaiter(void 0, void 0, void 0, function* () {
if (!check.string(webToken)) {
log.unmatchedType('webToken', 'string');
return undefined;
}
if (!check.string(postMessageScript)) {
log.unmatchedType('postMessageScript', 'string');
return undefined;
}
return yield interactor.createWebInterfaceScript(webToken, postMessageScript);
});
const handleWebInterfaceCommand = (command) => {
if (!check.string(command)) {
log.unmatchedType('command', 'string');
return undefined;
}
interactor.handleWebInterfaceCommand(command);
};
// create object
return {
createWebInterfaceScript,
handleWebInterfaceCommand,
};
};
//# sourceMappingURL=WebInterface.js.map