treedoc 0.3.45 → 0.3.46
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/json/TDJSONOption.d.ts +1 -0
- package/lib/json/TDJSONOption.js +2 -1
- package/lib/json/TDJSONOption.js.map +1 -1
- package/lib/json/TDJSONWriter.js +1 -0
- package/lib/json/TDJSONWriter.js.map +1 -1
- package/lib/json/__test__/TDJsonWriter.spec.js +28 -21
- package/lib/json/__test__/TDJsonWriter.spec.js.map +1 -1
- package/lib/json/__test__/TestData.js +1 -1
- package/lib/json/__test__/TestData.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ export declare class TDJSONOption {
|
|
|
7
7
|
deliminatorObjectEnd: string;
|
|
8
8
|
deliminatorArrayStart: string;
|
|
9
9
|
deliminatorArrayEnd: string;
|
|
10
|
+
commentStartChar: string;
|
|
10
11
|
/**
|
|
11
12
|
* QuoteChar can have multiple value. When multiple value is provided, it will dynamically choose the best one
|
|
12
13
|
* to minimize the escape. For example "\"\'", if the string contains a lot of single quote, it will use double quote.
|
package/lib/json/TDJSONOption.js
CHANGED
|
@@ -11,6 +11,7 @@ var TDJSONOption = /** @class */ (function () {
|
|
|
11
11
|
this.deliminatorObjectEnd = "}";
|
|
12
12
|
this.deliminatorArrayStart = "[";
|
|
13
13
|
this.deliminatorArrayEnd = "]";
|
|
14
|
+
this.commentStartChar = "/#";
|
|
14
15
|
/**
|
|
15
16
|
* QuoteChar can have multiple value. When multiple value is provided, it will dynamically choose the best one
|
|
16
17
|
* to minimize the escape. For example "\"\'", if the string contains a lot of single quote, it will use double quote.
|
|
@@ -47,7 +48,7 @@ var TDJSONOption = /** @class */ (function () {
|
|
|
47
48
|
this._termValueInMap = this._termValue + this.deliminatorObjectEnd + this.deliminatorArrayEnd; // It's possible object end is omitted for path compression. e.g [a:b:c]
|
|
48
49
|
this._termValueInMap = this._termValue + this.deliminatorObjectEnd;
|
|
49
50
|
this._termValueInArray = this._termValue + this.deliminatorArrayEnd;
|
|
50
|
-
this._quoteNeededChars = this._termValue + this._termKey + this.deliminatorObjectEnd + this.deliminatorObjectEnd + this.deliminatorArrayEnd + this.deliminatorKey + this.deliminatorValue + this.quoteChars;
|
|
51
|
+
this._quoteNeededChars = this._termValue + this._termKey + this.deliminatorObjectEnd + this.deliminatorObjectEnd + this.deliminatorArrayEnd + this.deliminatorKey + this.deliminatorValue + this.quoteChars + this.commentStartChar;
|
|
51
52
|
};
|
|
52
53
|
return TDJSONOption;
|
|
53
54
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TDJSONOption.js","sourceRoot":"","sources":["../../src/json/TDJSONOption.ts"],"names":[],"mappings":";;;AAEA;IAAA;QACE,WAAM,GAAG,KAAK,CAAC;QACf,aAAQ,GAAG,OAAO,CAAC;QACnB,mBAAc,GAAG,GAAG,CAAC;QACrB,qBAAgB,GAAG,GAAG,CAAC;QACvB,2BAAsB,GAAG,GAAG,CAAC;QAC7B,yBAAoB,GAAG,GAAG,CAAC;QAC3B,0BAAqB,GAAG,GAAG,CAAC;QAC5B,wBAAmB,GAAG,GAAG,CAAC;QAC1B;;;WAGG;QACI,eAAU,GAAG,GAAG,CAAC;QAGtB,gCAAgC;QAChC,eAAU,GAAG,EAAE,CAAC;QAChB,oBAAe,GAAG,EAAE,CAAC;QACrB,sBAAiB,GAAG,EAAE,CAAC;QACvB,aAAQ,GAAG,EAAE,CAAC;QACd,gDAAgD;QAChD,sBAAiB,GAAG,EAAE,CAAC;QACvB,mBAAc,GAAa,EAAE,CAAC;QAC9B,iBAAY,GAAa,EAAE,CAAC;IAwBhC,CAAC;IAlCQ,oCAAa,GAApB,UAAqB,UAAkB,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAYrF,iCAAU,GAAV;QACE,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAE,4FAA4F;QAC3K,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACrG,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,EAAG,8DAA8D;YACvG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC;YACzC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;YAClC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC;;YAErC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,wEAAwE;QACvK,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACpE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"TDJSONOption.js","sourceRoot":"","sources":["../../src/json/TDJSONOption.ts"],"names":[],"mappings":";;;AAEA;IAAA;QACE,WAAM,GAAG,KAAK,CAAC;QACf,aAAQ,GAAG,OAAO,CAAC;QACnB,mBAAc,GAAG,GAAG,CAAC;QACrB,qBAAgB,GAAG,GAAG,CAAC;QACvB,2BAAsB,GAAG,GAAG,CAAC;QAC7B,yBAAoB,GAAG,GAAG,CAAC;QAC3B,0BAAqB,GAAG,GAAG,CAAC;QAC5B,wBAAmB,GAAG,GAAG,CAAC;QAC1B,qBAAgB,GAAG,IAAI,CAAC;QAExB;;;WAGG;QACI,eAAU,GAAG,GAAG,CAAC;QAGtB,gCAAgC;QAChC,eAAU,GAAG,EAAE,CAAC;QAChB,oBAAe,GAAG,EAAE,CAAC;QACrB,sBAAiB,GAAG,EAAE,CAAC;QACvB,aAAQ,GAAG,EAAE,CAAC;QACd,gDAAgD;QAChD,sBAAiB,GAAG,EAAE,CAAC;QACvB,mBAAc,GAAa,EAAE,CAAC;QAC9B,iBAAY,GAAa,EAAE,CAAC;IAwBhC,CAAC;IAlCQ,oCAAa,GAApB,UAAqB,UAAkB,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAYrF,iCAAU,GAAV;QACE,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAE,4FAA4F;QAC3K,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACrG,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,EAAG,8DAA8D;YACvG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC;YACzC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC;SACxC;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;YAClC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC;;YAErC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,wEAAwE;QACvK,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACpE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;IACtO,CAAC;IACL,mBAAC;AAAD,CAAC,AAlDD,IAkDC;AAlDY,oCAAY"}
|
package/lib/json/TDJSONWriter.js
CHANGED
|
@@ -35,6 +35,7 @@ var TDJSONWriter = /** @class */ (function () {
|
|
|
35
35
|
if (option === void 0) { option = {}; }
|
|
36
36
|
if (indentStr === void 0) { indentStr = ''; }
|
|
37
37
|
var opt = option instanceof TDJSONWriterOption_1.TDJSONWriterOption ? option : LangUtil_1.LangUtil.mergeDeep(new TDJSONWriterOption_1.TDJSONWriterOption(), option);
|
|
38
|
+
opt.buildTerms();
|
|
38
39
|
if (!node)
|
|
39
40
|
return out.append(opt.deco("null", NON_STRING));
|
|
40
41
|
var childIndentStr = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TDJSONWriter.js","sourceRoot":"","sources":["../../src/json/TDJSONWriter.ts"],"names":[],"mappings":";;;AAAA,2DAAoE;AACpE,oCAA+C;AAC/C,uDAAsD;AAEtD,iDAAgD;AAChD,6CAA4C;AAE5C,IAAM,UAAU,GAAG,6BAAQ,CAAC,UAAU,CAAC;AACvC,IAAM,MAAM,GAAG,6BAAQ,CAAC,MAAM,CAAC;AAC/B,IAAM,GAAG,GAAG,6BAAQ,CAAC,GAAG,CAAC;AACzB,IAAM,QAAQ,GAAG,6BAAQ,CAAC,QAAQ,CAAC;AAEnC;IAAA;
|
|
1
|
+
{"version":3,"file":"TDJSONWriter.js","sourceRoot":"","sources":["../../src/json/TDJSONWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,48 +9,55 @@ var testData = new TestData_1.TestData();
|
|
|
9
9
|
describe('TDJsonWriter', function () {
|
|
10
10
|
test('testWriterWithNodeFilter', function () {
|
|
11
11
|
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
|
|
12
|
-
var opt = new TDJSONWriterOption_1.TDJSONWriterOption()
|
|
13
|
-
.
|
|
14
|
-
.addNodeFilter(NodeFilter_1.NodeFilter.
|
|
12
|
+
var opt = new TDJSONWriterOption_1.TDJSONWriterOption()
|
|
13
|
+
.setIndentFactor(2)
|
|
14
|
+
.addNodeFilter(NodeFilter_1.NodeFilter.mask('.*/address', '.*/ip'))
|
|
15
|
+
.addNodeFilter(NodeFilter_1.NodeFilter.exclude('.*/\\$id'));
|
|
15
16
|
var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
|
|
16
17
|
console.log(str);
|
|
17
18
|
expect(str).toMatchSnapshot();
|
|
18
19
|
node = TDJSONParser_1.TDJSONParser.get().parse(str);
|
|
19
|
-
expect(node.getValueByPath(
|
|
20
|
-
expect(node.getValueByPath(
|
|
21
|
-
expect(node.getValueByPath(
|
|
20
|
+
expect(node.getValueByPath('/data/0/$id')).toBeNull();
|
|
21
|
+
expect(node.getValueByPath('/data/0/ip')).toEqual('<Masked:len=10>');
|
|
22
|
+
expect(node.getValueByPath('/data/0/address')).toEqual('{Masked:size=2}');
|
|
22
23
|
});
|
|
23
24
|
test('testQuote', function () {
|
|
24
25
|
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testQuote);
|
|
25
|
-
var opt = TDJSONWriterOption_1.TDJSONWriterOption.ofIndentFactor(2)
|
|
26
|
-
|
|
26
|
+
var opt = TDJSONWriterOption_1.TDJSONWriterOption.ofIndentFactor(2)
|
|
27
|
+
.setQuoteChars('"\'')
|
|
28
|
+
.setAlwaysQuoteKey(false)
|
|
29
|
+
.setAlwaysQuoteValue(false);
|
|
30
|
+
var result = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt) + '\n';
|
|
27
31
|
expect(result).toMatchSnapshot();
|
|
32
|
+
expect(TDJSONParser_1.TDJSONParser.get().parse(result).toString()).toEqual(node.toString());
|
|
28
33
|
});
|
|
29
34
|
test('testWriterWithTextDeco', function () {
|
|
30
35
|
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
|
|
31
|
-
var opt = new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2)
|
|
32
|
-
.setTextDecorator(function (s, type) {
|
|
36
|
+
var opt = new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setTextDecorator(function (s, type) {
|
|
33
37
|
switch (type) {
|
|
34
|
-
case TDJSONWriterOption_1.TextType.KEY:
|
|
35
|
-
|
|
38
|
+
case TDJSONWriterOption_1.TextType.KEY:
|
|
39
|
+
return '<b>' + s + '</b>';
|
|
40
|
+
case TDJSONWriterOption_1.TextType.OPERATOR:
|
|
41
|
+
return '<font color=red>' + s + '</font>';
|
|
36
42
|
case TDJSONWriterOption_1.TextType.NON_STRING:
|
|
37
|
-
return
|
|
43
|
+
return '<font color=green>' + s + '</font>';
|
|
38
44
|
case TDJSONWriterOption_1.TextType.STRING:
|
|
39
|
-
default:
|
|
45
|
+
default:
|
|
46
|
+
return s;
|
|
40
47
|
}
|
|
41
48
|
});
|
|
42
49
|
var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
|
|
43
50
|
console.log(str);
|
|
44
51
|
expect(str).toMatchSnapshot();
|
|
45
|
-
expect(str).toContain(
|
|
46
|
-
expect(str).toContain(
|
|
47
|
-
expect(str).toContain(
|
|
52
|
+
expect(str).toContain('<b>total</b>');
|
|
53
|
+
expect(str).toContain('<font color=red>:</font>');
|
|
54
|
+
expect(str).toContain('<font color=green>9007199254740991</font>');
|
|
48
55
|
});
|
|
49
56
|
test('testWriterWithTypeWrapper', function () {
|
|
50
|
-
var node = TDJSONParser_1.TDJSONParser.get().parse(
|
|
51
|
-
var opt = TDJSONWriterOption_1.TDJSONWriterOption.ofIndentFactor(
|
|
52
|
-
var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt)
|
|
53
|
-
expect(str).
|
|
57
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse('{key:113, $type: someType}');
|
|
58
|
+
var opt = TDJSONWriterOption_1.TDJSONWriterOption.ofIndentFactor(0).setUseTypeWrapper(true);
|
|
59
|
+
var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
|
|
60
|
+
expect(str).toMatchInlineSnapshot("\"someType{\\\"key\\\":113,}\"");
|
|
54
61
|
});
|
|
55
62
|
});
|
|
56
63
|
//# sourceMappingURL=TDJsonWriter.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TDJsonWriter.spec.js","sourceRoot":"","sources":["../../../src/json/__test__/TDJsonWriter.spec.ts"],"names":[],"mappings":";;AAAA,wDAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"TDJsonWriter.spec.js","sourceRoot":"","sources":["../../../src/json/__test__/TDJsonWriter.spec.ts"],"names":[],"mappings":";;AAAA,wDAAuD;AACvD,wDAAuD;AACvD,oEAA6E;AAC7E,uCAAsC;AACtC,oDAAmD;AAEnD,IAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;AAEhC,QAAQ,CAAC,cAAc,EAAE;IACvB,IAAI,CAAC,0BAA0B,EAAE;QAC/B,IAAI,IAAI,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAM,GAAG,GAAG,IAAI,uCAAkB,EAAE;aACjC,eAAe,CAAC,CAAC,CAAC;aAClB,aAAa,CAAC,uBAAU,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;aACrD,aAAa,CAAC,uBAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,IAAM,GAAG,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;QAC9B,IAAI,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE;QAChB,IAAM,IAAI,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAM,GAAG,GAAG,uCAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;aAC7C,aAAa,CAAC,KAAK,CAAC;aACpB,iBAAiB,CAAC,KAAK,CAAC;aACxB,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAM,MAAM,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,2BAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE;QAC7B,IAAM,IAAI,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAM,GAAG,GAAG,IAAI,uCAAkB,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAC,CAAC,EAAE,IAAI;YAC/E,QAAQ,IAAI,EAAE;gBACZ,KAAK,6BAAQ,CAAC,GAAG;oBACf,OAAO,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC5B,KAAK,6BAAQ,CAAC,QAAQ;oBACpB,OAAO,kBAAkB,GAAG,CAAC,GAAG,SAAS,CAAC;gBAC5C,KAAK,6BAAQ,CAAC,UAAU;oBACtB,OAAO,oBAAoB,GAAG,CAAC,GAAG,SAAS,CAAC;gBAC9C,KAAK,6BAAQ,CAAC,MAAM,CAAC;gBACrB;oBACE,OAAO,CAAC,CAAC;aACZ;QACH,CAAC,CAAC,CAAC;QACH,IAAM,GAAG,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,EAAE;QAChC,IAAM,IAAI,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACpE,IAAM,GAAG,GAAG,uCAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACzE,IAAM,GAAG,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,gCAA4B,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -7,7 +7,7 @@ var TestData = /** @class */ (function () {
|
|
|
7
7
|
this.proto = "\nn: {\n n1: {\n n11: 1\n # Duplicated key; ':' is emitted before '{'\n n11 {\n n111: false\n }\n n12: \"2\"\n }\n # Multi-line comments\n # Line2\n ########\n n1: {\n n11: \"abcd\"\n # Extension keys\n [d.e.f]: 4\n n11: \"multiline 1\n\"\n 'line2'\n }\n n2: [1,2,3]\n n2 [3,4,5] # ':' is emitted before '['\n \"n3\" [6, 7, 8, 9]\n noVal:\n}";
|
|
8
8
|
this.JSON5 = "\n // https://spec.json5.org/\n {\n // comments\n unquoted: 'and you can quote me on that',\n singleQuotes: 'I can use \"double quotes\" here',\n lineBreaks: \"Look, Mom! No \\n's!\",\n hexadecimal: 0xdecaf,\n leadingDecimalPoint: .8675309, andTrailing: 8675309.,\n positiveSign: +1,\n trailingComma: 'in objects', andIn: ['arrays',],\n \"backwardsCompatible\": \"with JSON\",\n }";
|
|
9
9
|
this.stream = "\n{\"a\": 1, \"obj\": {\"$id\": 1}, \"ref\": {\"$ref\": \"#1\"}}\n{\"b\": 2, \"obj\": {\"$id\": 1}, \"ref\": {\"$ref\": \"#1\"}},\na:1\nb:2\n";
|
|
10
|
-
this.testQuote = "{\n \"key with space\": \"value contains special chars: [\",\n \"normalKey\": \"normal Value\",\n \"keyWith:\": \"value has quotes: \" \", '\",\n \"keyWIth\n\": \"value with\n newline\",\n \"$type\": \"TestQuote\"\n}\n";
|
|
10
|
+
this.testQuote = "{\n \"key with space\": \"value contains special chars: [\",\n \"normalKey\": \"normal Value\",\n \"keyWith:\": \"value has quotes: \" \", '\",\n \"keyWIth\n\": \"value with\n newline\",\n \"keyWith#\": \"#\",\n \"$type\": \"TestQuote\"\n}\n";
|
|
11
11
|
}
|
|
12
12
|
return TestData;
|
|
13
13
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestData.js","sourceRoot":"","sources":["../../../src/json/__test__/TestData.ts"],"names":[],"mappings":";;;AAAA;IAAA;QACA,aAAQ,GAAG,4xBAkCT,CAAC;QAEH,UAAK,GAAG,uYAwBN,CAAC;QAEH,UAAK,GAAG,8ZAaJ,CAAC;QAEL,WAAM,GAAG,mJAKR,CAAA;QAED,cAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"TestData.js","sourceRoot":"","sources":["../../../src/json/__test__/TestData.ts"],"names":[],"mappings":";;;AAAA;IAAA;QACA,aAAQ,GAAG,4xBAkCT,CAAC;QAEH,UAAK,GAAG,uYAwBN,CAAC;QAEH,UAAK,GAAG,8ZAaJ,CAAC;QAEL,WAAM,GAAG,mJAKR,CAAA;QAED,cAAS,GAAG,yPAQX,CAAA;IACD,CAAC;IAAD,eAAC;AAAD,CAAC,AA9FD,IA8FC;AA9FY,4BAAQ"}
|