You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
674 B
JavaScript
29 lines
674 B
JavaScript
6 years ago
|
'use strict';
|
||
|
|
||
|
function spacerStr (len) {
|
||
|
var str = '';
|
||
|
for(var i = 0; i < len; i += 1) {
|
||
|
str += ' ';
|
||
|
}
|
||
|
return str;
|
||
|
}
|
||
|
|
||
|
function StringWriter (config) {
|
||
|
this.lines = [];
|
||
|
this.lineSeparator = config.lineSeparator;
|
||
|
this.regex = new RegExp(this.lineSeparator, 'g');
|
||
|
this.spacer = spacerStr(config.outputOffset);
|
||
|
}
|
||
|
|
||
|
StringWriter.prototype.write = function (str) {
|
||
|
this.lines.push(this.spacer + str.replace(this.regex, this.lineSeparator + this.spacer));
|
||
|
};
|
||
|
|
||
|
StringWriter.prototype.toString = function () {
|
||
|
var str = this.lines.join(this.lineSeparator);
|
||
|
this.lines.length = 0;
|
||
|
return str;
|
||
|
};
|
||
|
|
||
|
module.exports = StringWriter;
|