Skip to content

Commit

Permalink
Merge branch 'v0.2.4'
Browse files Browse the repository at this point in the history
  • Loading branch information
Amphiluke committed Aug 4, 2019
2 parents 7156642 + 7c9b920 commit 771713d
Show file tree
Hide file tree
Showing 6 changed files with 184 additions and 216 deletions.
54 changes: 25 additions & 29 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,42 +40,38 @@ let flat = Array.prototype.flat ? list => list.flat() : list => [].concat(...lis
async function getImports(entries) {
let commentRE = /\/\*[\s\S]*?\*\/|\/\/\s*@import[^;]+;/g;
let importRE = /(?<=@import\s[^"']*["']).+?(?=['"]\s*;)/g;
let promises = entries.map(entry =>
readFile(entry)
.then(data => {
data = data.replace(commentRE, "");
let dir = path.dirname(entry);
return (data.match(importRE) || []).map(importPath => {
importPath = path.join(dir, importPath);
if (!path.extname(importPath)) {
importPath += ".less";
}
return importPath;
});
})
);
let promises = entries.map(async entry => {
let data = await readFile(entry);
data = data.replace(commentRE, "");
let dir = path.dirname(entry);
return (data.match(importRE) || []).map(importPath => {
importPath = path.join(dir, importPath);
if (!path.extname(importPath)) {
importPath += ".less";
}
return importPath;
});
});
let importLists = await Promise.all(promises);
return new Set(flat(importLists));
}

function compile(entries, lessOptions) {
let less = require("less");
let inlineMap = lessOptions.sourceMap && lessOptions.sourceMap.sourceMapFileInline;
let promises = entries.map(entry =>
readFile(entry)
.then(data => less.render(data, {
...lessOptions,
filename: entry
}))
.then(({css, map}) => {
let writeCSS = writeFile(setExt(entry, ".css"), css);
if (!map || inlineMap) {
return writeCSS;
}
let writeMap = writeFile(setExt(entry, ".css.map"), map);
return Promise.all([writeCSS, writeMap]);
})
);
let promises = entries.map(async entry => {
let data = await readFile(entry);
let {css, map} = await less.render(data, {
...lessOptions,
filename: entry
});
let writeCSS = writeFile(setExt(entry, ".css"), css);
if (!map || inlineMap) {
return writeCSS;
}
let writeMap = writeFile(setExt(entry, ".css.map"), map);
return Promise.all([writeCSS, writeMap]);
});
return Promise.all(promises);
}

Expand Down
Loading

0 comments on commit 771713d

Please sign in to comment.