one
Version:
One is a React framework for web, iOS, and Android apps.
48 lines (45 loc) • 1.44 kB
JavaScript
import { assertAuthOptions, assertBrowserUrl, assertOpenOptions, assertRedirectUrl } from "./validate.mjs";
function blocked(verb) {
const error = new Error(`${verb}: the browser blocked the popup. Open it from a user gesture.`);
error.code = "E_BROWSER_BLOCKED";
return error;
}
function open(url, options = {}) {
assertBrowserUrl(url, "Browser.open");
assertOpenOptions(options, "Browser.open");
return openPage(url);
}
async function openPage(url) {
if (typeof window === "undefined") return { type: "opened" };
const opened = window.open(url, "_blank");
if (!opened) throw blocked("Browser.open");
opened.opener = null;
return { type: "opened" };
}
async function dismiss() {
return { type: "dismiss" };
}
function openAuthSession(url, redirectUrl, options = {}) {
assertBrowserUrl(url, "Browser.openAuthSession");
assertRedirectUrl(redirectUrl, "Browser.openAuthSession");
assertAuthOptions(options, "Browser.openAuthSession");
return Promise.reject(new Error("Browser.openAuthSession needs an iOS or Android build"));
}
function dismissAuthSession() {}
function warmup(_browserPackage) {
return Promise.resolve(false);
}
function mayLaunchUrl(url, _browserPackage) {
assertBrowserUrl(url, "Browser.mayLaunchUrl");
return Promise.resolve(false);
}
const Browser = Object.freeze({
open,
dismiss,
openAuthSession,
dismissAuthSession,
warmup,
mayLaunchUrl
});
export { Browser };
//# sourceMappingURL=index.mjs.map