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,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.TreeDoc_ofNode = exports.TreeDoc_merge = exports.TreeDoc_ofArray = exports.TreeDoc = void 0;
|
|
15
|
+
var _1 = require(".");
|
|
16
|
+
var ListUtil_1 = require("./core/ListUtil");
|
|
17
|
+
var LangUtil_1 = require("./core/LangUtil");
|
|
18
|
+
var TDNode_1 = require("./TDNode");
|
|
19
|
+
var TreeDoc = /** @class */ (function () {
|
|
20
|
+
function TreeDoc(rootKey, uri) {
|
|
21
|
+
if (rootKey === void 0) { rootKey = 'root'; }
|
|
22
|
+
if (uri === void 0) { uri = null; }
|
|
23
|
+
this.uri = uri;
|
|
24
|
+
this.idMap = {};
|
|
25
|
+
this.root = new TDNode_1.TDNode(this, "root");
|
|
26
|
+
this.root.key = rootKey;
|
|
27
|
+
}
|
|
28
|
+
TreeDoc.ofArray = function () {
|
|
29
|
+
var result = new TreeDoc();
|
|
30
|
+
result.root.setType(_1.TDNodeType.ARRAY);
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
/** Retrain only the sub-tree under the input node. */
|
|
34
|
+
TreeDoc.prototype.retain = function (node) {
|
|
35
|
+
node.setKey(this.root.key);
|
|
36
|
+
this.root = node;
|
|
37
|
+
node.parent = undefined;
|
|
38
|
+
return this;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Create a TreeDoc with array root node contains the input nodes. This method will mutate the input nodes without
|
|
42
|
+
* copying them. So the original Treedoc and parent associated with nodes will be obsoleted.
|
|
43
|
+
* For idMap merge, all the id will be reassigned as id + "_" + docId to avoid collision.
|
|
44
|
+
*/
|
|
45
|
+
TreeDoc.merge = function (nodes) {
|
|
46
|
+
var result = new TreeDoc();
|
|
47
|
+
result.root.type = _1.TDNodeType.ARRAY;
|
|
48
|
+
var docId = 0;
|
|
49
|
+
for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {
|
|
50
|
+
var node = nodes_1[_i];
|
|
51
|
+
node.setKey(undefined);
|
|
52
|
+
result.idMap = __assign(__assign({}, result.idMap), ListUtil_1.ListUtil.mapKeys(node.doc.idMap, function (k) { return k + "_" + docId; }));
|
|
53
|
+
node.foreach(function (n) {
|
|
54
|
+
n.doc = result;
|
|
55
|
+
LangUtil_1.LangUtil.doIfNotNull(n.getChild(TDNode_1.TDNode.REF_KEY), function (nRef) { return nRef.value += "_" + docId; });
|
|
56
|
+
LangUtil_1.LangUtil.doIfNotNull(n.getChild(TDNode_1.TDNode.ID_KEY), function (nRef) { return nRef.value += "_" + docId; });
|
|
57
|
+
});
|
|
58
|
+
result.root.addChild(node);
|
|
59
|
+
docId++;
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Build a tree node with exiting node as root node. This method will mutate input node so that the original doc and
|
|
65
|
+
* parent associated with that node will be obsoleted. The that node is still associated with original doc, the original
|
|
66
|
+
* doc will be in invalid state.
|
|
67
|
+
*/
|
|
68
|
+
TreeDoc.ofNode = function (node) {
|
|
69
|
+
var key = node.doc.root.key;
|
|
70
|
+
var result = new TreeDoc(node.doc.root.key, node.doc.uri);
|
|
71
|
+
result.root = node.setKey(key);
|
|
72
|
+
result.idMap = __assign({}, node.doc.idMap);
|
|
73
|
+
node.doc = result;
|
|
74
|
+
node.parent = undefined;
|
|
75
|
+
return result;
|
|
76
|
+
};
|
|
77
|
+
return TreeDoc;
|
|
78
|
+
}());
|
|
79
|
+
exports.TreeDoc = TreeDoc;
|
|
80
|
+
// Jest has problem to access static method. We have to define global method for Jest spec to access
|
|
81
|
+
function TreeDoc_ofArray() {
|
|
82
|
+
return TreeDoc.ofArray();
|
|
83
|
+
}
|
|
84
|
+
exports.TreeDoc_ofArray = TreeDoc_ofArray;
|
|
85
|
+
function TreeDoc_merge(nodes) {
|
|
86
|
+
return TreeDoc.merge(nodes);
|
|
87
|
+
}
|
|
88
|
+
exports.TreeDoc_merge = TreeDoc_merge;
|
|
89
|
+
function TreeDoc_ofNode(node) {
|
|
90
|
+
return TreeDoc.ofNode(node);
|
|
91
|
+
}
|
|
92
|
+
exports.TreeDoc_ofNode = TreeDoc_ofNode;
|
|
93
|
+
//# sourceMappingURL=TreeDoc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeDoc.js","sourceRoot":"","sources":["../../src/TreeDoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var TDJSONParser_1 = require("../json/TDJSONParser");
|
|
4
|
+
var TD_1 = require("../TD");
|
|
5
|
+
var TDNode_1 = require("../TDNode");
|
|
6
|
+
var TestObject = /** @class */ (function () {
|
|
7
|
+
function TestObject(title) {
|
|
8
|
+
this.title = title;
|
|
9
|
+
this.nullObj = null;
|
|
10
|
+
}
|
|
11
|
+
TestObject.prototype.functionObj = function (num) {
|
|
12
|
+
console.log(num);
|
|
13
|
+
};
|
|
14
|
+
return TestObject;
|
|
15
|
+
}());
|
|
16
|
+
var commonObj = new TestObject('common');
|
|
17
|
+
var obj = {
|
|
18
|
+
num: 10,
|
|
19
|
+
obj: {
|
|
20
|
+
str: '123',
|
|
21
|
+
bool: true,
|
|
22
|
+
date: new Date('2019-12-16T17:34:45.024Z'),
|
|
23
|
+
nestObj: commonObj,
|
|
24
|
+
cyclic: null,
|
|
25
|
+
specialArray: [10, undefined, function (a) { ; }, Symbol('')],
|
|
26
|
+
},
|
|
27
|
+
obj1: commonObj,
|
|
28
|
+
};
|
|
29
|
+
var commonObjStr = "{\n $type:'TestObject',\n title:'common'\n}";
|
|
30
|
+
// ES6 doesn't work
|
|
31
|
+
var commonObjConstructorEs5 = "{\n $type:'TestObject',\n functionObj:'function (num) {\\n console.log(num);\\n }'\n}";
|
|
32
|
+
var commonObjConstructorEs6 = "{\n $type:'TestObject'\n}";
|
|
33
|
+
var objStr = "{\n \"num\":10,\n \"obj\":{\n \"str\":\"123\",\n \"bool\":true,\n \"date\":\"2019-12-16T17:34:45.024Z\",\n \"nestObj\":{\n \"title\":\"common\",\n \"$id\":1\n },\n \"cyclic\":{\n \"$ref\":\"../../\"\n },\n \"specialArray\":[\n 10,\n null,\n null,\n null\n ]\n },\n \"obj1\":{\n \"$ref\":\"#1\"\n },\n \"arrayRef\":{\n \"$ref\":\"/obj/specialArray\"\n }\n}";
|
|
34
|
+
obj.obj.cyclic = obj;
|
|
35
|
+
obj.arrayRef = obj.obj.specialArray;
|
|
36
|
+
describe('TD', function () {
|
|
37
|
+
test('stringify with Options', function () {
|
|
38
|
+
expect(TD_1.TD.stringify(commonObj, {
|
|
39
|
+
coderOption: {
|
|
40
|
+
showType: true
|
|
41
|
+
},
|
|
42
|
+
jsonOption: {
|
|
43
|
+
alwaysQuoteKey: false,
|
|
44
|
+
quoteChars: "'",
|
|
45
|
+
indentFactor: 2
|
|
46
|
+
}
|
|
47
|
+
})).toBe(commonObjStr);
|
|
48
|
+
});
|
|
49
|
+
test('stringify with showFunction', function () {
|
|
50
|
+
var opt = new TD_1.TDEncodeOption();
|
|
51
|
+
opt.jsonOption
|
|
52
|
+
.setAlwaysQuoteKey(false)
|
|
53
|
+
.setQuoteChars("'")
|
|
54
|
+
.setIndentFactor(2);
|
|
55
|
+
opt.coderOption
|
|
56
|
+
.setShowType(true)
|
|
57
|
+
.setShowFunction(true);
|
|
58
|
+
// Not sure why Object.keys doesn't return any keys for this particular test case for ES6
|
|
59
|
+
expect(TD_1.TD.stringify(commonObj.constructor.prototype, opt)).toBe(commonObjConstructorEs5);
|
|
60
|
+
});
|
|
61
|
+
test('stringify cyclic without options', function () {
|
|
62
|
+
var str = TD_1.TD.stringify(obj, " ");
|
|
63
|
+
console.log(str);
|
|
64
|
+
expect(str).toBe(objStr);
|
|
65
|
+
});
|
|
66
|
+
test('parse', function () {
|
|
67
|
+
var o = TD_1.TD.parse(objStr);
|
|
68
|
+
var str = TD_1.TD.stringify(o, " ");
|
|
69
|
+
expect(str).toEqual(objStr);
|
|
70
|
+
console.log(str);
|
|
71
|
+
expect(o.obj1).toBe(o.obj.nestObj);
|
|
72
|
+
expect(o.obj.cyclic).toBe(o);
|
|
73
|
+
expect(o.arrayRef).toBe(o.obj.specialArray);
|
|
74
|
+
});
|
|
75
|
+
test('parseWithOption', function () {
|
|
76
|
+
var o = TD_1.TD.parse("a,b,c", { defaultRootType: TDNode_1.TDNodeType.ARRAY });
|
|
77
|
+
expect(o).toEqual(["a", "b", "c"]);
|
|
78
|
+
});
|
|
79
|
+
test('parseObjectWithoutStart', function () {
|
|
80
|
+
var o = TD_1.TD.parse("a:1,b:c", { defaultRootType: TDNode_1.TDNodeType.MAP });
|
|
81
|
+
expect(TD_1.TD.stringify(o, { jsonOption: { quoteChars: "'" } })).toEqual("{'a':1,'b':'c'}");
|
|
82
|
+
});
|
|
83
|
+
test('stringifyTDNode', function () {
|
|
84
|
+
var td = TDJSONParser_1.TDJSONParser.get().parse("{a:1, b:2}");
|
|
85
|
+
var encodeOpt = new TD_1.TDEncodeOption();
|
|
86
|
+
encodeOpt.coderOption.coders = []; // remote default coder which will use `toJSON()` method
|
|
87
|
+
expect(TD_1.TD.stringify(td, encodeOpt)).toMatchSnapshot();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=TD.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TD.spec.js","sourceRoot":"","sources":["../../../src/__tests__/TD.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var __1 = require("..");
|
|
4
|
+
var TDJSONParser_1 = require("../json/TDJSONParser");
|
|
5
|
+
describe('TDNode', function () {
|
|
6
|
+
var testData = "\n {\n \"a\": 1\n \"b\": [1,2,3]\n \"c\": \"str\",\n \"validRef\": {$ref: /a},\n \"invalidRef\": {$ref: abc}\n }\n ";
|
|
7
|
+
var testData1 = "\n {\n \"log\": {\n \"version\": \"1.2\",\n \"creator\": {\n \"name\": \"WebInspector\",\n \"version\": \"537.36\"\n }\n }\n }";
|
|
8
|
+
var testJson = __1.TD.parse(testData);
|
|
9
|
+
test('testToObject', function () {
|
|
10
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData);
|
|
11
|
+
var obj = node.toObject(true);
|
|
12
|
+
var str = __1.TD.stringify(obj, { jsonOption: { quoteChars: "'" } });
|
|
13
|
+
expect(__1.TD.stringify(obj, { jsonOption: { quoteChars: "'" } })).toMatchSnapshot();
|
|
14
|
+
}),
|
|
15
|
+
test('testToProxy', function () {
|
|
16
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData);
|
|
17
|
+
var proxy = node.toProxy();
|
|
18
|
+
expect(proxy.length).toBe(5);
|
|
19
|
+
expect(proxy.a).toBe(1);
|
|
20
|
+
expect(proxy.b.length).toBe(testJson.b.length);
|
|
21
|
+
expect(proxy.b[2]).toBe(3);
|
|
22
|
+
expect(proxy.c).toBe('str');
|
|
23
|
+
expect(proxy.toString()).toMatchInlineSnapshot("\"{a: 1, b: [1, 2, 3], c: 'str', validRef: {$ref: '/a'}, invalidRef: {$ref: 'abc'}}\"");
|
|
24
|
+
// expect(Object.keys(proxy.b)).toBe(["@target"]);
|
|
25
|
+
expect(__1.TD.stringify(proxy, { jsonOption: { quoteChars: "'" } })).toMatchSnapshot();
|
|
26
|
+
});
|
|
27
|
+
test('testToProxy1', function () {
|
|
28
|
+
var node = TDJSONParser_1.TDJSONParser.get().parse(testData1);
|
|
29
|
+
var proxy = node.getByPath('log/creator').toProxy();
|
|
30
|
+
expect(proxy.toString()).toMatchInlineSnapshot("\"{name: 'WebInspector', version: '537.36'}\"");
|
|
31
|
+
expect(proxy.toJSON()).toMatchInlineSnapshot("\"{name: 'WebInspector', version: '537.36'}\"");
|
|
32
|
+
// TODO: fix, the string should be "{'creator': {'name':'WebInspector','version':'537.36'}}"
|
|
33
|
+
expect(__1.TD.stringify(proxy, { jsonOption: { quoteChars: "'" } })).toMatchInlineSnapshot("\"{'name':'WebInspector','version':'537.36'}\"");
|
|
34
|
+
});
|
|
35
|
+
test('testCreateLargeNumberOfChildren', function () {
|
|
36
|
+
var node = new __1.TreeDoc().root.setType(__1.TDNodeType.ARRAY);
|
|
37
|
+
var start = new Date().getTime();
|
|
38
|
+
for (var i = 0; i < 500000; i++) {
|
|
39
|
+
node.createChild("name_" + i).setType(__1.TDNodeType.MAP).createChild("name_" + i + "_1").setValue("value_" + i + "_1");
|
|
40
|
+
}
|
|
41
|
+
expect(node.getChild("name_1")).not.toBeNull();
|
|
42
|
+
expect(node.getChild("name_1000")).not.toBeNull();
|
|
43
|
+
node.getChildrenKeys();
|
|
44
|
+
var time = new Date().getTime() - start;
|
|
45
|
+
console.log(time);
|
|
46
|
+
expect(time).toBeLessThan(2000);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=TDNode.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDNode.spec.js","sourceRoot":"","sources":["../../../src/__tests__/TDNode.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var TDPath_1 = require("../TDPath");
|
|
4
|
+
var __1 = require("..");
|
|
5
|
+
describe('TDPath', function () {
|
|
6
|
+
test('parse', function () {
|
|
7
|
+
expect(TDPath_1.TDPath.parse('/p1/p2')).toEqual(new TDPath_1.TDPath().addParts(__1.Part.ofRoot(), __1.Part.ofChild('p1'), __1.Part.ofChild('p2')));
|
|
8
|
+
expect(TDPath_1.TDPath.parse('../p1/p2')).toEqual(new TDPath_1.TDPath().addParts(__1.Part.ofRelative(1), __1.Part.ofChild('p1'), __1.Part.ofChild('p2')));
|
|
9
|
+
expect(TDPath_1.TDPath.parse('./p1/p2')).toEqual(new TDPath_1.TDPath().addParts(__1.Part.ofRelative(0), __1.Part.ofChild('p1'), __1.Part.ofChild('p2')));
|
|
10
|
+
expect(TDPath_1.TDPath.parse('#100/p1/p2')).toEqual(new TDPath_1.TDPath().addParts(__1.Part.ofChildOrId('#100', '100'), __1.Part.ofChild('p1'), __1.Part.ofChild('p2')));
|
|
11
|
+
expect(TDPath_1.TDPath.parse('#/p1/p2')).toEqual(new TDPath_1.TDPath().addParts(__1.Part.ofRoot(), __1.Part.ofChild('p1'), __1.Part.ofChild('p2')));
|
|
12
|
+
expect(TDPath_1.TDPath.parse('../')).toEqual(new TDPath_1.TDPath().addParts(__1.Part.ofRelative(1)));
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=TDPath.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TDPath.spec.js","sourceRoot":"","sources":["../../../src/__tests__/TDPath.spec.ts"],"names":[],"mappings":";;AAIA,oCAAmC;AACnC,wBAA0B;AAE1B,QAAQ,CAAC,QAAQ,EAAE;IACjB,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,CAAC,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CACpC,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,QAAI,CAAC,MAAM,EAAE,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC7E,CAAC;QACF,MAAM,CAAC,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CACtC,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,QAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAClF,CAAC;QACF,MAAM,CAAC,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CACrC,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,QAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAClF,CAAC;QACF,MAAM,CAAC,eAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CACxC,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,QAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC/F,CAAC;QACF,MAAM,CAAC,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CACrC,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,QAAI,CAAC,MAAM,EAAE,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC7E,CAAC;QACF,MAAM,CAAC,eAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CACjC,IAAI,eAAM,EAAE,CAAC,QAAQ,CAAC,QAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Appendable.js","sourceRoot":"","sources":["../../../src/core/Appendable.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Bookmark } from '../Bookmark';
|
|
2
|
+
import { Predicate } from './LangUtil';
|
|
3
|
+
import { StringBuilder } from './StringBuilder';
|
|
4
|
+
import { ParseRuntimeException } from './ParseRuntimeException';
|
|
5
|
+
export declare abstract class CharSource {
|
|
6
|
+
private static readonly MAX_STRING_LEN;
|
|
7
|
+
private static readonly SPACE_RETURN_CHARS;
|
|
8
|
+
private static readonly SPACE_RETURN_COMMA_CHARS;
|
|
9
|
+
readonly bookmark: Bookmark;
|
|
10
|
+
abstract read(): string;
|
|
11
|
+
peek(i?: number): string;
|
|
12
|
+
isEof(i?: number): boolean;
|
|
13
|
+
getBookmark(): Bookmark;
|
|
14
|
+
/**
|
|
15
|
+
* Skip chars until eof or length or predicate condition matches
|
|
16
|
+
* If target is set, the skipped the chars will be saved in the target
|
|
17
|
+
*
|
|
18
|
+
* @return true The terminate condition matches. otherwise, could be EOF or length matches
|
|
19
|
+
*/
|
|
20
|
+
abstract readUntil(target: StringBuilder | null, predicate: Predicate<CharSource>, minLen?: number, maxLen?: number): boolean;
|
|
21
|
+
skipUntil(predicate: Predicate<CharSource>): boolean;
|
|
22
|
+
/** @return true Terminal conditions matches */
|
|
23
|
+
readUntilTerminatorToString(target: StringBuilder | null, chars: string, strs?: string[] | null, include?: boolean, minLen?: number, maxLen?: number): boolean;
|
|
24
|
+
/** @return true Terminal conditions matches */
|
|
25
|
+
readUntilTerminator(chars: string, strs?: string[] | null, minLen?: number, maxLen?: number): string;
|
|
26
|
+
/** @return true Terminal conditions matches */
|
|
27
|
+
skipUntilTerminator(chars: string, include?: boolean): boolean;
|
|
28
|
+
/** @return true Indicates more character in the stream */
|
|
29
|
+
skipSpacesAndReturns(): boolean;
|
|
30
|
+
skipSpacesAndReturnsAndCommas(): boolean;
|
|
31
|
+
/** @return true Indicates more character in the stream */
|
|
32
|
+
skipChars(chars: string): boolean;
|
|
33
|
+
readToString(target: StringBuilder | null, len: number): boolean;
|
|
34
|
+
readString(len: number): string;
|
|
35
|
+
skip(len?: number): boolean;
|
|
36
|
+
readUntilMatch(target: StringBuilder | null, str: string, skipStr: boolean, minLen?: number, maxLen?: number): boolean;
|
|
37
|
+
skipUntilMatch(str: string, skipStr: boolean): boolean;
|
|
38
|
+
peekString(len: number): string;
|
|
39
|
+
startsWithAny(strs: string[] | null): boolean;
|
|
40
|
+
startsWith(str: string): boolean;
|
|
41
|
+
private getTermStrWithQuoteAndEscape;
|
|
42
|
+
readQuotedString(quote: string): string;
|
|
43
|
+
readQuotedToString(sb: StringBuilder, quote: string): StringBuilder;
|
|
44
|
+
private readOctNumber;
|
|
45
|
+
private isOctDigit;
|
|
46
|
+
createParseRuntimeException(message: string, partialObj?: any, cause?: Error): ParseRuntimeException;
|
|
47
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CharSource = void 0;
|
|
4
|
+
var Bookmark_1 = require("../Bookmark");
|
|
5
|
+
var StringBuilder_1 = require("./StringBuilder");
|
|
6
|
+
var EOFRuntimeException_1 = require("./EOFRuntimeException");
|
|
7
|
+
var ParseRuntimeException_1 = require("./ParseRuntimeException");
|
|
8
|
+
var CharSource = /** @class */ (function () {
|
|
9
|
+
function CharSource() {
|
|
10
|
+
this.bookmark = new Bookmark_1.Bookmark();
|
|
11
|
+
}
|
|
12
|
+
CharSource.prototype.peek = function (i) {
|
|
13
|
+
if (i === void 0) { i = 0; }
|
|
14
|
+
return '';
|
|
15
|
+
};
|
|
16
|
+
CharSource.prototype.isEof = function (i) {
|
|
17
|
+
if (i === void 0) { i = 0; }
|
|
18
|
+
return false;
|
|
19
|
+
};
|
|
20
|
+
CharSource.prototype.getBookmark = function () {
|
|
21
|
+
return this.bookmark.clone();
|
|
22
|
+
};
|
|
23
|
+
CharSource.prototype.skipUntil = function (predicate) {
|
|
24
|
+
return this.readUntil(null, predicate);
|
|
25
|
+
};
|
|
26
|
+
/** @return true Terminal conditions matches */
|
|
27
|
+
CharSource.prototype.readUntilTerminatorToString = function (target, chars, strs, include, minLen, maxLen) {
|
|
28
|
+
var _this = this;
|
|
29
|
+
if (strs === void 0) { strs = null; }
|
|
30
|
+
if (include === void 0) { include = true; }
|
|
31
|
+
if (minLen === void 0) { minLen = 0; }
|
|
32
|
+
if (maxLen === void 0) { maxLen = Number.MAX_VALUE; }
|
|
33
|
+
return this.readUntil(target, function (s) { return (chars.indexOf(s.peek(0)) >= 0 || _this.startsWithAny(strs)) === include; }, minLen, maxLen);
|
|
34
|
+
};
|
|
35
|
+
/** @return true Terminal conditions matches */
|
|
36
|
+
CharSource.prototype.readUntilTerminator = function (chars, strs, minLen, maxLen) {
|
|
37
|
+
if (strs === void 0) { strs = null; }
|
|
38
|
+
if (minLen === void 0) { minLen = 0; }
|
|
39
|
+
if (maxLen === void 0) { maxLen = Number.MAX_VALUE; }
|
|
40
|
+
var sb = new StringBuilder_1.StringBuilder();
|
|
41
|
+
this.readUntilTerminatorToString(sb, chars, strs, true, minLen, maxLen);
|
|
42
|
+
return sb.toString();
|
|
43
|
+
};
|
|
44
|
+
/** @return true Terminal conditions matches */
|
|
45
|
+
CharSource.prototype.skipUntilTerminator = function (chars, include) {
|
|
46
|
+
if (include === void 0) { include = true; }
|
|
47
|
+
return this.readUntilTerminatorToString(null, chars, null, include);
|
|
48
|
+
};
|
|
49
|
+
/** @return true Indicates more character in the stream */
|
|
50
|
+
CharSource.prototype.skipSpacesAndReturns = function () { return this.skipUntilTerminator(CharSource.SPACE_RETURN_CHARS, false); };
|
|
51
|
+
CharSource.prototype.skipSpacesAndReturnsAndCommas = function () { return this.skipUntilTerminator(CharSource.SPACE_RETURN_COMMA_CHARS, false); };
|
|
52
|
+
/** @return true Indicates more character in the stream */
|
|
53
|
+
CharSource.prototype.skipChars = function (chars) { return this.skipUntilTerminator(chars, false); };
|
|
54
|
+
CharSource.prototype.readToString = function (target, len) {
|
|
55
|
+
return this.readUntil(target, function (s) { return false; }, len, len);
|
|
56
|
+
};
|
|
57
|
+
CharSource.prototype.readString = function (len) {
|
|
58
|
+
var sb = new StringBuilder_1.StringBuilder();
|
|
59
|
+
this.readToString(sb, len);
|
|
60
|
+
return sb.toString();
|
|
61
|
+
};
|
|
62
|
+
CharSource.prototype.skip = function (len) {
|
|
63
|
+
if (len === void 0) { len = 1; }
|
|
64
|
+
return this.readToString(null, len);
|
|
65
|
+
};
|
|
66
|
+
CharSource.prototype.readUntilMatch = function (target, str, skipStr, minLen, maxLen) {
|
|
67
|
+
if (minLen === void 0) { minLen = 0; }
|
|
68
|
+
if (maxLen === void 0) { maxLen = CharSource.MAX_STRING_LEN; }
|
|
69
|
+
var matches = this.readUntil(target, function (s) { return s.startsWith(str); }, minLen, maxLen);
|
|
70
|
+
if (matches && skipStr)
|
|
71
|
+
this.skip(str.length);
|
|
72
|
+
return matches;
|
|
73
|
+
};
|
|
74
|
+
CharSource.prototype.skipUntilMatch = function (str, skipStr) {
|
|
75
|
+
return this.readUntilMatch(null, str, skipStr);
|
|
76
|
+
};
|
|
77
|
+
// TODO: performance optimization with string.substr()
|
|
78
|
+
CharSource.prototype.peekString = function (len) {
|
|
79
|
+
var sb = new StringBuilder_1.StringBuilder();
|
|
80
|
+
for (var i = 0; i < len; i++) {
|
|
81
|
+
if (this.isEof(i))
|
|
82
|
+
break;
|
|
83
|
+
sb.append(this.peek(i));
|
|
84
|
+
}
|
|
85
|
+
return sb.toString();
|
|
86
|
+
};
|
|
87
|
+
CharSource.prototype.startsWithAny = function (strs) {
|
|
88
|
+
if (strs != null) {
|
|
89
|
+
for (var _i = 0, strs_1 = strs; _i < strs_1.length; _i++) {
|
|
90
|
+
var s = strs_1[_i];
|
|
91
|
+
if (this.startsWith(s))
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return false;
|
|
96
|
+
};
|
|
97
|
+
CharSource.prototype.startsWith = function (str) {
|
|
98
|
+
if (this.isEof(str.length - 1))
|
|
99
|
+
return false;
|
|
100
|
+
for (var i = 0; i < str.length; i++) {
|
|
101
|
+
if (this.peek(i) !== str.charAt(i))
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
};
|
|
106
|
+
// For performance, avoid creating String object every time
|
|
107
|
+
CharSource.prototype.getTermStrWithQuoteAndEscape = function (quote) {
|
|
108
|
+
switch (quote) {
|
|
109
|
+
case "'":
|
|
110
|
+
return "\\'";
|
|
111
|
+
case '"':
|
|
112
|
+
return '\\"';
|
|
113
|
+
case '`':
|
|
114
|
+
return '\\`';
|
|
115
|
+
default:
|
|
116
|
+
return '\\';
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
CharSource.prototype.readQuotedString = function (quote) {
|
|
120
|
+
return this.readQuotedToString(new StringBuilder_1.StringBuilder(), quote).toString();
|
|
121
|
+
};
|
|
122
|
+
CharSource.prototype.readQuotedToString = function (sb, quote) {
|
|
123
|
+
var terminator = this.getTermStrWithQuoteAndEscape(quote);
|
|
124
|
+
// Not calling getBookmark() to avoid clone an object
|
|
125
|
+
var pos = this.bookmark.pos;
|
|
126
|
+
var line = this.bookmark.line;
|
|
127
|
+
var col = this.bookmark.col;
|
|
128
|
+
while (true) {
|
|
129
|
+
if (!this.readUntilTerminatorToString(sb, terminator))
|
|
130
|
+
throw new EOFRuntimeException_1.EOFRuntimeException("Can't find matching quote at position:" + pos + ";line:" + line + ";col:" + col);
|
|
131
|
+
var c = this.read();
|
|
132
|
+
if (c === quote)
|
|
133
|
+
break;
|
|
134
|
+
// c should be '/', it's a escape sequence
|
|
135
|
+
c = this.read();
|
|
136
|
+
switch (c) {
|
|
137
|
+
case 'b':
|
|
138
|
+
sb.append('\b');
|
|
139
|
+
break;
|
|
140
|
+
case 't':
|
|
141
|
+
sb.append('\t');
|
|
142
|
+
break;
|
|
143
|
+
case 'n':
|
|
144
|
+
sb.append('\n');
|
|
145
|
+
break;
|
|
146
|
+
case 'f':
|
|
147
|
+
sb.append('\f');
|
|
148
|
+
break;
|
|
149
|
+
case 'r':
|
|
150
|
+
sb.append('\r');
|
|
151
|
+
break;
|
|
152
|
+
case 'v':
|
|
153
|
+
sb.append('\u000B');
|
|
154
|
+
break;
|
|
155
|
+
case 'u':
|
|
156
|
+
var code = parseInt(this.readString(4), 16);
|
|
157
|
+
if (Number.isNaN(code))
|
|
158
|
+
throw this.createParseRuntimeException('Escaped unicode with invalid number: ' + code);
|
|
159
|
+
sb.append(String.fromCharCode(code));
|
|
160
|
+
break;
|
|
161
|
+
case '\n':
|
|
162
|
+
case '\r':
|
|
163
|
+
break; // Assume it's a line continuation
|
|
164
|
+
default:
|
|
165
|
+
if (this.isOctDigit(c))
|
|
166
|
+
sb.append(String.fromCharCode(this.readOctNumber(Number(c))));
|
|
167
|
+
else
|
|
168
|
+
sb.append(c);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return sb;
|
|
172
|
+
};
|
|
173
|
+
CharSource.prototype.readOctNumber = function (num) {
|
|
174
|
+
for (var i = 0; i < 2; i++) {
|
|
175
|
+
var d = this.peek();
|
|
176
|
+
if (!this.isOctDigit(d))
|
|
177
|
+
break;
|
|
178
|
+
var newNum = num * 8 + Number(d);
|
|
179
|
+
if (newNum > 255)
|
|
180
|
+
break;
|
|
181
|
+
num = newNum;
|
|
182
|
+
this.read();
|
|
183
|
+
}
|
|
184
|
+
return num;
|
|
185
|
+
};
|
|
186
|
+
CharSource.prototype.isOctDigit = function (c) {
|
|
187
|
+
return '0' <= c && c <= '8';
|
|
188
|
+
};
|
|
189
|
+
CharSource.prototype.createParseRuntimeException = function (message, partialObj, cause) {
|
|
190
|
+
return new ParseRuntimeException_1.ParseRuntimeException(message, this.getBookmark(), this.peekString(10), cause, partialObj);
|
|
191
|
+
};
|
|
192
|
+
CharSource.MAX_STRING_LEN = 20000;
|
|
193
|
+
// HTML will be converted to \u00a0, that's why it need to be supported here
|
|
194
|
+
CharSource.SPACE_RETURN_CHARS = ' \n\r\t\u00a0';
|
|
195
|
+
CharSource.SPACE_RETURN_COMMA_CHARS = CharSource.SPACE_RETURN_CHARS + ",";
|
|
196
|
+
return CharSource;
|
|
197
|
+
}());
|
|
198
|
+
exports.CharSource = CharSource;
|
|
199
|
+
//# sourceMappingURL=CharSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CharSource.js","sourceRoot":"","sources":["../../../src/core/CharSource.ts"],"names":[],"mappings":";;;AAAA,wCAAuC;AAEvC,iDAAgD;AAChD,6DAA4D;AAC5D,iEAAgE;AAEhE;IAAA;QAMW,aAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAiMrC,CAAC;IA9LqB,yBAAI,GAAxB,UAAyB,CAAK;QAAL,kBAAA,EAAA,KAAK;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACmB,0BAAK,GAAzB,UAA0B,CAAK;QAAL,kBAAA,EAAA,KAAK;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,gCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IASM,8BAAS,GAAhB,UAAiB,SAAgC;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAEC,gDAAgD;IAC3C,gDAA2B,GAAlC,UAAmC,MAA4B,EAAE,KAAa,EAAE,IAA4B,EAAE,OAAc,EAAE,MAAU,EAAE,MAAyB;QAAnK,iBAEC;QAF+E,qBAAA,EAAA,WAA4B;QAAE,wBAAA,EAAA,cAAc;QAAE,uBAAA,EAAA,UAAU;QAAE,uBAAA,EAAA,SAAS,MAAM,CAAC,SAAS;QACjK,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,OAAO,EAAvE,CAAuE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9H,CAAC;IAED,gDAAgD;IACzC,wCAAmB,GAA1B,UAA2B,KAAa,EAAE,IAA4B,EAAE,MAAU,EAAE,MAAyB;QAAnE,qBAAA,EAAA,WAA4B;QAAE,uBAAA,EAAA,UAAU;QAAE,uBAAA,EAAA,SAAS,MAAM,CAAC,SAAS;QAC3G,IAAM,EAAE,GAAG,IAAI,6BAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,2BAA2B,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAED,gDAAgD;IACzC,wCAAmB,GAA1B,UAA2B,KAAa,EAAE,OAAc;QAAd,wBAAA,EAAA,cAAc;QACtD,OAAO,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IACD,2DAA2D;IACpD,yCAAoB,GAA3B,cAAyC,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1G,kDAA6B,GAApC,cAAkD,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChI,2DAA2D;IACpD,8BAAS,GAAhB,UAAiB,KAAa,IAAa,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpF,iCAAY,GAAnB,UAAoB,MAA4B,EAAE,GAAW;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAA,CAAC,IAAI,OAAA,KAAK,EAAL,CAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAEM,+BAAU,GAAjB,UAAkB,GAAW;QAC3B,IAAM,EAAE,GAAG,IAAI,6BAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3B,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAEM,yBAAI,GAAX,UAAY,GAAO;QAAP,oBAAA,EAAA,OAAO;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAEM,mCAAc,GAArB,UAAsB,MAA4B,EAAE,GAAW,EAAE,OAAgB,EAAE,MAAU,EAAE,MAAkC;QAA9C,uBAAA,EAAA,UAAU;QAAE,uBAAA,EAAA,SAAS,UAAU,CAAC,cAAc;QAC/H,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAjB,CAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/E,IAAI,OAAO,IAAI,OAAO;YACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,mCAAc,GAArB,UAAsB,GAAW,EAAE,OAAgB;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,sDAAsD;IAC/C,+BAAU,GAAjB,UAAkB,GAAW;QAC3B,IAAM,EAAE,GAAG,IAAI,6BAAa,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,MAAM;YACR,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACzB;QACD,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAEM,kCAAa,GAApB,UAAqB,IAAqB;QACxC,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,KAAgB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI;gBAAf,IAAM,CAAC,aAAA;gBACV,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpB,OAAO,IAAI,CAAC;aAAA;SACjB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,+BAAU,GAAjB,UAAkB,GAAW;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2DAA2D;IACnD,iDAA4B,GAApC,UAAqC,KAAa;QAChD,QAAQ,KAAK,EAAE;YACb,KAAK,GAAG;gBACN,OAAO,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,KAAK,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;IAEM,qCAAgB,GAAvB,UAAwB,KAAa;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,6BAAa,EAAE,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxE,CAAC;IAEM,uCAAkB,GAAzB,UAA0B,EAAiB,EAAE,KAAa;QACxD,IAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;QAC5D,qDAAqD;QACrD,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9B,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9B,OAAO,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,EAAE,UAAU,CAAC;gBACnD,MAAM,IAAI,yCAAmB,CAAC,2CAAyC,GAAG,cAAS,IAAI,aAAQ,GAAK,CAAC,CAAC;YACxG,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,KAAK;gBACb,MAAM;YAER,0CAA0C;YAC1C,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,EAAE;gBACT,KAAK,GAAG;oBACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChB,MAAM;gBACR,KAAK,GAAG;oBACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChB,MAAM;gBACR,KAAK,GAAG;oBACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChB,MAAM;gBACR,KAAK,GAAG;oBACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChB,MAAM;gBACR,KAAK,GAAG;oBACN,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChB,MAAM;gBACR,KAAK,GAAG;oBACN,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,GAAG;oBACN,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;wBACpB,MAAM,IAAI,CAAC,2BAA2B,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;oBACzF,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBACrC,MAAM;gBACR,KAAK,IAAI,CAAC;gBACV,KAAK,IAAI;oBACP,MAAM,CAAC,kCAAkC;gBAC3C;oBACE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;wBACpB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;wBAC3D,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACrB;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,kCAAa,GAArB,UAAsB,GAAW;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACrB,MAAM;YACR,IAAM,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,MAAM,GAAG,GAAG;gBACd,MAAM;YACR,GAAG,GAAG,MAAM,CAAC;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,+BAAU,GAAlB,UAAmB,CAAS;QAC1B,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAC9B,CAAC;IAEM,gDAA2B,GAAlC,UAAmC,OAAe,EAAE,UAAgB,EAAE,KAAa;QACjF,OAAO,IAAI,6CAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACxG,CAAC;IArMuB,yBAAc,GAAG,KAAK,CAAC;IAC/C,mFAAmF;IAC3D,6BAAkB,GAAG,eAAe,CAAC;IACrC,mCAAwB,GAAG,UAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC;IAmMzF,iBAAC;CAAA,AAvMD,IAuMC;AAvMqB,gCAAU"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class ClassUtil {
|
|
2
|
+
/**
|
|
3
|
+
* To Simple Object without type. It will to convert str into null, boolean, double, long or Integer.
|
|
4
|
+
* For number, it supports Hex number with prefix of "0x". If conversion fails. It will return the original str.
|
|
5
|
+
*/
|
|
6
|
+
static toSimpleObject(str: string): number | boolean | string | null;
|
|
7
|
+
private static tryToNumber;
|
|
8
|
+
private static parseNumber;
|
|
9
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClassUtil = void 0;
|
|
4
|
+
var ClassUtil = /** @class */ (function () {
|
|
5
|
+
function ClassUtil() {
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* To Simple Object without type. It will to convert str into null, boolean, double, long or Integer.
|
|
9
|
+
* For number, it supports Hex number with prefix of "0x". If conversion fails. It will return the original str.
|
|
10
|
+
*/
|
|
11
|
+
ClassUtil.toSimpleObject = function (str) {
|
|
12
|
+
if ("null" === str)
|
|
13
|
+
return null;
|
|
14
|
+
if ("true" === str)
|
|
15
|
+
return true;
|
|
16
|
+
if ("false" === str)
|
|
17
|
+
return false;
|
|
18
|
+
return this.tryToNumber(str);
|
|
19
|
+
};
|
|
20
|
+
ClassUtil.tryToNumber = function (str) {
|
|
21
|
+
if (str.length > 0) {
|
|
22
|
+
return this.parseNumber(str);
|
|
23
|
+
}
|
|
24
|
+
return str;
|
|
25
|
+
};
|
|
26
|
+
ClassUtil.parseNumber = function (str) {
|
|
27
|
+
var isDouble = str.indexOf('.') >= 0;
|
|
28
|
+
var num = Number(str);
|
|
29
|
+
return Number.isNaN(num) || (!isDouble && num > Number.MAX_SAFE_INTEGER) ? str : num;
|
|
30
|
+
};
|
|
31
|
+
return ClassUtil;
|
|
32
|
+
}());
|
|
33
|
+
exports.ClassUtil = ClassUtil;
|
|
34
|
+
//# sourceMappingURL=ClassUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClassUtil.js","sourceRoot":"","sources":["../../../src/core/ClassUtil.ts"],"names":[],"mappings":";;;AAAA;IAAA;IA2BA,CAAC;IA1BA;;;OAGG;IACY,wBAAc,GAA5B,UAA6B,GAAW;QACtC,IAAI,MAAM,KAAK,GAAG;YAChB,OAAO,IAAI,CAAC;QACd,IAAI,MAAM,KAAK,GAAG;YAChB,OAAO,IAAI,CAAC;QACd,IAAI,OAAO,KAAK,GAAG;YACjB,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEc,qBAAW,GAA1B,UAA2B,GAAW;QACpC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC9B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEc,qBAAW,GAA1B,UAA2B,GAAW;QACpC,IAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,CAAC;IACH,gBAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,8BAAS"}
|