one
Version:
One is a React framework for web, iOS, and Android apps.
56 lines (53 loc) • 1.93 kB
JavaScript
import { NitroModules } from "react-native-nitro-modules";
import { rethrowNativeError } from "../nativeError.native.js";
import { assertAuthOptions, assertBrowserUrl, assertOpenOptions, assertRedirectUrl } from "./validate.native.js";
var hybrid;
function native() {
hybrid !== null && hybrid !== void 0 ? hybrid : hybrid = NitroModules.createHybridObject("OneBrowser");
return hybrid;
}
function toAuthSessionResult(param) {
var { type, url } = param;
if (type === "success" && url !== void 0) return {
type,
url
};
if (type === "success") throw new Error("Browser.openAuthSession: redirect without a url");
return { type };
}
function open(url) {
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
assertBrowserUrl(url, "Browser.open");
assertOpenOptions(options, "Browser.open");
return native().open(url, options).catch(rethrowNativeError);
}
function dismiss() {
return native().dismiss();
}
function openAuthSession(url, redirectUrl) {
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
assertBrowserUrl(url, "Browser.openAuthSession");
assertRedirectUrl(redirectUrl, "Browser.openAuthSession");
assertAuthOptions(options, "Browser.openAuthSession");
return native().openAuthSession(url, redirectUrl !== null && redirectUrl !== void 0 ? redirectUrl : void 0, options).then(toAuthSessionResult, rethrowNativeError);
}
function dismissAuthSession() {
native().dismissAuthSession();
}
function warmup(browserPackage) {
return native().warmup(browserPackage).catch(rethrowNativeError);
}
function mayLaunchUrl(url, browserPackage) {
assertBrowserUrl(url, "Browser.mayLaunchUrl");
return native().mayLaunchUrl(url, browserPackage).catch(rethrowNativeError);
}
var Browser = Object.freeze({
open,
dismiss,
openAuthSession,
dismissAuthSession,
warmup,
mayLaunchUrl
});
export { Browser };
//# sourceMappingURL=index.native.js.map