'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* strips indentation from a template literal
* @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'
* @return {Object} - a TemplateTag transformer
*/
var stripIndentTransformer = function stripIndentTransformer() {
var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';
return {
onEndResult: function onEndResult(endResult) {
if (type === 'initial') {
// remove the shortest leading indentation from each line
var match = endResult.match(/^[^\S\n]*(?=\S)/gm);
var indent = match && Math.min.apply(Math, (0, _toConsumableArray3.default)(match.map(function (el) {
return el.length;
})));
if (indent) {
var regexp = new RegExp('^.{' + indent + '}', 'gm');
return endResult.replace(regexp, '');
}
return endResult;
}
if (type === 'all') {
// remove all indentation from each line
return endResult.replace(/^[^\S\n]+/gm, '');
}
throw new Error('Unknown type: ' + type);
}
};
};
exports.default = stripIndentTransformer;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudFRyYW5zZm9ybWVyL3N0cmlwSW5kZW50VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsic3RyaXBJbmRlbnRUcmFuc2Zvcm1lciIsInR5cGUiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsIm1hdGNoIiwiaW5kZW50IiwiTWF0aCIsIm1pbiIsIm1hcCIsImVsIiwibGVuZ3RoIiwicmVnZXhwIiwiUmVnRXhwIiwicmVwbGFjZSIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7QUFLQSxJQUFNQSx5QkFBeUIsU0FBekJBLHNCQUF5QjtBQUFBLE1BQUNDLElBQUQsdUVBQVEsU0FBUjtBQUFBLFNBQXVCO0FBQ3BEQyxlQURvRCx1QkFDeENDLFNBRHdDLEVBQzdCO0FBQ3JCLFVBQUlGLFNBQVMsU0FBYixFQUF3QjtBQUN0QjtBQUNBLFlBQU1HLFFBQVFELFVBQVVDLEtBQVYsQ0FBZ0IsbUJBQWhCLENBQWQ7QUFDQSxZQUFNQyxTQUFTRCxTQUFTRSxLQUFLQyxHQUFMLDhDQUFZSCxNQUFNSSxHQUFOLENBQVU7QUFBQSxpQkFBTUMsR0FBR0MsTUFBVDtBQUFBLFNBQVYsQ0FBWixFQUF4QjtBQUNBLFlBQUlMLE1BQUosRUFBWTtBQUNWLGNBQU1NLFNBQVMsSUFBSUMsTUFBSixTQUFpQlAsTUFBakIsUUFBNEIsSUFBNUIsQ0FBZjtBQUNBLGlCQUFPRixVQUFVVSxPQUFWLENBQWtCRixNQUFsQixFQUEwQixFQUExQixDQUFQO0FBQ0Q7QUFDRCxlQUFPUixTQUFQO0FBQ0Q7QUFDRCxVQUFJRixTQUFTLEtBQWIsRUFBb0I7QUFDbEI7QUFDQSxlQUFPRSxVQUFVVSxPQUFWLENBQWtCLGFBQWxCLEVBQWlDLEVBQWpDLENBQVA7QUFDRDtBQUNELFlBQU0sSUFBSUMsS0FBSixvQkFBMkJiLElBQTNCLENBQU47QUFDRDtBQWpCbUQsR0FBdkI7QUFBQSxDQUEvQjs7a0JBb0JlRCxzQiIsImZpbGUiOiJzdHJpcEluZGVudFRyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBzdHJpcHMgaW5kZW50YXRpb24gZnJvbSBhIHRlbXBsYXRlIGxpdGVyYWxcbiAqIEBwYXJhbSAge1N0cmluZ30gdHlwZSA9ICdpbml0aWFsJyAtIHdoZXRoZXIgdG8gcmVtb3ZlIGFsbCBpbmRlbnRhdGlvbiBvciBqdXN0IGxlYWRpbmcgaW5kZW50YXRpb24uIGNhbiBiZSAnYWxsJyBvciAnaW5pdGlhbCdcbiAqIEByZXR1cm4ge09iamVjdH0gICAgICAgICAgICAgICAgICAtIGEgVGVtcGxhdGVUYWcgdHJhbnNmb3JtZXJcbiAqL1xuY29uc3Qgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciA9ICh0eXBlID0gJ2luaXRpYWwnKSA9PiAoe1xuICBvbkVuZFJlc3VsdChlbmRSZXN1bHQpIHtcbiAgICBpZiAodHlwZSA9PT0gJ2luaXRpYWwnKSB7XG4gICAgICAvLyByZW1vdmUgdGhlIHNob3J0ZXN0IGxlYWRpbmcgaW5kZW50YXRpb24gZnJvbSBlYWNoIGxpbmVcbiAgICAgIGNvbnN0IG1hdGNoID0gZW5kUmVzdWx0Lm1hdGNoKC9eW15cXFNcXG5dKig/PVxcUykvZ20pO1xuICAgICAgY29uc3QgaW5kZW50ID0gbWF0Y2ggJiYgTWF0aC5taW4oLi4ubWF0Y2gubWFwKGVsID0+IGVsLmxlbmd0aCkpO1xuICAgICAgaWYgKGluZGVudCkge1xuICAgICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKGBeLnske2luZGVudH19YCwgJ2dtJyk7XG4gICAgICAgIHJldHVybiBlbmRSZXN1bHQucmVwbGFjZShyZWdleHAsICcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbmRSZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnYWxsJykge1xuICAgICAgLy8gcmVtb3ZlIGFsbCBpbmRlbnRhdGlvbiBmcm9tIGVhY2ggbGluZVxuICAgICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKC9eW15cXFNcXG5dKy9nbSwgJycpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZTogJHt0eXBlfWApO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmlwSW5kZW50VHJhbnNmb3JtZXI7XG4iXX0=