treedoc 0.3.48 → 0.3.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Bookmark.js +1 -1
- package/lib/Bookmark.js.map +1 -1
- package/lib/TD.d.ts +2 -2
- package/lib/TD.js +8 -6
- package/lib/TD.js.map +1 -1
- package/lib/TDNode.d.ts +1 -1
- package/lib/TDNode.js +11 -9
- package/lib/TDNode.js.map +1 -1
- package/lib/TDNodeProxyHandler.js +1 -1
- package/lib/TDNodeProxyHandler.js.map +1 -1
- package/lib/TDPath.js +1 -1
- package/lib/TDPath.js.map +1 -1
- package/lib/TreeDoc.js +4 -4
- package/lib/TreeDoc.js.map +1 -1
- package/lib/core/CharSource.js +1 -1
- package/lib/core/CharSource.js.map +1 -1
- package/lib/core/ClassUtil.js.map +1 -1
- package/lib/core/EOFRuntimeException.js +2 -0
- package/lib/core/EOFRuntimeException.js.map +1 -1
- package/lib/core/LangUtil.d.ts +8 -8
- package/lib/core/LangUtil.js +11 -9
- package/lib/core/LangUtil.js.map +1 -1
- package/lib/core/ParseRuntimeException.js +2 -0
- package/lib/core/ParseRuntimeException.js.map +1 -1
- package/lib/core/StringBuilder.js.map +1 -1
- package/lib/core/StringCharSource.js +2 -0
- package/lib/core/StringCharSource.js.map +1 -1
- package/lib/core/StringUtil.js.map +1 -1
- package/lib/csv/CSV.spec.js +3 -3
- package/lib/csv/CSV.spec.js.map +1 -1
- package/lib/csv/CSVParser.js +12 -6
- package/lib/csv/CSVParser.js.map +1 -1
- package/lib/csv/CSVWriter.js.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/json/JSONPointer.js.map +1 -1
- package/lib/json/NodeFilter.js +12 -8
- package/lib/json/NodeFilter.js.map +1 -1
- package/lib/json/TDJSONOption.js.map +1 -1
- package/lib/json/TDJSONParser.js +5 -5
- package/lib/json/TDJSONParser.js.map +1 -1
- package/lib/json/TDJSONParserOption.js +2 -0
- package/lib/json/TDJSONParserOption.js.map +1 -1
- package/lib/json/TDJSONWriter.js.map +1 -1
- package/lib/json/TDJSONWriterOption.js +3 -1
- package/lib/json/TDJSONWriterOption.js.map +1 -1
- package/lib/objcoder/TDObjectCoder.d.ts +1 -1
- package/lib/objcoder/TDObjectCoder.js +2 -2
- package/lib/objcoder/TDObjectCoder.js.map +1 -1
- package/lib/src/Bookmark.d.ts +9 -0
- package/lib/src/Bookmark.js +31 -0
- package/lib/src/Bookmark.js.map +1 -0
- package/lib/src/TD.d.ts +20 -0
- package/lib/src/TD.js +53 -0
- package/lib/src/TD.js.map +1 -0
- package/lib/src/TDNode.d.ts +84 -0
- package/lib/src/TDNode.js +378 -0
- package/lib/src/TDNode.js.map +1 -0
- package/lib/src/TDNodeProxyHandler.d.ts +7 -0
- package/lib/src/TDNodeProxyHandler.js +50 -0
- package/lib/src/TDNodeProxyHandler.js.map +1 -0
- package/lib/src/TDPath.d.ts +31 -0
- package/lib/src/TDPath.js +87 -0
- package/lib/src/TDPath.js.map +1 -0
- package/lib/src/TreeDoc.d.ts +27 -0
- package/lib/src/TreeDoc.js +93 -0
- package/lib/src/TreeDoc.js.map +1 -0
- package/lib/src/__tests__/TD.spec.d.ts +1 -0
- package/lib/src/__tests__/TD.spec.js +90 -0
- package/lib/src/__tests__/TD.spec.js.map +1 -0
- package/lib/src/__tests__/TDNode.spec.d.ts +1 -0
- package/lib/src/__tests__/TDNode.spec.js +49 -0
- package/lib/src/__tests__/TDNode.spec.js.map +1 -0
- package/lib/src/__tests__/TDPath.spec.d.ts +1 -0
- package/lib/src/__tests__/TDPath.spec.js +15 -0
- package/lib/src/__tests__/TDPath.spec.js.map +1 -0
- package/lib/src/core/Appendable.d.ts +3 -0
- package/lib/src/core/Appendable.js +3 -0
- package/lib/src/core/Appendable.js.map +1 -0
- package/lib/src/core/CharSource.d.ts +47 -0
- package/lib/src/core/CharSource.js +199 -0
- package/lib/src/core/CharSource.js.map +1 -0
- package/lib/src/core/ClassUtil.d.ts +9 -0
- package/lib/src/core/ClassUtil.js +34 -0
- package/lib/src/core/ClassUtil.js.map +1 -0
- package/lib/src/core/EOFRuntimeException.d.ts +5 -0
- package/lib/src/core/EOFRuntimeException.js +32 -0
- package/lib/src/core/EOFRuntimeException.js.map +1 -0
- package/lib/src/core/LangUtil.d.ts +38 -0
- package/lib/src/core/LangUtil.js +110 -0
- package/lib/src/core/LangUtil.js.map +1 -0
- package/lib/src/core/ListUtil.d.ts +19 -0
- package/lib/src/core/ListUtil.js +38 -0
- package/lib/src/core/ListUtil.js.map +1 -0
- package/lib/src/core/ParseRuntimeException.d.ts +11 -0
- package/lib/src/core/ParseRuntimeException.js +40 -0
- package/lib/src/core/ParseRuntimeException.js.map +1 -0
- package/lib/src/core/StringBuilder.d.ts +9 -0
- package/lib/src/core/StringBuilder.js +30 -0
- package/lib/src/core/StringBuilder.js.map +1 -0
- package/lib/src/core/StringCharSource.d.ts +11 -0
- package/lib/src/core/StringCharSource.js +60 -0
- package/lib/src/core/StringCharSource.js.map +1 -0
- package/lib/src/core/StringUtil.d.ts +16 -0
- package/lib/src/core/StringUtil.js +75 -0
- package/lib/src/core/StringUtil.js.map +1 -0
- package/lib/src/core/__test__/ClassUtil.spec.d.ts +1 -0
- package/lib/src/core/__test__/ClassUtil.spec.js +16 -0
- package/lib/src/core/__test__/ClassUtil.spec.js.map +1 -0
- package/lib/src/core/__test__/StringCharSource.spec.d.ts +1 -0
- package/lib/src/core/__test__/StringCharSource.spec.js +18 -0
- package/lib/src/core/__test__/StringCharSource.spec.js.map +1 -0
- package/lib/src/core/__test__/StringUtil.spec.d.ts +1 -0
- package/lib/src/core/__test__/StringUtil.spec.js +23 -0
- package/lib/src/core/__test__/StringUtil.spec.js.map +1 -0
- package/lib/src/csv/CSV.spec.d.ts +1 -0
- package/lib/src/csv/CSV.spec.js +45 -0
- package/lib/src/csv/CSV.spec.js.map +1 -0
- package/lib/src/csv/CSVOption.d.ts +12 -0
- package/lib/src/csv/CSVOption.js +23 -0
- package/lib/src/csv/CSVOption.js.map +1 -0
- package/lib/src/csv/CSVParser.d.ts +13 -0
- package/lib/src/csv/CSVParser.js +133 -0
- package/lib/src/csv/CSVParser.js.map +1 -0
- package/lib/src/csv/CSVWriter.d.ts +14 -0
- package/lib/src/csv/CSVWriter.js +77 -0
- package/lib/src/csv/CSVWriter.js.map +1 -0
- package/lib/src/index.d.ts +21 -0
- package/lib/src/index.js +34 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/json/JSONPointer.d.ts +30 -0
- package/lib/src/json/JSONPointer.js +87 -0
- package/lib/src/json/JSONPointer.js.map +1 -0
- package/lib/src/json/NodeFilter.d.ts +25 -0
- package/lib/src/json/NodeFilter.js +115 -0
- package/lib/src/json/NodeFilter.js.map +1 -0
- package/lib/src/json/TDJSONOption.d.ts +26 -0
- package/lib/src/json/TDJSONOption.js +56 -0
- package/lib/src/json/TDJSONOption.js.map +1 -0
- package/lib/src/json/TDJSONParser.d.ts +19 -0
- package/lib/src/json/TDJSONParser.js +233 -0
- package/lib/src/json/TDJSONParser.js.map +1 -0
- package/lib/src/json/TDJSONParserOption.d.ts +24 -0
- package/lib/src/json/TDJSONParserOption.js +50 -0
- package/lib/src/json/TDJSONParserOption.js.map +1 -0
- package/lib/src/json/TDJSONWriter.d.ts +17 -0
- package/lib/src/json/TDJSONWriter.js +143 -0
- package/lib/src/json/TDJSONWriter.js.map +1 -0
- package/lib/src/json/TDJSONWriterOption.d.ts +36 -0
- package/lib/src/json/TDJSONWriterOption.js +88 -0
- package/lib/src/json/TDJSONWriterOption.js.map +1 -0
- package/lib/src/json/__test__/CharSource.spec.d.ts +1 -0
- package/lib/src/json/__test__/CharSource.spec.js +58 -0
- package/lib/src/json/__test__/CharSource.spec.js.map +1 -0
- package/lib/src/json/__test__/JSONPointer.spec.d.ts +1 -0
- package/lib/src/json/__test__/JSONPointer.spec.js +16 -0
- package/lib/src/json/__test__/JSONPointer.spec.js.map +1 -0
- package/lib/src/json/__test__/TDJsonParser.spec.d.ts +1 -0
- package/lib/src/json/__test__/TDJsonParser.spec.js +183 -0
- package/lib/src/json/__test__/TDJsonParser.spec.js.map +1 -0
- package/lib/src/json/__test__/TDJsonWriter.spec.d.ts +1 -0
- package/lib/src/json/__test__/TDJsonWriter.spec.js +71 -0
- package/lib/src/json/__test__/TDJsonWriter.spec.js.map +1 -0
- package/lib/src/json/__test__/TDNode.spec.d.ts +1 -0
- package/lib/src/json/__test__/TDNode.spec.js +17 -0
- package/lib/src/json/__test__/TDNode.spec.js.map +1 -0
- package/lib/src/json/__test__/TestData.d.ts +7 -0
- package/lib/src/json/__test__/TestData.js +15 -0
- package/lib/src/json/__test__/TestData.js.map +1 -0
- package/lib/src/objcoder/CustomCoder.d.ts +7 -0
- package/lib/src/objcoder/CustomCoder.js +27 -0
- package/lib/src/objcoder/CustomCoder.js.map +1 -0
- package/lib/src/objcoder/TDObjectCoder.d.ts +35 -0
- package/lib/src/objcoder/TDObjectCoder.js +141 -0
- package/lib/src/objcoder/TDObjectCoder.js.map +1 -0
- package/lib/vitest.config.d.ts +2 -0
- package/lib/vitest.config.js +10 -0
- package/lib/vitest.config.js.map +1 -0
- package/package.json +10 -12
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TDJSONWriter = void 0;
|
|
4
|
+
var TDJSONWriterOption_1 = require("./TDJSONWriterOption");
|
|
5
|
+
var TDNode_1 = require("../TDNode");
|
|
6
|
+
var StringBuilder_1 = require("../core/StringBuilder");
|
|
7
|
+
var StringUtil_1 = require("../core/StringUtil");
|
|
8
|
+
var LangUtil_1 = require("../core/LangUtil");
|
|
9
|
+
var NON_STRING = TDJSONWriterOption_1.TextType.NON_STRING;
|
|
10
|
+
var STRING = TDJSONWriterOption_1.TextType.STRING;
|
|
11
|
+
var KEY = TDJSONWriterOption_1.TextType.KEY;
|
|
12
|
+
var OPERATOR = TDJSONWriterOption_1.TextType.OPERATOR;
|
|
13
|
+
var TDJSONWriter = /** @class */ (function () {
|
|
14
|
+
function TDJSONWriter() {
|
|
15
|
+
}
|
|
16
|
+
TDJSONWriter.get = function () {
|
|
17
|
+
return TDJSONWriter.instance;
|
|
18
|
+
};
|
|
19
|
+
TDJSONWriter.writeAsString = function (node, opt) {
|
|
20
|
+
if (opt === void 0) { opt = {}; }
|
|
21
|
+
return TDJSONWriter.get().writeAsString(node, opt);
|
|
22
|
+
};
|
|
23
|
+
TDJSONWriter.write = function (out, node, opt, indentStr) {
|
|
24
|
+
if (opt === void 0) { opt = {}; }
|
|
25
|
+
if (indentStr === void 0) { indentStr = ''; }
|
|
26
|
+
return TDJSONWriter.get().write(out, node, opt, (indentStr = ''));
|
|
27
|
+
};
|
|
28
|
+
TDJSONWriter.prototype.writeAsString = function (node, opt) {
|
|
29
|
+
if (opt === void 0) { opt = {}; }
|
|
30
|
+
var out = new StringBuilder_1.StringBuilder();
|
|
31
|
+
this.write(out, node, opt);
|
|
32
|
+
return out.toString();
|
|
33
|
+
};
|
|
34
|
+
TDJSONWriter.prototype.write = function (out, node, option, indentStr) {
|
|
35
|
+
if (option === void 0) { option = {}; }
|
|
36
|
+
if (indentStr === void 0) { indentStr = ''; }
|
|
37
|
+
var opt = option instanceof TDJSONWriterOption_1.TDJSONWriterOption ? option : LangUtil_1.LangUtil.mergeDeep(new TDJSONWriterOption_1.TDJSONWriterOption(), option);
|
|
38
|
+
opt.buildTerms();
|
|
39
|
+
// console.log("TDJSONWriter.write: opt=", opt);
|
|
40
|
+
if (!node)
|
|
41
|
+
return out.append(opt.deco("null", NON_STRING));
|
|
42
|
+
var childIndentStr = '';
|
|
43
|
+
if (opt.hasIndent())
|
|
44
|
+
childIndentStr = indentStr + opt.indentStr;
|
|
45
|
+
switch (node.type) {
|
|
46
|
+
case TDNode_1.TDNodeType.MAP:
|
|
47
|
+
return this.writeMap(out, node, opt, indentStr, childIndentStr);
|
|
48
|
+
case TDNode_1.TDNodeType.ARRAY:
|
|
49
|
+
return this.writeArray(out, node, opt, indentStr, childIndentStr);
|
|
50
|
+
default:
|
|
51
|
+
return this.writeSimple(out, node, opt);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
TDJSONWriter.prototype.writeMap = function (out, node, opt, indentStr, childIndentStr) {
|
|
55
|
+
if (opt.useTypeWrapper) {
|
|
56
|
+
var type = node.getChildValue(opt.KEY_TYPE);
|
|
57
|
+
if (type != null)
|
|
58
|
+
out.append(opt.deco(type, TDJSONWriterOption_1.TextType.TYPE));
|
|
59
|
+
}
|
|
60
|
+
out.append(opt.deco(opt.deliminatorObjectStart.substring(0, 1), OPERATOR));
|
|
61
|
+
if (node.children != null) {
|
|
62
|
+
for (var i = 0; i < node.getChildrenSize(); i++) {
|
|
63
|
+
var cn = opt.applyFilters(node.children[i]);
|
|
64
|
+
if (cn == null || (opt.useTypeWrapper && cn.key === opt.KEY_TYPE))
|
|
65
|
+
continue;
|
|
66
|
+
if (opt.hasIndent()) {
|
|
67
|
+
out.append('\n');
|
|
68
|
+
out.append(childIndentStr);
|
|
69
|
+
}
|
|
70
|
+
// Quote the key in case it's not valid java identifier so that it can be parsed back in Javascript
|
|
71
|
+
this.writeQuotedString(out, cn.key, opt, KEY, !StringUtil_1.StringUtil.isJavaIdentifier(cn.key) || opt.alwaysQuoteKey);
|
|
72
|
+
out.append(opt.deco(opt.deliminatorKey, OPERATOR));
|
|
73
|
+
this.write(out, cn, opt, childIndentStr);
|
|
74
|
+
if (i < node.getChildrenSize() - 1)
|
|
75
|
+
// No need "," for last entry
|
|
76
|
+
out.append(opt.deco(opt.deliminatorValue, OPERATOR));
|
|
77
|
+
}
|
|
78
|
+
if (opt.hasIndent() && node.hasChildren()) {
|
|
79
|
+
out.append('\n');
|
|
80
|
+
out.append(indentStr);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return out.append(opt.deco(opt.deliminatorObjectEnd.substring(0, 1), OPERATOR));
|
|
84
|
+
};
|
|
85
|
+
TDJSONWriter.prototype.writeArray = function (out, node, opt, indentStr, childIndentStr) {
|
|
86
|
+
out.append(opt.deco(opt.deliminatorArrayStart.substring(0, 1), OPERATOR));
|
|
87
|
+
if (node.children != null) {
|
|
88
|
+
for (var i = 0; i < node.getChildrenSize(); i++) {
|
|
89
|
+
var cn = node.children[i];
|
|
90
|
+
if (opt.hasIndent()) {
|
|
91
|
+
out.append('\n');
|
|
92
|
+
out.append(childIndentStr);
|
|
93
|
+
}
|
|
94
|
+
this.write(out, cn, opt, childIndentStr);
|
|
95
|
+
if (i < node.getChildrenSize() - 1)
|
|
96
|
+
// No need "," for last entry
|
|
97
|
+
out.append(opt.deco(opt.deliminatorValue, OPERATOR));
|
|
98
|
+
}
|
|
99
|
+
if (opt.hasIndent() && node.children.length > 0) {
|
|
100
|
+
out.append('\n');
|
|
101
|
+
out.append(indentStr);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return out.append(opt.deco(opt.deliminatorArrayEnd.substring(0, 1), OPERATOR));
|
|
105
|
+
};
|
|
106
|
+
TDJSONWriter.prototype.writeSimple = function (out, node, opt) {
|
|
107
|
+
var value = node.value;
|
|
108
|
+
return typeof value === 'string'
|
|
109
|
+
? this.writeQuotedString(out, value, opt, STRING, opt.alwaysQuoteValue)
|
|
110
|
+
: out.append(opt.deco("" + value, NON_STRING));
|
|
111
|
+
};
|
|
112
|
+
TDJSONWriter.prototype.writeQuotedString = function (out, str, opt, type, alwaysQuote) {
|
|
113
|
+
var quoteChar = this.determineQuoteChar(str, opt, alwaysQuote);
|
|
114
|
+
return quoteChar === '' ? out.append(opt.deco(str, type)) : out.append(quoteChar)
|
|
115
|
+
.append(opt.deco(StringUtil_1.StringUtil.cEscape(str, quoteChar), type))
|
|
116
|
+
.append(quoteChar);
|
|
117
|
+
};
|
|
118
|
+
/** return '' indicate quote is not necessary */
|
|
119
|
+
TDJSONWriter.prototype.determineQuoteChar = function (str, opt, alwaysQuote) {
|
|
120
|
+
var needQuote = alwaysQuote || StringUtil_1.StringUtil.indexOfAnyChar(str, opt._quoteNeededChars) >= 0;
|
|
121
|
+
if (!needQuote)
|
|
122
|
+
return '';
|
|
123
|
+
if (opt.quoteChars.length === 1)
|
|
124
|
+
return opt.quoteChars.charAt(0);
|
|
125
|
+
// Determine which quote char to use
|
|
126
|
+
var counts = new Array(opt.quoteChars.length);
|
|
127
|
+
for (var _i = 0, str_1 = str; _i < str_1.length; _i++) {
|
|
128
|
+
var ch = str_1[_i];
|
|
129
|
+
var idx = opt.quoteChars.indexOf(ch);
|
|
130
|
+
if (idx >= 0)
|
|
131
|
+
counts[idx]++;
|
|
132
|
+
}
|
|
133
|
+
var minIdx = 0; // default to first quote char
|
|
134
|
+
for (var i = 1; i < counts.length; i++)
|
|
135
|
+
if (counts[i] < counts[minIdx])
|
|
136
|
+
minIdx = i;
|
|
137
|
+
return opt.quoteChars.charAt(minIdx);
|
|
138
|
+
};
|
|
139
|
+
TDJSONWriter.instance = new TDJSONWriter();
|
|
140
|
+
return TDJSONWriter;
|
|
141
|
+
}());
|
|
142
|
+
exports.TDJSONWriter = TDJSONWriter;
|
|
143
|
+
//# sourceMappingURL=TDJSONWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDJSONWriter.js","sourceRoot":"","sources":["../../../src/json/TDJSONWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { TDNode } from "..";
|
|
2
|
+
import { NodeFilter } from "./NodeFilter";
|
|
3
|
+
import { TDJSONOption } from "./TDJSONOption";
|
|
4
|
+
export declare enum TextType {
|
|
5
|
+
OPERATOR = 0,
|
|
6
|
+
KEY = 1,
|
|
7
|
+
STRING = 2,
|
|
8
|
+
NON_STRING = 3,
|
|
9
|
+
TYPE = 4
|
|
10
|
+
}
|
|
11
|
+
export declare class TDJSONWriterOption extends TDJSONOption {
|
|
12
|
+
static ofIndentFactor(factor: number): TDJSONWriterOption;
|
|
13
|
+
static ofCompact(): TDJSONWriterOption;
|
|
14
|
+
private mIndentFactor;
|
|
15
|
+
alwaysQuoteKey: boolean;
|
|
16
|
+
alwaysQuoteValue: boolean;
|
|
17
|
+
useTypeWrapper: boolean;
|
|
18
|
+
/** @internal */
|
|
19
|
+
indentStr: string;
|
|
20
|
+
textDecorator?: (str: string, textType: TextType) => string;
|
|
21
|
+
/** Node mapper, if it returns null, node will be skipped */
|
|
22
|
+
nodeFilters: NodeFilter[];
|
|
23
|
+
constructor();
|
|
24
|
+
set indentFactor(indentFactor: number);
|
|
25
|
+
get indentFactor(): number;
|
|
26
|
+
setIndentFactor(indentFactor: number): this;
|
|
27
|
+
setIndentStr(str: string): this;
|
|
28
|
+
setAlwaysQuoteKey(alwaysQuoteKey: boolean): this;
|
|
29
|
+
setAlwaysQuoteValue(alwaysQuoteValue: boolean): this;
|
|
30
|
+
setUseTypeWrapper(useTypeWrapper: boolean): this;
|
|
31
|
+
setTextDecorator(deco: (str: string, textType: TextType) => string): this;
|
|
32
|
+
hasIndent(): boolean;
|
|
33
|
+
applyFilters(n: TDNode): TDNode | undefined;
|
|
34
|
+
addNodeFilter(...filters: NodeFilter[]): this;
|
|
35
|
+
deco(text: string, type: TextType): string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
extendStatics(d, b);
|
|
11
|
+
function __() { this.constructor = d; }
|
|
12
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.TDJSONWriterOption = exports.TextType = void 0;
|
|
17
|
+
var TDJSONOption_1 = require("./TDJSONOption");
|
|
18
|
+
var TextType;
|
|
19
|
+
(function (TextType) {
|
|
20
|
+
TextType[TextType["OPERATOR"] = 0] = "OPERATOR";
|
|
21
|
+
TextType[TextType["KEY"] = 1] = "KEY";
|
|
22
|
+
TextType[TextType["STRING"] = 2] = "STRING";
|
|
23
|
+
TextType[TextType["NON_STRING"] = 3] = "NON_STRING";
|
|
24
|
+
TextType[TextType["TYPE"] = 4] = "TYPE";
|
|
25
|
+
})(TextType = exports.TextType || (exports.TextType = {}));
|
|
26
|
+
var TDJSONWriterOption = /** @class */ (function (_super) {
|
|
27
|
+
__extends(TDJSONWriterOption, _super);
|
|
28
|
+
function TDJSONWriterOption() {
|
|
29
|
+
var _this = _super.call(this) || this;
|
|
30
|
+
_this.mIndentFactor = 0;
|
|
31
|
+
_this.alwaysQuoteKey = true;
|
|
32
|
+
_this.alwaysQuoteValue = true;
|
|
33
|
+
_this.useTypeWrapper = false;
|
|
34
|
+
/** @internal */
|
|
35
|
+
_this.indentStr = ''; // Used internally
|
|
36
|
+
/** Node mapper, if it returns null, node will be skipped */
|
|
37
|
+
_this.nodeFilters = [];
|
|
38
|
+
_this.buildTerms();
|
|
39
|
+
return _this;
|
|
40
|
+
}
|
|
41
|
+
TDJSONWriterOption.ofIndentFactor = function (factor) { return new TDJSONWriterOption().setIndentFactor(factor); };
|
|
42
|
+
TDJSONWriterOption.ofCompact = function () { return new TDJSONWriterOption().setAlwaysQuoteKey(false).setAlwaysQuoteValue(false).setIndentFactor(0); };
|
|
43
|
+
Object.defineProperty(TDJSONWriterOption.prototype, "indentFactor", {
|
|
44
|
+
get: function () { return this.mIndentFactor; },
|
|
45
|
+
set: function (indentFactor) {
|
|
46
|
+
this.mIndentFactor = indentFactor;
|
|
47
|
+
this.indentStr = ' '.repeat(this.mIndentFactor);
|
|
48
|
+
},
|
|
49
|
+
enumerable: false,
|
|
50
|
+
configurable: true
|
|
51
|
+
});
|
|
52
|
+
TDJSONWriterOption.prototype.setIndentFactor = function (indentFactor) { this.indentFactor = indentFactor; return this; };
|
|
53
|
+
TDJSONWriterOption.prototype.setIndentStr = function (str) { this.indentStr = str; return this; };
|
|
54
|
+
TDJSONWriterOption.prototype.setAlwaysQuoteKey = function (alwaysQuoteKey) { this.alwaysQuoteKey = alwaysQuoteKey; return this; };
|
|
55
|
+
TDJSONWriterOption.prototype.setAlwaysQuoteValue = function (alwaysQuoteValue) { this.alwaysQuoteValue = alwaysQuoteValue; return this; };
|
|
56
|
+
TDJSONWriterOption.prototype.setUseTypeWrapper = function (useTypeWrapper) { this.useTypeWrapper = useTypeWrapper; return this; };
|
|
57
|
+
TDJSONWriterOption.prototype.setTextDecorator = function (deco) { this.textDecorator = deco; return this; };
|
|
58
|
+
TDJSONWriterOption.prototype.hasIndent = function () {
|
|
59
|
+
return this.indentStr.length > 0;
|
|
60
|
+
};
|
|
61
|
+
TDJSONWriterOption.prototype.applyFilters = function (n) {
|
|
62
|
+
var result = n;
|
|
63
|
+
for (var _i = 0, _a = this.nodeFilters; _i < _a.length; _i++) {
|
|
64
|
+
var f = _a[_i];
|
|
65
|
+
if (result == null)
|
|
66
|
+
break;
|
|
67
|
+
result = f.apply(result);
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
};
|
|
71
|
+
TDJSONWriterOption.prototype.addNodeFilter = function () {
|
|
72
|
+
var filters = [];
|
|
73
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
74
|
+
filters[_i] = arguments[_i];
|
|
75
|
+
}
|
|
76
|
+
for (var _a = 0, filters_1 = filters; _a < filters_1.length; _a++) {
|
|
77
|
+
var f = filters_1[_a];
|
|
78
|
+
this.nodeFilters.push(f);
|
|
79
|
+
}
|
|
80
|
+
return this;
|
|
81
|
+
};
|
|
82
|
+
TDJSONWriterOption.prototype.deco = function (text, type) {
|
|
83
|
+
return this.textDecorator == null ? text : this.textDecorator(text, type);
|
|
84
|
+
};
|
|
85
|
+
return TDJSONWriterOption;
|
|
86
|
+
}(TDJSONOption_1.TDJSONOption));
|
|
87
|
+
exports.TDJSONWriterOption = TDJSONWriterOption;
|
|
88
|
+
//# sourceMappingURL=TDJSONWriterOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDJSONWriterOption.js","sourceRoot":"","sources":["../../../src/json/TDJSONWriterOption.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,+CAA8C;AAE9C,IAAY,QAAkD;AAA9D,WAAY,QAAQ;IAAE,+CAAQ,CAAA;IAAE,qCAAG,CAAA;IAAE,2CAAM,CAAA;IAAE,mDAAU,CAAA;IAAE,uCAAI,CAAA;AAAA,CAAC,EAAlD,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAA0C;AAE9D;IAAwC,sCAAY;IAgBlD;QAAA,YAAgB,iBAAO,SAAsB;QAZrC,mBAAa,GAAG,CAAC,CAAC;QACnB,oBAAc,GAAG,IAAI,CAAC;QACtB,sBAAgB,GAAG,IAAI,CAAC;QACxB,oBAAc,GAAG,KAAK,CAAC;QAE9B,gBAAgB;QACT,eAAS,GAAG,EAAE,CAAC,CAAC,kBAAkB;QAGzC,4DAA4D;QACrD,iBAAW,GAAiB,EAAE,CAAC;QAEb,KAAI,CAAC,UAAU,EAAE,CAAC;;IAAC,CAAC;IAf/B,iCAAc,GAA5B,UAA6B,MAAc,IAAwB,OAAO,IAAI,kBAAkB,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/G,4BAAS,GAAvB,cAAgD,OAAO,IAAI,kBAAkB,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAgBzJ,sBAAW,4CAAY;aAKvB,cAA4B,OAAO,IAAI,CAAC,aAAa,CAAA,CAAA,CAAC;aALtD,UAAwB,YAAoB;YAC1C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;;;OAAA;IAIM,4CAAe,GAAtB,UAAuB,YAAoB,IAAI,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACxF,yCAAY,GAAnB,UAAoB,GAAW,IAAI,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAChE,8CAAiB,GAAxB,UAAyB,cAAuB,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACjG,gDAAmB,GAA1B,UAA2B,gBAAyB,IAAI,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACzG,8CAAiB,GAAxB,UAAyB,cAAuB,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACjG,6CAAgB,GAAvB,UAAwB,IAAiD,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAE/G,sCAAS,GAAhB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,yCAAY,GAAnB,UAAoB,CAAS;QAC3B,IAAI,MAAM,GAAuB,CAAC,CAAC;QACnC,KAAgB,UAAgB,EAAhB,KAAA,IAAI,CAAC,WAAW,EAAhB,cAAgB,EAAhB,IAAgB,EAAC;YAA5B,IAAM,CAAC,SAAA;YACV,IAAI,MAAM,IAAI,IAAI;gBAChB,MAAM;YACR,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC1B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,0CAAa,GAApB;QAAqB,iBAAwB;aAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;YAAxB,4BAAwB;;QAC3C,KAAgB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO;YAAlB,IAAM,CAAC,gBAAA;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAAA;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iCAAI,GAAX,UAAY,IAAY,EAAE,IAAc;QACtC,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IACH,yBAAC;AAAD,CAAC,AAvDD,CAAwC,2BAAY,GAuDnD;AAvDY,gDAAkB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var StringCharSource_1 = require("../../core/StringCharSource");
|
|
4
|
+
var EOFRuntimeException_1 = require("../../core/EOFRuntimeException");
|
|
5
|
+
var StringBuilder_1 = require("../../core/StringBuilder");
|
|
6
|
+
test('testCharArraySource', function () {
|
|
7
|
+
var cs = new StringCharSource_1.StringCharSource('0123\n');
|
|
8
|
+
expect(cs.read()).toBe('0');
|
|
9
|
+
expect(cs.read()).toBe('1');
|
|
10
|
+
expect(cs.peek()).toBe('2');
|
|
11
|
+
expect(cs.peek(1)).toBe('3');
|
|
12
|
+
expect(cs.read()).toBe('2');
|
|
13
|
+
expect(cs.read()).toBe('3');
|
|
14
|
+
expect(cs.getBookmark().toString()).toBe('Bookmark(line=0, col=4, pos=4)');
|
|
15
|
+
expect(cs.read()).toBe('\n');
|
|
16
|
+
expect(cs.getBookmark().toString()).toBe('Bookmark(line=1, col=0, pos=5)');
|
|
17
|
+
expect(function () { return cs.read(); }).toThrow(new EOFRuntimeException_1.EOFRuntimeException());
|
|
18
|
+
});
|
|
19
|
+
test('testParseText', function () {
|
|
20
|
+
var cs = new StringCharSource_1.StringCharSource(' Text before /* some comments */ Text after');
|
|
21
|
+
cs.skipSpacesAndReturns();
|
|
22
|
+
expect(cs.getBookmark().pos).toBe(2);
|
|
23
|
+
var target = new StringBuilder_1.StringBuilder();
|
|
24
|
+
// should match '/*'
|
|
25
|
+
expect(cs.readUntilMatch(target, '/*', false, 0, 1000)).toBeTruthy();
|
|
26
|
+
expect(target.toString()).toBe('Text before ');
|
|
27
|
+
// should start with '/*'
|
|
28
|
+
expect(cs.startsWith('/*')).toBeTruthy();
|
|
29
|
+
cs.skip(2); // skip /*
|
|
30
|
+
target = new StringBuilder_1.StringBuilder();
|
|
31
|
+
// should match with '*/'
|
|
32
|
+
expect(cs.readUntilMatch(target, '*/', false)).toBeTruthy();
|
|
33
|
+
expect(target.toString()).toBe(' some comments ');
|
|
34
|
+
target = new StringBuilder_1.StringBuilder();
|
|
35
|
+
// should match with '*/'
|
|
36
|
+
expect(cs.readUntilMatch(target, '*/', false)).toBeTruthy();
|
|
37
|
+
});
|
|
38
|
+
test('testReadQuotedString', function () {
|
|
39
|
+
assertReadQuotedString("'It\\'s a quoted \\\"string\\\" with escape \\n \\r \\f \\t \\v \\? \\u9829'", 'It\'s a quoted "string" with escape \n \r \f \t \u000b ? \u9829');
|
|
40
|
+
});
|
|
41
|
+
test('testReadQuotedStringWithOctEscape', function () {
|
|
42
|
+
assertReadQuotedString("'\\040b'", ' b');
|
|
43
|
+
assertReadQuotedString("'\\40b'", ' b');
|
|
44
|
+
assertReadQuotedString("'\\401b'", ' 1b');
|
|
45
|
+
assertReadQuotedString("'\\491b'", '\u000491b');
|
|
46
|
+
assertReadQuotedString("'\\0220\\022'", '\u00120\u0012');
|
|
47
|
+
});
|
|
48
|
+
function assertReadQuotedString(source, expected) {
|
|
49
|
+
var cs = new StringCharSource_1.StringCharSource(source);
|
|
50
|
+
var c = cs.read(); // skip first quote
|
|
51
|
+
expect(cs.readQuotedString(c)).toBe(expected);
|
|
52
|
+
}
|
|
53
|
+
test('testReadQuotedStringError', function () {
|
|
54
|
+
var cs = new StringCharSource_1.StringCharSource("'Missing closing quote");
|
|
55
|
+
var c = cs.read(); // skip first quote
|
|
56
|
+
expect(function () { return cs.readQuotedString(c); }).toThrow("Can't find matching quote at position:1");
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=CharSource.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharSource.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/CharSource.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var JSONPointer_1 = require("../../json/JSONPointer");
|
|
4
|
+
var TDPath_1 = require("../../TDPath");
|
|
5
|
+
test('testParse', function () {
|
|
6
|
+
verify('//ab.c/p1#/p1', new TDPath_1.TDPath('//ab.c/p1').addParts(TDPath_1.Part.ofRoot(), TDPath_1.Part.ofChild('p1')));
|
|
7
|
+
verify('//ab.c/p1#p1/p2', new TDPath_1.TDPath('//ab.c/p1').addParts(TDPath_1.Part.ofChildOrId('p1', 'p1'), TDPath_1.Part.ofChild('p2')));
|
|
8
|
+
expect(JSONPointer_1.JSONPointer.get().parse('1/p1', true)).toStrictEqual(new TDPath_1.TDPath().addParts(TDPath_1.Part.ofRelative(1), TDPath_1.Part.ofChild('p1')));
|
|
9
|
+
verify('#../p1', new TDPath_1.TDPath().addParts(TDPath_1.Part.ofRelative(1), TDPath_1.Part.ofChild('p1')));
|
|
10
|
+
verify('#./p1', new TDPath_1.TDPath().addParts(TDPath_1.Part.ofRelative(0), TDPath_1.Part.ofChild('p1')));
|
|
11
|
+
verify('../', new TDPath_1.TDPath().addParts(TDPath_1.Part.ofRelative(1)));
|
|
12
|
+
});
|
|
13
|
+
function verify(str, expected) {
|
|
14
|
+
expect(JSONPointer_1.JSONPointer.get().parse(str)).toStrictEqual(expected);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=JSONPointer.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JSONPointer.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/JSONPointer.spec.ts"],"names":[],"mappings":";;AAAA,sDAAqD;AACrD,uCAA4C;AAE5C,IAAI,CAAC,WAAW,EAAE;IAChB,MAAM,CAAC,eAAe,EAAE,IAAI,eAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,aAAI,CAAC,MAAM,EAAE,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,CAAC,iBAAiB,EAAE,IAAI,eAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,aAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9G,MAAM,CAAC,yBAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CACzD,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,aAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,QAAQ,EAAE,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,aAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,OAAO,EAAE,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,aAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,KAAK,EAAE,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,aAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,SAAS,MAAM,CAAC,GAAW,EAAE,QAAgB;IAC3C,MAAM,CAAC,yBAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var StringCharSource_1 = require("../../core/StringCharSource");
|
|
4
|
+
var TDJSONParser_1 = require("../../json/TDJSONParser");
|
|
5
|
+
var TDJSONParserOption_1 = require("../../json/TDJSONParserOption");
|
|
6
|
+
var TDNode_1 = require("../../TDNode");
|
|
7
|
+
var TDJSONWriter_1 = require("../../json/TDJSONWriter");
|
|
8
|
+
var TDJSONWriterOption_1 = require("../../json/TDJSONWriterOption");
|
|
9
|
+
var JSONPointer_1 = require("../../json/JSONPointer");
|
|
10
|
+
var TreeDoc_1 = require("../../TreeDoc");
|
|
11
|
+
var TestData_1 = require("./TestData");
|
|
12
|
+
var ParseRuntimeException_1 = require("../../core/ParseRuntimeException");
|
|
13
|
+
var testData = new TestData_1.TestData();
|
|
14
|
+
describe('TDJsonParser', function () {
|
|
15
|
+
test('testSkipSpaceAndComments', function () {
|
|
16
|
+
var src = new StringCharSource_1.StringCharSource(' //abcd \n // defghi \n abc');
|
|
17
|
+
expect(TDJSONParser_1.TDJSONParser.skipSpaceAndComments(src)).toBe('a');
|
|
18
|
+
expect(src.readString(3)).toBe('abc');
|
|
19
|
+
src = new StringCharSource_1.StringCharSource(' #abcd \n # defghi \n abc');
|
|
20
|
+
expect(TDJSONParser_1.TDJSONParser.skipSpaceAndComments(src)).toBe('a');
|
|
21
|
+
expect(src.readString(3)).toBe('abc');
|
|
22
|
+
src = new StringCharSource_1.StringCharSource('/* abcd*/ \n /* defghi*/ \n abc');
|
|
23
|
+
expect(TDJSONParser_1.TDJSONParser.skipSpaceAndComments(src)).toBe('a');
|
|
24
|
+
expect(src.readString(3)).toBe('abc');
|
|
25
|
+
});
|
|
26
|
+
test('testParse', function () {
|
|
27
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
|
|
28
|
+
var json = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node);
|
|
29
|
+
console.log("testParse:json=" + json);
|
|
30
|
+
expect(node.getChildValue('3')).toBe('valueWithoutKey');
|
|
31
|
+
expect(node.getChildValue('6')).toBe('lastValueWithoutKey');
|
|
32
|
+
expect(node.getChildValue('limit')).toBe(10);
|
|
33
|
+
expect(node.getChildValue('total')).toBe('100000000000000000000');
|
|
34
|
+
expect(node.getChildValue('maxSafeInt')).toBe(9007199254740991);
|
|
35
|
+
expect(node.getValueByPath('data/0/name')).toBe('Some Name 1');
|
|
36
|
+
expect(node.getValueByPath('data/1/address/streetLine')).toBe('2nd st');
|
|
37
|
+
var n = node.getByPath('data/1');
|
|
38
|
+
expect(node.getByPath('data/1').key).toBe('1');
|
|
39
|
+
expect(node.getByPath(['data', '1']).key).toBe('1');
|
|
40
|
+
expect(node.getChild('total').isLeaf()).toBeTruthy();
|
|
41
|
+
expect(node.getChild('data').isLeaf()).toBeFalsy();
|
|
42
|
+
expect(node.getByPath('data/1').path).toEqual(['data', '1']);
|
|
43
|
+
var node1 = TDJSONParser_1.TDJSONParser.get().parse(json);
|
|
44
|
+
expect(TDJSONWriter_1.TDJSONWriter.get().writeAsString(node1)).toBe(json);
|
|
45
|
+
});
|
|
46
|
+
test('testParseProto', function () {
|
|
47
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.proto, { defaultRootType: TDNode_1.TDNodeType.MAP });
|
|
48
|
+
var json = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setAlwaysQuoteKey(false));
|
|
49
|
+
console.log("testParseProto:json=" + json);
|
|
50
|
+
expect(node.getValueByPath('n/n1/0/n11/1/n111')).toBeFalsy();
|
|
51
|
+
expect(node.getValueByPath('n/n1/1/[d.e.f]')).toBe(4);
|
|
52
|
+
expect(node.getValueByPath('n/n3/0')).toBe(6);
|
|
53
|
+
expect(node.getByPath('n/n1/0').key).toBe('0');
|
|
54
|
+
expect(node.getByPath('n/n1/1').key).toBe('1');
|
|
55
|
+
});
|
|
56
|
+
test('testParseJson5', function () {
|
|
57
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.JSON5);
|
|
58
|
+
var json = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setAlwaysQuoteKey(false));
|
|
59
|
+
console.log("testParseJson5:json=" + json);
|
|
60
|
+
expect(node.getValueByPath('unquoted')).toBe('and you can quote me on that');
|
|
61
|
+
expect(node.getValueByPath('hexadecimal')).toBe(912559);
|
|
62
|
+
expect(node.getValueByPath('leadingDecimalPoint')).toBe(0.8675309);
|
|
63
|
+
expect(node.getValueByPath('positiveSign')).toBe(1);
|
|
64
|
+
});
|
|
65
|
+
test('testRootMap', function () {
|
|
66
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse("'a':1\nb:2,", new TDJSONParserOption_1.TDJSONParserOption().setDefaultRootType(TDNode_1.TDNodeType.MAP));
|
|
67
|
+
expect(node.getValueByPath('a')).toBe(1);
|
|
68
|
+
expect(node.getValueByPath('b')).toBe(2);
|
|
69
|
+
});
|
|
70
|
+
test('testRootArray', function () {
|
|
71
|
+
var testDataRootArray = "\n ,\n 1\n 2\n {\n v: 3\n },\n ,\n 4,\n ,\n ";
|
|
72
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testDataRootArray, new TDJSONParserOption_1.TDJSONParserOption().setDefaultRootType(TDNode_1.TDNodeType.ARRAY));
|
|
73
|
+
var json = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setAlwaysQuoteKey(false));
|
|
74
|
+
console.log("testParseJson5:json=" + json);
|
|
75
|
+
expect(node.getChildrenSize()).toBe(7);
|
|
76
|
+
expect(node.getValueByPath('2')).toBe(2);
|
|
77
|
+
expect(node.getValueByPath('3/v')).toBe(3);
|
|
78
|
+
});
|
|
79
|
+
test('testInvalid', function () {
|
|
80
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse('}');
|
|
81
|
+
expect(node.value).toBe('}');
|
|
82
|
+
node = TDJSONParser_1.TDJSONParser.get().parse('');
|
|
83
|
+
expect(node.value).toBeNull();
|
|
84
|
+
node = TDJSONParser_1.TDJSONParser.get().parse('[}]');
|
|
85
|
+
expect(node.getChild(0).value).toBe('}');
|
|
86
|
+
});
|
|
87
|
+
test('testTDPath', function () {
|
|
88
|
+
var jp = JSONPointer_1.JSONPointer.get();
|
|
89
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
|
|
90
|
+
var node1 = jp.query(node, '#1');
|
|
91
|
+
expect(node1.getChildValue('name')).toBe('Some Name 1');
|
|
92
|
+
// Relative with number support removed
|
|
93
|
+
// expect(jp.query(node1, '2/limit')!.value).toBe(10);
|
|
94
|
+
expect(node.value).toBeNull();
|
|
95
|
+
});
|
|
96
|
+
test('TDNode.toString', function () {
|
|
97
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData, new TDJSONParserOption_1.TDJSONParserOption().setDefaultRootType(TDNode_1.TDNodeType.MAP));
|
|
98
|
+
var str = node.toString();
|
|
99
|
+
console.log('testToString:str=' + str);
|
|
100
|
+
var str1 = node.toString();
|
|
101
|
+
expect(str1).toBe(str);
|
|
102
|
+
var city = node.getByPath('/data/0/address/city');
|
|
103
|
+
expect(city).not.toBeNull();
|
|
104
|
+
city.setValue(city.value);
|
|
105
|
+
var str2 = node.toString();
|
|
106
|
+
// expect(str2).not.toBe(str); // Javascript doesn't have real identity equality operator to verify it.
|
|
107
|
+
expect(str2).toEqual(str);
|
|
108
|
+
city.setValue('other city');
|
|
109
|
+
node.freeze();
|
|
110
|
+
var str3 = node.toString();
|
|
111
|
+
console.log('testToString:str=' + str3);
|
|
112
|
+
// toString should return different value when node value changed
|
|
113
|
+
expect(str3).not.toEqual(str);
|
|
114
|
+
expect(str3).toEqual("{total: '100000000000000000000', maxSafeInt: 9007199254740991, limit: 10, 3: 'valueWithoutKey', data: [{$id: '1', name: 'Some Name 1', address: {streetLine: '1st st', city: 'other city'}, createdAt: '2017-07-14T17:17:33.010Z', ip: '10.1.22.22'}, {$id: '2', name: 'Some Name 2', address: {streetLine: '2nd st', city: 'san jose'}, createdAt: '2017-07-14T17:17:33.010Z'}, 'Multiple line literal\\n Line2'], objRef: {$ref: '1'}, 6: 'lastValueWithoutKey'}");
|
|
115
|
+
var strWithoutRootKey = node.getChild("data").toStringInternal('', false, false, 100).toString();
|
|
116
|
+
expect(strWithoutRootKey).toEqual("[{name: 'Some Name 1', address: {streetLine: '1st st', city: 'other city'}, createdAt: '2017-07-14T17...', ...}, ...]");
|
|
117
|
+
var strWithoutRootKeyLimited = node.getChild("data").toStringInternal('', false, false, 10).toString();
|
|
118
|
+
expect(strWithoutRootKeyLimited).toEqual("[{name: 'So...', ...}, ...]");
|
|
119
|
+
});
|
|
120
|
+
test('testStream', function () {
|
|
121
|
+
var _a, _b, _c;
|
|
122
|
+
var reader = new StringCharSource_1.StringCharSource(testData.stream);
|
|
123
|
+
var nodes = [];
|
|
124
|
+
while (reader.skipSpacesAndReturnsAndCommas())
|
|
125
|
+
nodes.push(TDJSONParser_1.TDJSONParser.get().parse(reader));
|
|
126
|
+
var node = TreeDoc_1.TreeDoc_merge(nodes).root;
|
|
127
|
+
console.log("testStream=" + node.toString());
|
|
128
|
+
expect((_a = node.getChild(1)) === null || _a === void 0 ? void 0 : _a.key).toEqual("1");
|
|
129
|
+
expect((_c = (_b = node.getChild(1)) === null || _b === void 0 ? void 0 : _b.getChild(0)) === null || _c === void 0 ? void 0 : _c.doc).toBe(node.doc);
|
|
130
|
+
expect(node.toString()).toMatchSnapshot();
|
|
131
|
+
});
|
|
132
|
+
test('testParseAll', function () {
|
|
133
|
+
var node = TDJSONParser_1.TDJSONParser.get().parseAll(testData.stream);
|
|
134
|
+
console.log("testStream=" + node.toString());
|
|
135
|
+
expect(node.toString()).toMatchSnapshot();
|
|
136
|
+
var docFirstElement = node.doc.retain(node.children[0]);
|
|
137
|
+
node = docFirstElement.root;
|
|
138
|
+
console.log("testStream=" + node.toString());
|
|
139
|
+
expect(node.key).toEqual("root");
|
|
140
|
+
expect(node.toString()).toMatchSnapshot();
|
|
141
|
+
});
|
|
142
|
+
function parseWithException(str, expectedError) {
|
|
143
|
+
var error = null;
|
|
144
|
+
try {
|
|
145
|
+
TDJSONParser_1.TDJSONParser.get().parse(str);
|
|
146
|
+
}
|
|
147
|
+
catch (e) {
|
|
148
|
+
error = e.message;
|
|
149
|
+
}
|
|
150
|
+
expect(error).toBe(expectedError);
|
|
151
|
+
}
|
|
152
|
+
test('testParseAll', function () {
|
|
153
|
+
parseWithException("{abc:1", "EOF while expecting matching '}' with '{' at Bookmark(line=0, col=0, pos=0), Bookmark(line=0, col=6, pos=6), digest:");
|
|
154
|
+
parseWithException("{a:[abc,def}", "EOF while expecting matching ']' with '[' at Bookmark(line=0, col=3, pos=3), Bookmark(line=0, col=12, pos=12), digest:");
|
|
155
|
+
parseWithException("{a", "No ':' after key:a, Bookmark(line=0, col=2, pos=2), digest:");
|
|
156
|
+
parseWithException("{'a'", "No ':' after key:a, Bookmark(line=0, col=4, pos=4), digest:");
|
|
157
|
+
});
|
|
158
|
+
test('testParseMapToString', function () {
|
|
159
|
+
var str = "{K1=v1, k2=123, k3={c=Test with ,in}, k4=[ab,c, def]}";
|
|
160
|
+
console.log(TDJSONParserOption_1.TDJSONParserOption.ofMapToString());
|
|
161
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(str, TDJSONParserOption_1.TDJSONParserOption.ofMapToString());
|
|
162
|
+
expect(node.toString()).toBe("{K1: 'v1', k2: 123, k3: {c: 'Test with ,in'}, k4: ['ab,c', 'def']}");
|
|
163
|
+
});
|
|
164
|
+
function verifyParsePartialJson(name, src, expected) {
|
|
165
|
+
try {
|
|
166
|
+
TDJSONParser_1.TDJSONParser.get().parse(src);
|
|
167
|
+
fail(name + ":Expected ParseRuntimeException");
|
|
168
|
+
}
|
|
169
|
+
catch (e) {
|
|
170
|
+
expect(ParseRuntimeException_1.ParseRuntimeException.is(e)).toBe(true);
|
|
171
|
+
var node = e.partialObject;
|
|
172
|
+
expect(node).toBeDefined();
|
|
173
|
+
var root = node.doc.root;
|
|
174
|
+
expect(TDJSONWriter_1.TDJSONWriter.get().writeAsString(root, TDJSONWriterOption_1.TDJSONWriterOption.ofCompact())).toBe(expected);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
test('testParsePartialJsonReturnsPartialNode', function () {
|
|
178
|
+
verifyParsePartialJson("Partial object", "{'a': 1, 'b': 2, ''c.: ", "{a:1,b:2}");
|
|
179
|
+
verifyParsePartialJson("Partial string value", "{'a': 'hello", "{a:hello}");
|
|
180
|
+
verifyParsePartialJson("Partial date value", '{"createdAt": "2026-04-07T11:30:', '{createdAt:"2026-04-07T11:30:"}');
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
//# sourceMappingURL=TDJsonParser.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDJsonParser.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/TDJsonParser.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|