UNPKG

vue-recaptcha

Version:

ReCAPTCHA vue component

66 lines (65 loc) 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkRecaptchaLoad = checkRecaptchaLoad; exports.defineScriptLoader = defineScriptLoader; exports.normalizeParams = normalizeParams; exports.normalizeScriptLoaderOptions = normalizeScriptLoaderOptions; exports.recaptchaLoaded = void 0; exports.toQueryString = toQueryString; exports.toStringPair = toStringPair; var _pDefer = _interopRequireDefault(require("p-defer")); var _defu = _interopRequireDefault(require("defu")); var _utils = require("../utils.cjs"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function defineScriptLoader(fn) { return options => { return fn(normalizeScriptLoaderOptions(options)); }; } function normalizeScriptLoaderOptions(options) { return { ...options, recaptchaApiURL: options.recaptchaApiURL ?? (options.useRecaptchaNet ? "https://www.recaptcha.net/recaptcha/api.js" : "https://www.google.com/recaptcha/api.js") }; } const recaptchaLoaded = (0, _pDefer.default)(); exports.recaptchaLoaded = recaptchaLoaded; const ONLOAD_KEY = "__vueRecaptchaLoaded"; if (typeof window !== "undefined") { window[ONLOAD_KEY] = () => { recaptchaLoaded.resolve(); }; } function toQueryString(params) { return new URLSearchParams(normalizeParams(params)).toString(); } function normalizeParams(raw) { const params = (0, _defu.default)(raw, { onload: ONLOAD_KEY, render: "explicit" }); if (params.render === "onload") { (0, _utils.warn)("passing `onload` as `render` param is not allowed"); params.render = "explicit"; } if (params.onload !== ONLOAD_KEY) { (0, _utils.warn)("passing `onload` param with other value is not allowed"); params.onload = ONLOAD_KEY; } return toStringPair(params); } function toStringPair(params) { return Object.entries(params).filter(pair => typeof pair[1] === "string"); } function checkRecaptchaLoad() { if (typeof window === "undefined") { return false; } const isLoaded = Object.hasOwn(window, "grecaptcha") && Object.hasOwn(window.grecaptcha, "execute"); if (isLoaded) { recaptchaLoaded.resolve(); } return isLoaded; }