Skip to content

Commit fc3d3e5

Browse files
committed
Added autoresolve functionality for scss files
1 parent a922a42 commit fc3d3e5

File tree

4 files changed

+42
-31
lines changed

4 files changed

+42
-31
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.3.1] - 2020-09-10
11+
12+
### Added
13+
14+
- `autoresolve` resolution functionality for scss files
15+
1016
## [0.3.0] - 2020-09-10
1117

1218
### Added

cssmonster.js

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -237,33 +237,25 @@ class CSSMonster {
237237
for (let i = 0; i < files.length; i++) {
238238
const filename = files[i].replace(/(.*\/)|(.*\\)/, "");
239239
if (!fs.existsSync(`${this.tempDir}/${filename}`)) {
240-
fs.copyFile(files[i], `${this.tempDir}/${filename}`, (error) => {
241-
if (error) {
242-
reject(error);
243-
}
244-
movedFiles.push(`${this.tempDir}/${filename}`);
245-
count++;
246-
if (count === files.length) {
247-
resolve(movedFiles);
248-
}
249-
});
240+
fs.copyFileSync(files[i], `${this.tempDir}/${filename}`);
241+
movedFiles.push(`${this.tempDir}/${filename}`);
242+
count++;
243+
if (count === files.length) {
244+
resolve(movedFiles);
245+
}
250246
} else {
251247
if (this.config.autoresolve) {
252248
const newFileData = fs.readFileSync(files[i]).toString();
253249
let tempFileData = fs.readFileSync(`${this.tempDir}/${filename}`).toString();
254250
tempFileData += "\n";
255251
tempFileData += newFileData;
256-
fs.writeFile(`${this.tempDir}/${filename}`, tempFileData, (error) => {
257-
if (error) {
258-
reject(error);
259-
}
260-
count++;
261-
if (count === files.length) {
262-
resolve(movedFiles);
263-
}
264-
});
252+
fs.writeFileSync(`${this.tempDir}/${filename}`, tempFileData);
253+
count++;
254+
if (count === files.length) {
255+
resolve(movedFiles);
256+
}
265257
} else {
266-
reject(`Two files have the same name "${filename}" rename one of the files or enable the CSSMonster autoresolve setting.`);
258+
reject(`Two css files have the same name "${filename}". Rename one of the files or enable the CSSMonster autoresolve setting.`);
267259
}
268260
}
269261
}
@@ -312,6 +304,7 @@ class CSSMonster {
312304
resolve(files);
313305
}
314306
const compiledFiles = [];
307+
let count = 0;
315308
for (let i = 0; i < files.length; i++) {
316309
const file = files[i];
317310
sass.render(
@@ -327,15 +320,27 @@ class CSSMonster {
327320
let fileName = result.stats.entry.replace(/(.*\/)|(.*\\)/, "").replace(/(.scss)$/g, "");
328321
if (fileName) {
329322
const newFile = `${this.tempDir}/${fileName}.css`;
330-
fs.writeFile(newFile, result.css.toString(), (error) => {
331-
if (error) {
332-
reject("Something went wrong saving the file" + error);
333-
}
323+
if (!fs.existsSync(newFile)) {
324+
fs.writeFileSync(newFile, result.css.toString());
334325
compiledFiles.push(newFile);
335-
if (compiledFiles.length === files.length) {
326+
count++;
327+
if (count === files.length) {
336328
resolve(compiledFiles);
337329
}
338-
});
330+
} else {
331+
if (this.config.autoresolve) {
332+
let tempFileData = fs.readFileSync(newFile).toString();
333+
tempFileData += "\n";
334+
tempFileData += result.css.toString();
335+
fs.writeFileSync(newFile, tempFileData);
336+
count++;
337+
if (count === files.length) {
338+
resolve(compiledFiles);
339+
}
340+
} else {
341+
reject(`Two scss files have the same name "${fileName}". Rename one of the files or enable the CSSMonster autoresolve setting.`);
342+
}
343+
}
339344
} else {
340345
reject("Something went wrong with the file name of " + result.stats.entry);
341346
}

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cssmonster",
3-
"version": "0.3.0",
3+
"version": "0.3.1",
44
"description": "CSSMonster helps developers manage normalize.css, node-sass, and purgeCSS with ease.",
55
"main": "cssmonster.js",
66
"author": "Kyle Andrews",

0 commit comments

Comments
 (0)