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,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var TDJSONParser_1 = require("../../json/TDJSONParser");
|
|
4
|
+
var TDJSONWriter_1 = require("../../json/TDJSONWriter");
|
|
5
|
+
var TDJSONWriterOption_1 = require("../../json/TDJSONWriterOption");
|
|
6
|
+
var TestData_1 = require("./TestData");
|
|
7
|
+
var NodeFilter_1 = require("../../json/NodeFilter");
|
|
8
|
+
var __1 = require("../..");
|
|
9
|
+
var testData = new TestData_1.TestData();
|
|
10
|
+
describe('TDJsonWriter', function () {
|
|
11
|
+
test('testWriterWithNodeFilter', function () {
|
|
12
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
|
|
13
|
+
var opt = new TDJSONWriterOption_1.TDJSONWriterOption()
|
|
14
|
+
.setIndentFactor(2)
|
|
15
|
+
.addNodeFilter(NodeFilter_1.NodeFilter.mask('.*/address', '.*/ip'))
|
|
16
|
+
.addNodeFilter(NodeFilter_1.NodeFilter.exclude('.*/\\$id'));
|
|
17
|
+
var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
|
|
18
|
+
console.log(str);
|
|
19
|
+
expect(str).toMatchSnapshot();
|
|
20
|
+
node = TDJSONParser_1.TDJSONParser.get().parse(str);
|
|
21
|
+
expect(node.getValueByPath('/data/0/$id')).toBeNull();
|
|
22
|
+
expect(node.getValueByPath('/data/0/ip')).toEqual('<Masked:len=10>');
|
|
23
|
+
expect(node.getValueByPath('/data/0/address')).toEqual('{Masked:size=2}');
|
|
24
|
+
});
|
|
25
|
+
test('testQuote', function () {
|
|
26
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testQuote);
|
|
27
|
+
var opt = TDJSONWriterOption_1.TDJSONWriterOption.ofIndentFactor(2)
|
|
28
|
+
.setQuoteChars('"\'')
|
|
29
|
+
.setAlwaysQuoteKey(false)
|
|
30
|
+
.setAlwaysQuoteValue(false);
|
|
31
|
+
var result = __1.TD.stringify(node.toObject(), { jsonOption: opt }) + '\n';
|
|
32
|
+
expect(result).toMatchSnapshot();
|
|
33
|
+
expect(TDJSONParser_1.TDJSONParser.get()
|
|
34
|
+
.parse(result)
|
|
35
|
+
.toString()).toEqual(node.toString());
|
|
36
|
+
});
|
|
37
|
+
test('testQuote1', function () {
|
|
38
|
+
var obj = { name: 'test', columns: [{ field: '#' }, { field2: 'val2' }] };
|
|
39
|
+
var result = __1.TD.stringify(obj, { jsonOption: { alwaysQuoteKey: false, alwaysQuoteValue: false } });
|
|
40
|
+
expect(result).toMatchInlineSnapshot("\"{name:test,columns:[{field:\\\"#\\\"},{field2:val2}]}\"");
|
|
41
|
+
});
|
|
42
|
+
test('testWriterWithTextDeco', function () {
|
|
43
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData.testData);
|
|
44
|
+
var opt = new TDJSONWriterOption_1.TDJSONWriterOption().setIndentFactor(2).setTextDecorator(function (s, type) {
|
|
45
|
+
switch (type) {
|
|
46
|
+
case TDJSONWriterOption_1.TextType.KEY:
|
|
47
|
+
return '<b>' + s + '</b>';
|
|
48
|
+
case TDJSONWriterOption_1.TextType.OPERATOR:
|
|
49
|
+
return '<font color=red>' + s + '</font>';
|
|
50
|
+
case TDJSONWriterOption_1.TextType.NON_STRING:
|
|
51
|
+
return '<font color=green>' + s + '</font>';
|
|
52
|
+
case TDJSONWriterOption_1.TextType.STRING:
|
|
53
|
+
default:
|
|
54
|
+
return s;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
|
|
58
|
+
console.log(str);
|
|
59
|
+
expect(str).toMatchSnapshot();
|
|
60
|
+
expect(str).toContain('<b>total</b>');
|
|
61
|
+
expect(str).toContain('<font color=red>:</font>');
|
|
62
|
+
expect(str).toContain('<font color=green>9007199254740991</font>');
|
|
63
|
+
});
|
|
64
|
+
test('testWriterWithTypeWrapper', function () {
|
|
65
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse('{key:113, $type: someType}');
|
|
66
|
+
var opt = TDJSONWriterOption_1.TDJSONWriterOption.ofIndentFactor(0).setUseTypeWrapper(true);
|
|
67
|
+
var str = TDJSONWriter_1.TDJSONWriter.get().writeAsString(node, opt);
|
|
68
|
+
expect(str).toMatchInlineSnapshot("\"someType{\\\"key\\\":113,}\"");
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=TDJsonWriter.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDJsonWriter.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/TDJsonWriter.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var TDNode_1 = require("../../TDNode");
|
|
4
|
+
var TreeDoc_1 = require("../../TreeDoc");
|
|
5
|
+
test('testCreateLastNumberOfChildren', function () {
|
|
6
|
+
var node = new TreeDoc_1.TreeDoc().root.setType(TDNode_1.TDNodeType.ARRAY);
|
|
7
|
+
var start = new Date().getTime();
|
|
8
|
+
for (var i = 0; i < 1000000; i++) {
|
|
9
|
+
node.createChild("name_" + i).setType(TDNode_1.TDNodeType.MAP).createChild("name_" + i + "_1").setValue("value_" + i + "_1");
|
|
10
|
+
}
|
|
11
|
+
expect(node.getChild("name_0")).not.toBeNull();
|
|
12
|
+
var keys = node.getChildrenKeys();
|
|
13
|
+
var time = new Date().getTime() - start;
|
|
14
|
+
console.log(time);
|
|
15
|
+
expect(time).toBeLessThan(5000);
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=TDNode.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDNode.spec.js","sourceRoot":"","sources":["../../../../src/json/__test__/TDNode.spec.ts"],"names":[],"mappings":";;AAAA,uCAAkD;AAClD,yCAAwC;AAExC,IAAI,CAAC,gCAAgC,EAAE;IACrC,IAAM,IAAI,GAAG,IAAI,iBAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAU,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAU,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;KACrH;IACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC/C,IAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACpC,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TestData = void 0;
|
|
4
|
+
var TestData = /** @class */ (function () {
|
|
5
|
+
function TestData() {
|
|
6
|
+
this.testData = "\n// Some comments\n{\u00A0\n \"total\": 100000000000000000000,\n \"maxSafeInt\": 9007199254740991,\n \"limit\": 10,\n \"valueWithoutKey\",\n\n /* block comments */\n \"data\": [\n {\n \"$id\": \"1\",\n \"name\": \"Some Name 1\", // More line comments\n \"address\": {\n \"streetLine\": \"1st st\",\n city: \"san jose\",\n },\n \"createdAt\": \"2017-07-14T17:17:33.010Z\",\n 'ip': 10.1.22.22\n },\n {\n \"$id\": \"2\",\n \"name\": \"Some Name 2\",\n \"address\": /*comments*/ {\n \"streetLine\": \"2nd st\",\n city: \"san jose\",\n },\n \"createdAt\": \"2017-07-14T17:17:33.010Z\",\n },\n `Multiple line literal\n Line2`\n ],\n \"objRef\": {\"$ref\": \"1\"},\n lastValueWithoutKey\n}";
|
|
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
|
+
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
|
+
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 \"keyWith#\": \"#\",\n \"$type\": \"TestQuote\"\n}\n";
|
|
11
|
+
}
|
|
12
|
+
return TestData;
|
|
13
|
+
}());
|
|
14
|
+
exports.TestData = TestData;
|
|
15
|
+
//# sourceMappingURL=TestData.js.map
|
|
@@ -0,0 +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,yPAQX,CAAA;IACD,CAAC;IAAD,eAAC;AAAD,CAAC,AA9FD,IA8FC;AA9FY,4BAAQ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ICoder, ObjectCoderContext, TDObjectCoderOption } from './TDObjectCoder';
|
|
2
|
+
import { TDNode } from '../TDNode';
|
|
3
|
+
export declare class CustomCoder implements ICoder {
|
|
4
|
+
static it: CustomCoder;
|
|
5
|
+
static get(): CustomCoder;
|
|
6
|
+
encode(obj: any, opt: TDObjectCoderOption, target: TDNode, ctx: ObjectCoderContext): boolean;
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomCoder = void 0;
|
|
4
|
+
var TDNode_1 = require("../TDNode");
|
|
5
|
+
var TDJSONParser_1 = require("../json/TDJSONParser");
|
|
6
|
+
var TDJSONParserOption_1 = require("../json/TDJSONParserOption");
|
|
7
|
+
var CustomCoder = /** @class */ (function () {
|
|
8
|
+
function CustomCoder() {
|
|
9
|
+
}
|
|
10
|
+
CustomCoder.get = function () {
|
|
11
|
+
return CustomCoder.it;
|
|
12
|
+
};
|
|
13
|
+
CustomCoder.prototype.encode = function (obj, opt, target, ctx) {
|
|
14
|
+
if (!obj.toJSON)
|
|
15
|
+
return false;
|
|
16
|
+
var jsonStr = obj.toJSON();
|
|
17
|
+
if (typeof (jsonStr) !== 'string')
|
|
18
|
+
return false;
|
|
19
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(jsonStr, TDJSONParserOption_1.TDJSONParserOption.ofDefaultRootType(TDNode_1.TDNodeType.SIMPLE));
|
|
20
|
+
target.setType(node.type).setValue(node.value).children = node.children;
|
|
21
|
+
return true;
|
|
22
|
+
};
|
|
23
|
+
CustomCoder.it = new CustomCoder();
|
|
24
|
+
return CustomCoder;
|
|
25
|
+
}());
|
|
26
|
+
exports.CustomCoder = CustomCoder;
|
|
27
|
+
//# sourceMappingURL=CustomCoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomCoder.js","sourceRoot":"","sources":["../../../src/objcoder/CustomCoder.ts"],"names":[],"mappings":";;;AACA,oCAAuC;AAEvC,qDAAoD;AACpD,iEAAgE;AAEhE;IAAA;IAeA,CAAC;IAbe,eAAG,GAAjB;QACE,OAAO,WAAW,CAAC,EAAE,CAAC;IACxB,CAAC;IACM,4BAAM,GAAb,UAAc,GAAQ,EAAE,GAAwB,EAAE,MAAc,EAAE,GAAuB;QACvF,IAAI,CAAC,GAAG,CAAC,MAAM;YACb,OAAO,KAAK,CAAC;QACf,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ;YAC9B,OAAO,KAAK,CAAC;QACf,IAAM,IAAI,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,uCAAkB,CAAC,iBAAiB,CAAC,mBAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACxG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAba,cAAE,GAAG,IAAI,WAAW,EAAE,CAAC;IAcvC,kBAAC;CAAA,AAfD,IAeC;AAfY,kCAAW"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { TDNode } from '..';
|
|
2
|
+
export declare class ObjectCoderContext {
|
|
3
|
+
nextId: number;
|
|
4
|
+
/** only used for encoding */
|
|
5
|
+
objNodeMap: Map<any, TDNode>;
|
|
6
|
+
/** only used for decoding */
|
|
7
|
+
idToObjMap: Map<string, TDNode>;
|
|
8
|
+
path: any[];
|
|
9
|
+
}
|
|
10
|
+
export interface ICoder {
|
|
11
|
+
/** return true means encoded */
|
|
12
|
+
encode(obj: any, opt: TDObjectCoderOption, target: TDNode, ctx: ObjectCoderContext): boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class TDObjectCoderOption {
|
|
15
|
+
coders: ICoder[];
|
|
16
|
+
showType: boolean;
|
|
17
|
+
showFunction: boolean;
|
|
18
|
+
setShowType(showType: boolean): this;
|
|
19
|
+
setShowFunction(showFunction: boolean): this;
|
|
20
|
+
}
|
|
21
|
+
/** Javascript specific class that map JS object to/from TDNode */
|
|
22
|
+
export declare class TDObjectCoder {
|
|
23
|
+
static it: TDObjectCoder;
|
|
24
|
+
readonly KEY_ID = "$id";
|
|
25
|
+
readonly KEY_REF = "$ref";
|
|
26
|
+
readonly KEY_TYPE = "$type";
|
|
27
|
+
static get(): TDObjectCoder;
|
|
28
|
+
static encode(obj: any, opt?: Partial<TDObjectCoderOption>, target?: TDNode, ctx?: ObjectCoderContext): TDNode;
|
|
29
|
+
encode(obj: any, option?: Partial<TDObjectCoderOption>, target?: TDNode, ctx?: ObjectCoderContext): TDNode;
|
|
30
|
+
private setRef;
|
|
31
|
+
private isNullOrUndefined;
|
|
32
|
+
private isPrimitive;
|
|
33
|
+
private isArrayLikeObject;
|
|
34
|
+
private isLength;
|
|
35
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TDObjectCoder = exports.TDObjectCoderOption = exports.ObjectCoderContext = void 0;
|
|
4
|
+
var TDNode_1 = require("../TDNode");
|
|
5
|
+
var TreeDoc_1 = require("../TreeDoc");
|
|
6
|
+
var CustomCoder_1 = require("./CustomCoder");
|
|
7
|
+
var StringUtil_1 = require("../core/StringUtil");
|
|
8
|
+
var __1 = require("..");
|
|
9
|
+
var ObjectCoderContext = /** @class */ (function () {
|
|
10
|
+
function ObjectCoderContext() {
|
|
11
|
+
this.nextId = 1;
|
|
12
|
+
/** only used for encoding */
|
|
13
|
+
this.objNodeMap = new Map();
|
|
14
|
+
/** only used for decoding */
|
|
15
|
+
this.idToObjMap = new Map();
|
|
16
|
+
this.path = [];
|
|
17
|
+
}
|
|
18
|
+
return ObjectCoderContext;
|
|
19
|
+
}());
|
|
20
|
+
exports.ObjectCoderContext = ObjectCoderContext;
|
|
21
|
+
var TDObjectCoderOption = /** @class */ (function () {
|
|
22
|
+
function TDObjectCoderOption() {
|
|
23
|
+
this.coders = [CustomCoder_1.CustomCoder.get()];
|
|
24
|
+
this.showType = false;
|
|
25
|
+
this.showFunction = false;
|
|
26
|
+
}
|
|
27
|
+
TDObjectCoderOption.prototype.setShowType = function (showType) {
|
|
28
|
+
this.showType = showType;
|
|
29
|
+
return this;
|
|
30
|
+
};
|
|
31
|
+
TDObjectCoderOption.prototype.setShowFunction = function (showFunction) {
|
|
32
|
+
this.showFunction = showFunction;
|
|
33
|
+
return this;
|
|
34
|
+
};
|
|
35
|
+
return TDObjectCoderOption;
|
|
36
|
+
}());
|
|
37
|
+
exports.TDObjectCoderOption = TDObjectCoderOption;
|
|
38
|
+
/** Javascript specific class that map JS object to/from TDNode */
|
|
39
|
+
var TDObjectCoder = /** @class */ (function () {
|
|
40
|
+
function TDObjectCoder() {
|
|
41
|
+
this.KEY_ID = '$id';
|
|
42
|
+
this.KEY_REF = '$ref';
|
|
43
|
+
this.KEY_TYPE = '$type';
|
|
44
|
+
}
|
|
45
|
+
TDObjectCoder.get = function () {
|
|
46
|
+
return TDObjectCoder.it;
|
|
47
|
+
};
|
|
48
|
+
TDObjectCoder.encode = function (obj, opt, target, ctx) {
|
|
49
|
+
if (opt === void 0) { opt = {}; }
|
|
50
|
+
if (target === void 0) { target = new TreeDoc_1.TreeDoc().root; }
|
|
51
|
+
if (ctx === void 0) { ctx = new ObjectCoderContext(); }
|
|
52
|
+
return TDObjectCoder.get().encode(obj, opt, target, ctx);
|
|
53
|
+
};
|
|
54
|
+
TDObjectCoder.prototype.encode = function (obj, option, target, ctx) {
|
|
55
|
+
if (option === void 0) { option = {}; }
|
|
56
|
+
if (target === void 0) { target = new TreeDoc_1.TreeDoc().root; }
|
|
57
|
+
if (ctx === void 0) { ctx = new ObjectCoderContext(); }
|
|
58
|
+
var opt = __1.LangUtil.mergeDeep(new TDObjectCoderOption(), option);
|
|
59
|
+
if (this.isNullOrUndefined(obj))
|
|
60
|
+
return target;
|
|
61
|
+
if (this.isPrimitive(obj))
|
|
62
|
+
return target.setValue(obj);
|
|
63
|
+
if (typeof obj === 'function')
|
|
64
|
+
return target.setValue(opt.showFunction ? obj.toString() : null);
|
|
65
|
+
for (var _i = 0, _a = opt.coders; _i < _a.length; _i++) {
|
|
66
|
+
var coder = _a[_i];
|
|
67
|
+
if (coder.encode(obj, opt, target, ctx))
|
|
68
|
+
return target;
|
|
69
|
+
}
|
|
70
|
+
var idx = ctx.path.indexOf(obj);
|
|
71
|
+
if (idx >= 0)
|
|
72
|
+
return this.setRef(target, StringUtil_1.StringUtil.repeat('../', ctx.path.length - idx));
|
|
73
|
+
var existNode = ctx.objNodeMap.get(obj);
|
|
74
|
+
if (existNode) {
|
|
75
|
+
if (existNode.type === TDNode_1.TDNodeType.MAP) {
|
|
76
|
+
if (!existNode.getChild(this.KEY_ID)) {
|
|
77
|
+
var id = ctx.nextId++;
|
|
78
|
+
existNode.createChild(this.KEY_ID).setValue(id);
|
|
79
|
+
target.doc.idMap[id] = existNode;
|
|
80
|
+
}
|
|
81
|
+
return this.setRef(target, '#' + existNode.getChildValue(this.KEY_ID));
|
|
82
|
+
}
|
|
83
|
+
else
|
|
84
|
+
return this.setRef(target, existNode.pathAsString);
|
|
85
|
+
}
|
|
86
|
+
ctx.path.push(obj);
|
|
87
|
+
ctx.objNodeMap.set(obj, target);
|
|
88
|
+
if (this.isArrayLikeObject(obj)) {
|
|
89
|
+
target.type = TDNode_1.TDNodeType.ARRAY;
|
|
90
|
+
// tslint:disable-next-line: prefer-for-of
|
|
91
|
+
for (var i = 0; i < obj.length; i++)
|
|
92
|
+
this.encode(obj[i], opt, target.createChild(), ctx);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// Object or Map
|
|
96
|
+
target.type = TDNode_1.TDNodeType.MAP;
|
|
97
|
+
if (opt.showType && obj.constructor && obj.constructor.name !== 'Object')
|
|
98
|
+
target.createChild(this.KEY_TYPE).setValue(obj.constructor.name);
|
|
99
|
+
for (var _b = 0, _c = Object.keys(obj); _b < _c.length; _b++) {
|
|
100
|
+
var k = _c[_b];
|
|
101
|
+
if (k.startsWith("$$tdNode"))
|
|
102
|
+
continue;
|
|
103
|
+
if (this.isNullOrUndefined(obj[k]))
|
|
104
|
+
continue;
|
|
105
|
+
if (!opt.showFunction && typeof obj === 'function')
|
|
106
|
+
continue;
|
|
107
|
+
this.encode(obj[k], opt, target.createChild(k), ctx);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
ctx.path.pop();
|
|
111
|
+
return target;
|
|
112
|
+
};
|
|
113
|
+
TDObjectCoder.prototype.setRef = function (node, ref) {
|
|
114
|
+
node
|
|
115
|
+
.setType(TDNode_1.TDNodeType.MAP)
|
|
116
|
+
.createChild(this.KEY_REF)
|
|
117
|
+
.setValue(ref);
|
|
118
|
+
return node;
|
|
119
|
+
};
|
|
120
|
+
// Utilities methods
|
|
121
|
+
TDObjectCoder.prototype.isNullOrUndefined = function (obj) {
|
|
122
|
+
return obj === null || obj === undefined || typeof obj === 'symbol';
|
|
123
|
+
};
|
|
124
|
+
TDObjectCoder.prototype.isPrimitive = function (obj) {
|
|
125
|
+
var type = typeof obj;
|
|
126
|
+
if (obj === null || obj === undefined || type !== 'object' && type !== 'function')
|
|
127
|
+
return true;
|
|
128
|
+
var cstr = obj.constructor && obj.constructor.name;
|
|
129
|
+
return cstr === 'Number' || cstr === 'String' || cstr === 'Boolean';
|
|
130
|
+
};
|
|
131
|
+
TDObjectCoder.prototype.isArrayLikeObject = function (obj) {
|
|
132
|
+
return !this.isPrimitive(obj) && this.isLength(obj.length);
|
|
133
|
+
};
|
|
134
|
+
TDObjectCoder.prototype.isLength = function (value) {
|
|
135
|
+
return typeof value === 'number' && value > -1 && value % 1 === 0 && value <= Number.MAX_SAFE_INTEGER;
|
|
136
|
+
};
|
|
137
|
+
TDObjectCoder.it = new TDObjectCoder();
|
|
138
|
+
return TDObjectCoder;
|
|
139
|
+
}());
|
|
140
|
+
exports.TDObjectCoder = TDObjectCoder;
|
|
141
|
+
//# sourceMappingURL=TDObjectCoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDObjectCoder.js","sourceRoot":"","sources":["../../../src/objcoder/TDObjectCoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var config_1 = require("vitest/config");
|
|
4
|
+
exports.default = config_1.defineConfig({
|
|
5
|
+
test: {
|
|
6
|
+
globals: true,
|
|
7
|
+
include: ['src/**/*.spec.ts'],
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=vitest.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";;AAAA,wCAA6C;AAE7C,kBAAe,qBAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAC9B;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "treedoc",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.50",
|
|
4
4
|
"description": "JSONex TreeDoc Json Parser",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"test": "
|
|
8
|
+
"test": "vitest run",
|
|
9
|
+
"test:watch": "vitest",
|
|
10
|
+
"test:coverage": "vitest run --coverage",
|
|
9
11
|
"build": "tsc",
|
|
10
12
|
"format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
|
|
11
13
|
"lint": "tslint -p tsconfig.json",
|
|
@@ -36,19 +38,15 @@
|
|
|
36
38
|
"license": "MIT",
|
|
37
39
|
"homepage": "https://github.com/jianwu/jsonextreedoc_ts/#readme",
|
|
38
40
|
"devDependencies": {
|
|
39
|
-
"@types/
|
|
41
|
+
"@types/node": "^22.15.21",
|
|
40
42
|
"codecov": "^3.6.1",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"ts-jest": "^26.2.0",
|
|
44
|
-
"tslint": "^5.20.1",
|
|
43
|
+
"prettier": "^3.5.3",
|
|
44
|
+
"tslint": "^6.1.3",
|
|
45
45
|
"tslint-config-prettier": "^1.18.0",
|
|
46
|
-
"typescript": "^
|
|
46
|
+
"typescript": "^5.8.3",
|
|
47
|
+
"vitest": "^3.2.2"
|
|
47
48
|
},
|
|
48
49
|
"files": [
|
|
49
50
|
"lib/**/*"
|
|
50
|
-
]
|
|
51
|
-
"jest": {
|
|
52
|
-
"testEnvironment": "node"
|
|
53
|
-
}
|
|
51
|
+
]
|
|
54
52
|
}
|