mush-format
Version:
A javascript library that minifies pretty formatted mushcode.
32 lines (27 loc) • 883 B
JavaScript
module.exports = async (data, next) => {
// process headers
data.raw = data.raw.replace(/^#header\s+(.*)\s?=\s?(.*)/gim, (...args) => {
data.headers.push({ name: args[1], value: args[2] });
return "";
});
// process footers
data.raw = data.raw.replace(/^#footer\s+(.*)\s?=\s?(.*)/gim, (...args) => {
data.footers.push({ name: args[1], value: args[2] });
return "";
});
// Look for debug status.
for (const header of data.headers) {
if (header.name.toLowerCase() === "debug") {
data.headers.splice(data.headers.indexOf(header), 1);
return (data.debug =
header.value.toLowerCase() === "true" ? true : false);
}
}
// Check for debug blocks.
data.raw = data.raw.replace(/^#debug{([^}]+)}/gim, (...args) => {
if (data.debug) {
return arg[1];
}
});
next(null, data);
};