forked from electricessence/TypeScript.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStringBuilder.js
More file actions
90 lines (90 loc) · 2.9 KB
/
Copy pathStringBuilder.js
File metadata and controls
90 lines (90 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
* @author electricessence / https://github.com/electricessence/
* .NET Reference: http://referencesource.microsoft.com/#mscorlib/system/text/StringBuilder.cs
* Licensing: MIT https://github.com/electricessence/TypeScript.NET/blob/master/LICENSE.md
*/
///<reference path="../Disposable/IDisposable.d.ts"/>
var Types_1 = require('../Types');
var StringBuilder = (function () {
function StringBuilder() {
var initial = [];
for (var _i = 0; _i < arguments.length; _i++) {
initial[_i - 0] = arguments[_i];
}
var _ = this;
_._latest = null;
_._partArray = [];
_.appendThese(initial);
}
StringBuilder.prototype.appendSingle = function (item) {
if (item !== null && item !== undefined) {
var _ = this;
_._latest = null;
switch (typeof item) {
case Types_1.default.OBJECT:
case Types_1.default.FUNCTION:
item = item.toString();
break;
}
_._partArray.push(item);
}
};
StringBuilder.prototype.appendThese = function (items) {
var _ = this;
items.forEach(function (s) { return _.appendSingle(s); });
return _;
};
StringBuilder.prototype.append = function () {
var items = [];
for (var _i = 0; _i < arguments.length; _i++) {
items[_i - 0] = arguments[_i];
}
this.appendThese(items);
return this;
};
StringBuilder.prototype.appendLine = function () {
var items = [];
for (var _i = 0; _i < arguments.length; _i++) {
items[_i - 0] = arguments[_i];
}
this.appendLines(items);
return this;
};
StringBuilder.prototype.appendLines = function (items) {
var _ = this;
items.forEach(function (i) {
if (i !== null && i !== undefined) {
_.appendSingle(i);
_._partArray.push("\r\n");
}
});
return _;
};
Object.defineProperty(StringBuilder.prototype, "isEmpty", {
get: function () {
return this._partArray.length === 0;
},
enumerable: true,
configurable: true
});
StringBuilder.prototype.toString = function () {
var latest = this._latest;
if (!latest === null)
this._latest = latest = this._partArray.join();
return latest;
};
StringBuilder.prototype.join = function (delimiter) {
return this._partArray.join(delimiter);
};
StringBuilder.prototype.clear = function () {
this._partArray.length = 0;
this._latest = null;
};
StringBuilder.prototype.dispose = function () {
this.clear();
};
return StringBuilder;
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = StringBuilder;
//# sourceMappingURL=StringBuilder.js.map