vue-recaptcha
Version:
ReCAPTCHA vue component
71 lines (70 loc) • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
module.exports = void 0;
var _kit = require("@nuxt/kit");
const COMPONENTS = {
RecaptchaCheckbox: "Checkbox",
RecaptchaChallengeV2: "ChallengeV2",
RecaptchaChallengeV3: "ChallengeV3"
};
var _default = (0, _kit.defineNuxtModule)({
meta: {
name: "vue-recaptcha",
configKey: "recaptcha",
compatibility: {
nuxt: "^3.0.0"
}
},
defaults: {
enterprise: false,
installPlugin: true,
_globalComponent: false
},
async setup(opt) {
const logger = (0, _kit.useLogger)("vue-recaptcha");
const nuxt = (0, _kit.useNuxt)();
const resolver = (0, _kit.createResolver)(require('url').pathToFileURL(__filename).toString());
nuxt.options.build.transpile.push(resolver.resolve("."), "vue-recaptcha");
for (const [name, fileName] of Object.entries(COMPONENTS)) {
await (0, _kit.addComponent)({
name,
global: opt._globalComponent,
filePath: resolver.resolve(`./components/${fileName}.vue`)
});
}
(0, _kit.addImports)([{
from: resolver.resolve("./composables/context"),
name: "useRecaptchaContext"
}, {
from: resolver.resolve("./composables/context"),
name: "useRecaptchaProxy"
}, {
from: resolver.resolve("./composables/challenge-v2"),
name: "useChallengeV2"
}, {
from: resolver.resolve("./composables/challenge-v3"),
name: "useChallengeV3"
}, {
from: resolver.resolve("./composables/script-provider"),
name: "useRecaptchaProvider"
}]);
if (!opt.installPlugin) {
if (opt.enterprise) {
logger.warn("`enterprise` option is ignored when `installPlugin` is false");
}
return;
}
if (opt.enterprise) {
(0, _kit.addPlugin)({
src: resolver.resolve("./nuxt-enterprise-plugin")
});
} else {
(0, _kit.addPlugin)({
src: resolver.resolve("./nuxt-plugin")
});
}
}
});
module.exports = _default;