3 lines
1.4 KiB
JavaScript
3 lines
1.4 KiB
JavaScript
"use strict";const s=require("path"),v=require("resolve"),b=require("debug"),d="eslint-plugin-import:resolver:vite",i=b(d),y=(t,o)=>{if(t){const r=s.normalize(o).split(s.sep);if(Array.isArray(t))for(let e=0;e<r.length;e++)t.forEach(({find:a,replacement:u})=>{r[e]===a&&(r[e]=u)});else if(typeof t=="object")for(let e=0;e<r.length;e++)t.hasOwnProperty(r[e])&&(r[e]=t[r[e]]);else throw new Error("The alias must be either an object, or an array of objects.");return r.join(s.sep)}return o},l=(t,o,r)=>{i("resolving: ",`(${r})`,t);const e=v.sync(t,o);return i("resolved: ",e),{found:!0,path:e}};exports.interfaceVersion=2;exports.resolve=(t,o,r)=>{if(i(`
|
|
in file: `,o),v.isCore(t))return i("resolved: ",t),{found:!0,path:null};const{viteConfig:e}=r;if(!e)throw new Error("'viteConfig' option must be a vite config object.");const a=[".mjs",".js",".ts",".jsx",".tsx",".json"],{alias:u,extensions:h=a}=e.resolve??{},c={basedir:s.dirname(o),extensions:h};try{return l(t,c,"as is")}catch{}const n=y(u,t);if(n!==t)try{return l(n,c,"with alias")}catch{}if(s.isAbsolute(n)){const f=e.root??process.cwd(),p=s.join(s.resolve(f),n);try{return l(p,c,"absolute path")}catch{}}if(e.publicDir!==!1){const f=e.publicDir??"public",p=s.join(s.resolve(f),n);try{return l(p,c,"in public directory")}catch{}}return i("ERROR: ","Unable to resolve"),{found:!1}};exports.createViteImportResolver=t=>({interfaceVersion:3,name:"eslint-import-resolver-vite",resolve:(o,r)=>exports.resolve(o,r,t)});
|