vue-nuxt-permission
Version:
A unified permission system for Vue 3 and Nuxt 3 / Nuxt 4 with directives, guards, and async support.
1 lines • 2.28 kB
Source Map (JSON)
{"version":3,"file":"plugin.mjs","sources":["../../src/runtime/plugin.ts"],"sourcesContent":["// @ts-ignore\r\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app\";\r\n// @ts-ignore\r\nimport type { NuxtApp } from \"#app\";\r\nimport { PermissionPlugin } from \"../index\";\r\n\r\nexport default defineNuxtPlugin(async (nuxtApp: NuxtApp) => {\r\n const cfg = useRuntimeConfig().public.permission as any;\r\n\r\n if (!cfg) {\r\n console.warn(\"[v-permission] No configuration found\");\r\n return;\r\n }\r\n\r\n let fetchFn: (() => Promise<string[]>) | undefined;\r\n\r\n if (typeof cfg.fetchPermissions === \"string\") {\r\n fetchFn = async () => {\r\n try {\r\n const r = await fetch(cfg.fetchPermissions);\r\n if (!r.ok) {\r\n throw new Error(`HTTP ${r.status}: ${r.statusText}`);\r\n }\r\n return await r.json();\r\n } catch (e) {\r\n console.error(\"[v-permission] Failed to fetch permissions:\", e);\r\n return [];\r\n }\r\n };\r\n } else if (typeof cfg.fetchPermissions === \"function\") {\r\n fetchFn = cfg.fetchPermissions;\r\n }\r\n\r\n try {\r\n nuxtApp.vueApp.use(PermissionPlugin as any, {\r\n permissions: cfg.permissions,\r\n developmentMode: cfg.developmentMode,\r\n fetchPermissions: fetchFn,\r\n persist: cfg.persist,\r\n });\r\n } catch (e) {\r\n console.error(\"[v-permission] Failed to install plugin:\", e);\r\n }\r\n});\r\n"],"names":["plugin","defineNuxtPlugin","nuxtApp","cfg","useRuntimeConfig","fetchFn","r","e","PermissionPlugin"],"mappings":";;;;;AAMA,MAAAA,IAAeC,EAAiB,OAAOC,MAAqB;AAC1D,QAAMC,IAAMC,IAAmB,OAAO;AAEtC,MAAI,CAACD,GAAK;AACR,YAAQ,KAAK,uCAAuC;AACpD;AAAA,EACF;AAEA,MAAIE;AAEJ,EAAI,OAAOF,EAAI,oBAAqB,WAClCE,IAAU,YAAY;AACpB,QAAI;AACF,YAAMC,IAAI,MAAM,MAAMH,EAAI,gBAAgB;AAC1C,UAAI,CAACG,EAAE;AACL,cAAM,IAAI,MAAM,QAAQA,EAAE,MAAM,KAAKA,EAAE,UAAU,EAAE;AAErD,aAAO,MAAMA,EAAE,KAAA;AAAA,IACjB,SAASC,GAAG;AACV,qBAAQ,MAAM,+CAA+CA,CAAC,GACvD,CAAA;AAAA,IACT;AAAA,EACF,IACS,OAAOJ,EAAI,oBAAqB,eACzCE,IAAUF,EAAI;AAGhB,MAAI;AACF,IAAAD,EAAQ,OAAO,IAAIM,GAAyB;AAAA,MAC1C,aAAaL,EAAI;AAAA,MACjB,iBAAiBA,EAAI;AAAA,MACrB,kBAAkBE;AAAA,MAClB,SAASF,EAAI;AAAA,IAAA,CACd;AAAA,EACH,SAASI,GAAG;AACV,YAAQ,MAAM,4CAA4CA,CAAC;AAAA,EAC7D;AACF,CAAC;"}