UNPKG

esbuild-plugin-less

Version:
2 lines (1 loc) 2.35 kB
var w=Object.create;var l=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var $=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var E=(e,t)=>{for(var s in t)l(e,s,{get:t[s],enumerable:!0})},y=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of I(t))!C.call(e,r)&&r!==s&&l(e,r,{get:()=>t[r],enumerable:!(o=D(t,r))||o.enumerable});return e};var m=(e,t,s)=>(s=e!=null?w($(e)):{},y(t||!e||!e.__esModule?l(s,"default",{value:e,enumerable:!0}):s,e)),k=e=>y(l({},"__esModule",{value:!0}),e);var O={};E(O,{lessLoader:()=>W});module.exports=k(O);var b=require("fs"),x=m(require("path")),S=m(require("less"));var p=m(require("fs")),c=m(require("path")),F=/@import.*?["']([^"']+)["'].*?/,M=/@import.*?["']([^"']+)["'].*?/g,P=/(?:\/\*(?:[\s\S]*?)\*\/)|(\/\/(?:.*)$)/gm,U=[".css",".less"];function d(e,t=[],s=new Set){try{if(s.has(e))return[];s.add(e);let o=c.default.dirname(e),f=(p.default.readFileSync(e).toString("utf8").replace(P,"").match(M)||[]).map(n=>n.match(F)[1]).filter(n=>!!n).map(n=>{let i=c.default.resolve(o,c.default.extname(n)?n:`${n}.less`);if(!p.default.existsSync(i))for(let h=0;h<t.length;h++){let v=c.default.resolve(t[h],c.default.extname(n)?n:`${n}.less`);if(p.default.existsSync(v)){i=v;break}}return i});return f.reduce((n,i)=>[...n,...d(i,t,s)],f).filter(n=>U.includes(c.default.extname(n).toLowerCase()))}catch{return[]}}function R(e){let t=e.extract.filter(o=>o),s=t.length===3?t[1]:t[0];return{text:e.message,location:{namespace:"file",file:e.filename,line:e.line,column:e.column,lineText:s}}}function W(e={},t={}){return{name:"less-loader",setup:s=>{let o=t.filter;s.onResolve({filter:o||/\.less$/,namespace:"file"},async r=>{let a=(await s.resolve(r.path,{kind:r.kind,importer:r.importer,resolveDir:r.resolveDir,pluginData:r.pluginData})).path;return{path:a,watchFiles:[a,...d(a,e.paths||[])]}}),s.onLoad({filter:o||/\.less$/,namespace:"file"},async r=>{let u=await b.promises.readFile(r.path,"utf-8"),a=x.default.dirname(r.path),g=x.default.basename(r.path).endsWith(".module.less"),L=t.inline===!0?"text":g?"local-css":"css",n={filename:r.path,relativeUrls:!0,...e,paths:[...e.paths||[],a]};try{return{contents:(await S.default.render(u,n)).css,loader:L,resolveDir:a}}catch(i){return{errors:[R(i)],resolveDir:a}}})}}}0&&(module.exports={lessLoader});