@glimmer/util
Version:
Common utilities used in Glimmer
35 lines (26 loc) • 3.37 kB
JavaScript
export function strip(strings, ...args) {
let out = '';
for (let i = 0; i < strings.length; i++) {
let string = strings[i];
let dynamic = args[i] !== undefined ? String(args[i]) : '';
out += `${string}${dynamic}`;
}
let lines = out.split('\n');
while (lines.length && lines[0].match(/^\s*$/)) {
lines.shift();
}
while (lines.length && lines[lines.length - 1].match(/^\s*$/)) {
lines.pop();
}
let min = Infinity;
for (let line of lines) {
let leading = line.match(/^\s*/)[0].length;
min = Math.min(min, leading);
}
let stripped = [];
for (let line of lines) {
stripped.push(line.slice(min));
}
return stripped.join('\n');
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3V0aWwvbGliL3N0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFNLFNBQVUsS0FBVixDQUFnQixPQUFoQixFQUErQyxHQUFHLElBQWxELEVBQWlFO0FBQ3JFLE1BQUksR0FBRyxHQUFHLEVBQVY7O0FBQ0EsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFiLEVBQWdCLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBNUIsRUFBb0MsQ0FBQyxFQUFyQyxFQUF5QztBQUN2QyxRQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBRCxDQUFwQjtBQUNBLFFBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFELENBQUosS0FBWSxTQUFaLEdBQXdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBRCxDQUFMLENBQTlCLEdBQTBDLEVBQXhEO0FBRUEsSUFBQSxHQUFHLElBQUksR0FBRyxNQUFNLEdBQUcsT0FBTyxFQUExQjtBQUNEOztBQUVELE1BQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFKLENBQVUsSUFBVixDQUFaOztBQUVBLFNBQU8sS0FBSyxDQUFDLE1BQU4sSUFBZ0IsS0FBSyxDQUFDLENBQUQsQ0FBTCxDQUFTLEtBQVQsQ0FBZSxPQUFmLENBQXZCLEVBQWdEO0FBQzlDLElBQUEsS0FBSyxDQUFDLEtBQU47QUFDRDs7QUFFRCxTQUFPLEtBQUssQ0FBQyxNQUFOLElBQWdCLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTixHQUFlLENBQWhCLENBQUwsQ0FBd0IsS0FBeEIsQ0FBOEIsT0FBOUIsQ0FBdkIsRUFBK0Q7QUFDN0QsSUFBQSxLQUFLLENBQUMsR0FBTjtBQUNEOztBQUVELE1BQUksR0FBRyxHQUFHLFFBQVY7O0FBRUEsT0FBSyxJQUFJLElBQVQsSUFBaUIsS0FBakIsRUFBd0I7QUFDdEIsUUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUwsQ0FBVyxNQUFYLEVBQW9CLENBQXBCLEVBQXVCLE1BQXJDO0FBRUEsSUFBQSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUwsQ0FBUyxHQUFULEVBQWMsT0FBZCxDQUFOO0FBQ0Q7O0FBRUQsTUFBSSxRQUFRLEdBQUcsRUFBZjs7QUFFQSxPQUFLLElBQUksSUFBVCxJQUFpQixLQUFqQixFQUF3QjtBQUN0QixJQUFBLFFBQVEsQ0FBQyxJQUFULENBQWMsSUFBSSxDQUFDLEtBQUwsQ0FBVyxHQUFYLENBQWQ7QUFDRDs7QUFFRCxTQUFPLFFBQVEsQ0FBQyxJQUFULENBQWMsSUFBZCxDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc3RyaXAoc3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXksIC4uLmFyZ3M6IHVua25vd25bXSkge1xuICBsZXQgb3V0ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5ncy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBzdHJpbmcgPSBzdHJpbmdzW2ldO1xuICAgIGxldCBkeW5hbWljID0gYXJnc1tpXSAhPT0gdW5kZWZpbmVkID8gU3RyaW5nKGFyZ3NbaV0pIDogJyc7XG5cbiAgICBvdXQgKz0gYCR7c3RyaW5nfSR7ZHluYW1pY31gO1xuICB9XG5cbiAgbGV0IGxpbmVzID0gb3V0LnNwbGl0KCdcXG4nKTtcblxuICB3aGlsZSAobGluZXMubGVuZ3RoICYmIGxpbmVzWzBdLm1hdGNoKC9eXFxzKiQvKSkge1xuICAgIGxpbmVzLnNoaWZ0KCk7XG4gIH1cblxuICB3aGlsZSAobGluZXMubGVuZ3RoICYmIGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLm1hdGNoKC9eXFxzKiQvKSkge1xuICAgIGxpbmVzLnBvcCgpO1xuICB9XG5cbiAgbGV0IG1pbiA9IEluZmluaXR5O1xuXG4gIGZvciAobGV0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBsZXQgbGVhZGluZyA9IGxpbmUubWF0Y2goL15cXHMqLykhWzBdLmxlbmd0aDtcblxuICAgIG1pbiA9IE1hdGgubWluKG1pbiwgbGVhZGluZyk7XG4gIH1cblxuICBsZXQgc3RyaXBwZWQgPSBbXTtcblxuICBmb3IgKGxldCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgc3RyaXBwZWQucHVzaChsaW5lLnNsaWNlKG1pbikpO1xuICB9XG5cbiAgcmV0dXJuIHN0cmlwcGVkLmpvaW4oJ1xcbicpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==