UNPKG

vue-nuxt-permission

Version:

A unified permission system for Vue 3 and Nuxt 3 / Nuxt 4 with directives, guards, and async support.

48 lines (47 loc) 1.68 kB
import { defineNuxtModule as r, createResolver as n, addPlugin as o, addImports as m } from "@nuxt/kit"; import { defu as t } from "defu"; /*! vue-nuxt-permission v2.2.1 | (c) 2026 Kerolos Zakaria | MIT License */ const f = r({ meta: { name: "vue-nuxt-permission", configKey: "permission", compatibility: { // Supports Nuxt 3.x and Nuxt 4.x. // The module uses only stable @nuxt/kit APIs (addPlugin, addImports, // runtimeConfig) and the runtime plugin uses defineNuxtPlugin from // #app — both unchanged in Nuxt 4. nuxt: ">=3.0.0" } }, defaults: { permissions: [], developmentMode: !1, persist: !0 }, setup(e, s) { if (e.permissions && !Array.isArray(e.permissions)) throw new TypeError("[vue-nuxt-permission] permissions must be an array"); if (e.fetchPermissions && typeof e.fetchPermissions != "string" && typeof e.fetchPermissions != "function") throw new TypeError( "[vue-nuxt-permission] fetchPermissions must be a URL string or async function" ); const i = n(import.meta.url); o(i.resolve("./runtime/plugin")), m({ name: "usePermission", from: "vue-nuxt-permission" }), s.options.runtimeConfig.public.permission = t( s.options.runtimeConfig.public.permission, { permissions: e.permissions, developmentMode: e.developmentMode, persist: e.persist, // Functions can't be serialized to runtimeConfig — only pass URL strings fetchPermissions: typeof e.fetchPermissions == "string" ? e.fetchPermissions : void 0 } ); } }); export { f as default }; //# sourceMappingURL=module.mjs.map