one
Version:
One is a React framework for web, iOS, and Android apps.
90 lines (87 loc) • 3.21 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all) __defProp(target, name, {
get: all[name],
enumerable: true
});
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var validate_exports = {};
__export(validate_exports, {
assertAuthOptions: () => assertAuthOptions,
assertBrowserUrl: () => assertBrowserUrl,
assertOpenOptions: () => assertOpenOptions,
assertRedirectUrl: () => assertRedirectUrl
});
module.exports = __toCommonJS(validate_exports);
var knownPresentationStyles = [
"automatic",
"currentContext",
"formSheet",
"fullScreen",
"overCurrentContext",
"overFullScreen",
"pageSheet"
];
function assertBrowserUrl(url, verb) {
if (typeof url !== "string" || url.length === 0) {
throw new Error(`${verb}: url must be a non-empty string`);
}
}
function assertRedirectUrl(redirectUrl, verb) {
if (redirectUrl !== void 0 && redirectUrl !== null && typeof redirectUrl !== "string") {
throw new Error(`${verb}: redirectUrl must be a string or null`);
}
}
function assertOptionalString(options, key, verb) {
if (options[key] !== void 0 && typeof options[key] !== "string") {
throw new Error(`${verb}: ${key} must be a string`);
}
}
function assertOptionalBoolean(options, key, verb) {
if (options[key] !== void 0 && typeof options[key] !== "boolean") {
throw new Error(`${verb}: ${key} must be a boolean`);
}
}
var knownColorSchemes = [
"system",
"light",
"dark"
];
function assertOpenOptions(options, verb) {
if (options === void 0) return;
if (!options || typeof options !== "object") {
throw new Error(`${verb}: options must be an object`);
}
var fields = options;
if (fields.presentationStyle !== void 0 && (typeof fields.presentationStyle !== "string" || !knownPresentationStyles.includes(fields.presentationStyle))) {
throw new Error(`${verb}: unknown presentationStyle ${JSON.stringify(fields.presentationStyle)}`);
}
if (fields.colorScheme !== void 0 && (typeof fields.colorScheme !== "string" || !knownColorSchemes.includes(fields.colorScheme))) {
throw new Error(`${verb}: unknown colorScheme ${JSON.stringify(fields.colorScheme)}`);
}
assertOptionalString(fields, "browserPackage", verb);
assertOptionalString(fields, "toolbarColor", verb);
assertOptionalString(fields, "secondaryToolbarColor", verb);
assertOptionalString(fields, "controlsColor", verb);
assertOptionalBoolean(fields, "showTitle", verb);
}
function assertAuthOptions(options, verb) {
assertOpenOptions(options, verb);
if (options === void 0) return;
assertOptionalBoolean(options, "preferEphemeralSession", verb);
}
//# sourceMappingURL=validate.native.js.map