Fix whitespace cleanup in confs
This commit is contained in:
parent
7c12dfc0c2
commit
7276767102
|
@ -78,16 +78,30 @@ const recurse = (entriesOrObject, depth) => {
|
||||||
return retVal;
|
return retVal;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default entriesOrObject => recurse(entriesOrObject, 0)
|
export default entriesOrObject => {
|
||||||
// Cleanup triple linebreaks
|
// Generate the conf
|
||||||
.replace(/\n\n\n/g, '\n\n')
|
let conf = recurse(entriesOrObject, 0);
|
||||||
|
|
||||||
|
// Do some regex cleanup
|
||||||
|
conf = conf
|
||||||
|
// Cleanup triple linebreaks
|
||||||
|
.replace(/\n\n\n/g, '\n\n')
|
||||||
|
// Double linebreak before comment
|
||||||
|
.replace(/^([^\S\r\n]*[^#\s].*[^\n])\n([^\S\r\n]*)#/gm, '$1\n\n$2#')
|
||||||
|
// Single linebreak between comment and block
|
||||||
|
.replace(/^([^\S\r\n]*#.*)(?:\n[^\S\r\n]*)+\n([^\S\r\n]*.*{)/gm, '$1\n$2')
|
||||||
|
// Double linebreak after double comment
|
||||||
|
.replace(/^([^\S\r\n]*#.*\n[^\S\r\n]*#.*\n)([^\S\r\n]*[^#\s])/gm, '$1\n$2');
|
||||||
|
|
||||||
// Cleanup extra linebreaks between multiple close blocks
|
// Cleanup extra linebreaks between multiple close blocks
|
||||||
.replace(/^([^\S\r\n]*})(?:\n[^\S\r\n]*)+\n([^\S\r\n]*})/gm, '$1\n$2')
|
// Use a loop as this has overlapping matches
|
||||||
// Double linebreak before comment
|
let match;
|
||||||
.replace(/^([^\S\r\n]*[^#\s].*[^\n])\n([^\S\r\n]*)#/gm, '$1\n\n$2#')
|
do {
|
||||||
// Single linebreak between comment and block
|
match = /^([^\S\r\n]*})(?:\n[^\S\r\n]*)+\n([^\S\r\n]*})/m.exec(conf);
|
||||||
.replace(/^([^\S\r\n]*#.*)(?:\n[^\S\r\n]*)+\n([^\S\r\n]*.*{)/gm, '$1\n$2')
|
if (match)
|
||||||
// Double linebreak after double comment
|
conf = conf.slice(0, match.index) + match[1] + '\n' + match[2] + conf.slice(match.index + match[0].length);
|
||||||
.replace(/^([^\S\r\n]*#.*\n[^\S\r\n]*#.*\n)([^\S\r\n]*[^#\s])/gm, '$1\n$2')
|
} while (match);
|
||||||
|
|
||||||
// Remove initial & trailing whitespace
|
// Remove initial & trailing whitespace
|
||||||
.trim();
|
return conf.trim();
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue