vite-plugin-local-scoped-modules
Version:
vite-plugin-local-scoped-modules ================ This is a [vite](https://github.com/vitejs/vite) plugin that intends to avoid typing relative paths.Use relative paths like local modules instead.
2 lines (1 loc) • 999 B
JavaScript
(function(n,s){typeof exports=="object"&&typeof module<"u"?module.exports=s():typeof define=="function"&&define.amd?define(s):(n=typeof globalThis<"u"?globalThis:n||self,n.localScopedModules=s())})(this,function(){"use strict";const n={rootPrefix:"~",scopePrefix:"@",scopes:[],calleeNames:["require","import"]},s=(e={})=>{const t=()=>Object.assign(n,e);return{name:"vite:LocalScopeModules",config(){return t()},resolveId(r,o){const l=t();return a(r,l)}}},p=(()=>{const e=/[|\\{}()[\]^$+*?.-]/g;return t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(e,"\\$&")}})();function a(e,{rootPrefix:t,scopePrefix:r,scopes:o}){let l=new RegExp(`^${p(r)}[-_0-9A-z/]+`);if(!(e===t||e.startsWith(`${t}/`)&&e.split(t).length===2||l.test(e)&&e.split(r).length===2))return null;const f=o.concat({name:t,dir:t});let u=null;return f.some((i,h)=>{let c=i.name,g=i.dir.replace(t,".");return e===c||e.startsWith(`${c}/`)&&e.split(c).length===2?(u=e.replace(c,g),!0):!1}),u}return s});