Innovenergy_trunk/frontend/node_modules/dedent/dist/dedent.js

51 lines
1.2 KiB
JavaScript
Raw Normal View History

"use strict";
function dedent(strings) {
for (var _len = arguments.length, values = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
values[_key - 1] = arguments[_key];
}
var raw = undefined;
if (typeof strings === "string") {
// dedent can be used as a plain function
raw = [strings];
} else {
raw = strings.raw;
}
// first, perform interpolation
var result = "";
for (var i = 0; i < raw.length; i++) {
// join lines when there is a suppressed newline
result += raw[i].replace(/\\\n[ \t]*/g, "");
if (i < values.length) {
result += values[i];
}
}
// dedent eats leading and trailing whitespace too
result = result.trim();
// now strip indentation
var lines = result.split("\n");
var mindent = null;
lines.forEach(function (l) {
var m = l.match(/^ +/);
if (m) {
var indent = m[0].length;
if (!mindent) {
// this is the first indented line
mindent = indent;
} else {
mindent = Math.min(mindent, indent);
}
}
});
if (mindent === null) {
return result;
}return lines.map(function (l) {
return l[0] === " " ? l.slice(mindent) : l;
}).join("\n");
}
module.exports = dedent;