UNPKG

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.

40 lines (39 loc) 1.04 kB
const u = { rootPrefix: "~", scopePrefix: "@", scopes: [], calleeNames: ["require", "import"] }, f = (e = {}) => { const t = () => Object.assign(u, e); return { name: "vite:LocalScopeModules", config() { return t(); }, resolveId(n, c) { const s = t(); return i(n, s); } }; }, g = /* @__PURE__ */ (() => { const e = /[|\\{}()[\]^$+*?.-]/g; return (t) => { if (typeof t != "string") throw new TypeError("Expected a string"); return t.replace(e, "\\$&"); }; })(); function i(e, { rootPrefix: t, scopePrefix: n, scopes: c }) { let s = new RegExp(`^${g(n)}[-_0-9A-z/]+`); if (!(e === t || e.startsWith(`${t}/`) && e.split(t).length === 2 || s.test(e) && e.split(n).length === 2)) return null; const o = c.concat({ name: t, dir: t }); let l = null; return o.some((a, m) => { let r = a.name, p = a.dir.replace(t, "."); return e === r || e.startsWith(`${r}/`) && e.split(r).length === 2 ? (l = e.replace(r, p), !0) : !1; }), l; } export { f as default };