UNPKG

1.87 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.8.0
2var Dumper, Inline, Utils;
3
4Utils = require('./Utils');
5
6Inline = require('./Inline');
7
8Dumper = (function() {
9 function Dumper() {}
10
11 Dumper.indentation = 4;
12
13 Dumper.prototype.dump = function(input, inline, indent, exceptionOnInvalidType, objectEncoder) {
14 var key, output, prefix, value, willBeInlined, _i, _len;
15 if (inline == null) {
16 inline = 0;
17 }
18 if (indent == null) {
19 indent = 0;
20 }
21 if (exceptionOnInvalidType == null) {
22 exceptionOnInvalidType = false;
23 }
24 if (objectEncoder == null) {
25 objectEncoder = null;
26 }
27 output = '';
28 prefix = (indent ? Utils.strRepeat(' ', indent) : '');
29 if (inline <= 0 || typeof input !== 'object' || input instanceof Date || Utils.isEmpty(input)) {
30 output += prefix + Inline.dump(input, exceptionOnInvalidType, objectEncoder);
31 } else {
32 if (input instanceof Array) {
33 for (_i = 0, _len = input.length; _i < _len; _i++) {
34 value = input[_i];
35 willBeInlined = inline - 1 <= 0 || typeof value !== 'object' || Utils.isEmpty(value);
36 output += prefix + '-' + (willBeInlined ? ' ' : "\n") + this.dump(value, inline - 1, (willBeInlined ? 0 : indent + this.indentation), exceptionOnInvalidType, objectEncoder) + (willBeInlined ? "\n" : '');
37 }
38 } else {
39 for (key in input) {
40 value = input[key];
41 willBeInlined = inline - 1 <= 0 || typeof value !== 'object' || Utils.isEmpty(value);
42 output += prefix + Inline.dump(key, exceptionOnInvalidType, objectEncoder) + ':' + (willBeInlined ? ' ' : "\n") + this.dump(value, inline - 1, (willBeInlined ? 0 : indent + this.indentation), exceptionOnInvalidType, objectEncoder) + (willBeInlined ? "\n" : '');
43 }
44 }
45 }
46 return output;
47 };
48
49 return Dumper;
50
51})();
52
53module.exports = Dumper;