@litert/typeguard 1.1.0 → 1.2.0
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/CHANGES.md +5 -0
- package/lib/BuiltInTypeCompiler.d.ts +2 -2
- package/lib/BuiltInTypeCompiler.d.ts.map +1 -1
- package/lib/BuiltInTypeCompiler.js +1 -1
- package/lib/BuiltInTypeCompiler.js.map +1 -1
- package/lib/BuiltInTypes.d.ts +1 -1
- package/lib/BuiltInTypes.js +1 -1
- package/lib/Common.d.ts +5 -1
- package/lib/Common.d.ts.map +1 -1
- package/lib/Common.js +1 -1
- package/lib/Compiler.d.ts +1 -1
- package/lib/Compiler.d.ts.map +1 -1
- package/lib/Compiler.js +8 -6
- package/lib/Compiler.js.map +1 -1
- package/lib/Context.d.ts +1 -1
- package/lib/Context.js +1 -1
- package/lib/FilterCompiler.d.ts +3 -3
- package/lib/FilterCompiler.d.ts.map +1 -1
- package/lib/FilterCompiler.js +2 -2
- package/lib/FilterCompiler.js.map +1 -1
- package/lib/InlineCompiler.d.ts +10 -3
- package/lib/InlineCompiler.d.ts.map +1 -1
- package/lib/InlineCompiler.js +12 -4
- package/lib/InlineCompiler.js.map +1 -1
- package/lib/Internal.d.ts +2 -1
- package/lib/Internal.d.ts.map +1 -1
- package/lib/Internal.js +3 -2
- package/lib/Internal.js.map +1 -1
- package/lib/Modifiers.d.ts +1 -1
- package/lib/Modifiers.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +6 -2
- package/lib/index.js.map +1 -1
- package/lib/langs/JavaScript.d.ts +1 -1
- package/lib/langs/JavaScript.js +2 -2
- package/lib/langs/JavaScript.js.map +1 -1
- package/package.json +11 -11
- package/src/examples/quick-start.ts +1 -1
- package/src/lib/BuiltInTypeCompiler.ts +2 -2
- package/src/lib/BuiltInTypes.ts +1 -1
- package/src/lib/Common.ts +7 -2
- package/src/lib/Compiler.ts +12 -9
- package/src/lib/Context.ts +1 -1
- package/src/lib/FilterCompiler.ts +4 -4
- package/src/lib/InlineCompiler.ts +30 -9
- package/src/lib/Internal.ts +3 -1
- package/src/lib/Modifiers.ts +1 -1
- package/src/lib/index.ts +1 -1
- package/src/lib/langs/JavaScript.ts +2 -2
- package/src/test/00-all.ts +1 -1
- package/src/test/01-elemental-types.ts +2 -1
- package/src/test/02-array-and-list.ts +18 -18
- package/src/test/03-tuple.ts +1 -1
- package/src/test/04-from-string.ts +2 -1
- package/src/test/05-string-asserts.ts +1 -1
- package/src/test/06-structure.ts +26 -26
- package/src/test/07-modifiers.ts +71 -10
- package/src/test/08-map-and-dict.ts +20 -20
- package/src/test/09-exceptions.ts +4 -4
- package/src/test/abstracts.ts +12 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineCompiler.js","sourceRoot":"","sources":["../src/lib/InlineCompiler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,yCAA4C;AAC5C,mDAAqE;
|
|
1
|
+
{"version":3,"file":"InlineCompiler.js","sourceRoot":"","sources":["../src/lib/InlineCompiler.ts"],"names":[],"mappings":"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"}
|
package/lib/Internal.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -84,4 +84,5 @@ export interface IBuiltInTypeCompiler {
|
|
|
84
84
|
isConstructed(type: string): boolean;
|
|
85
85
|
isElemental(type: string): boolean;
|
|
86
86
|
}
|
|
87
|
+
export declare const RE_VALID_CUSTOM_TYPE_NAME: RegExp;
|
|
87
88
|
//# sourceMappingURL=Internal.d.ts.map
|
package/lib/Internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Internal.d.ts","sourceRoot":"","sources":["../src/lib/Internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,cAAc,QAAoB,CAAC;AAEhD,eAAO,MAAM,eAAe,QAAqB,CAAC;AAElD,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,oBAAY,MAAM;IAEd,WAAW,IAAA;IACX,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,KAAK,IAAA;CACR;AAED,oBAAY,UAAU;IAElB;;OAEG;IACH,EAAE,IAAA;IAEF;;OAEG;IACH,GAAG,IAAA;IAEH;;OAEG;IACH,OAAO,IAAA;IAEP;;OAEG;IACH,eAAe,IAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAEzB,KAAK,EAAE,MAAM,CAAC;IAEd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,QAAS,SAAQ,YAAY;IAE1C,KAAK,EAAE,OAAO,CAAC;IAEf,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAE/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhD,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAElC,MAAM,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAE5B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IAEjC;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE7D;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACtC"}
|
|
1
|
+
{"version":3,"file":"Internal.d.ts","sourceRoot":"","sources":["../src/lib/Internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,cAAc,QAAoB,CAAC;AAEhD,eAAO,MAAM,eAAe,QAAqB,CAAC;AAElD,eAAO,MAAM,gBAAgB,QAAuC,CAAC;AAErE,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,oBAAY,MAAM;IAEd,WAAW,IAAA;IACX,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,QAAQ,IAAA;IACR,KAAK,IAAA;CACR;AAED,oBAAY,UAAU;IAElB;;OAEG;IACH,EAAE,IAAA;IAEF;;OAEG;IACH,GAAG,IAAA;IAEH;;OAEG;IACH,OAAO,IAAA;IAEP;;OAEG;IACH,eAAe,IAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAEzB,KAAK,EAAE,MAAM,CAAC;IAEd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,QAAS,SAAQ,YAAY;IAE1C,KAAK,EAAE,OAAO,CAAC;IAEf,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAE/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhD,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAElC,MAAM,IAAI,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAE5B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC;CAChD;AAED,MAAM,WAAW,oBAAoB;IAEjC;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE7D;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACtC;AAED,eAAO,MAAM,yBAAyB,QAAe,CAAC"}
|
package/lib/Internal.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
4
4
|
*
|
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
* you may not use this file except in compliance with the License.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.EFlagValue = exports.EFlags = exports.KEY_EQUAL_SUFFIX = exports.KEY_STRICT_SUFFIX = exports.KEY_ARRAY_SUFFIX = exports.KEY_LIST_SUFFIX = exports.KEY_MAP_SUFFIX = exports.NEGATIVE_SYMBOL = exports.PREDEF_TYPE_SYMBOL = exports.IMPLICIT_SYMBOL = exports.FILTER_PREFIX = exports.MODIFIER_PREFIX = exports.LIST_SUFFIX = exports.MAP_SUFFIX = void 0;
|
|
18
|
+
exports.RE_VALID_CUSTOM_TYPE_NAME = exports.EFlagValue = exports.EFlags = exports.KEY_EQUAL_SUFFIX = exports.KEY_STRICT_SUFFIX = exports.KEY_ARRAY_SUFFIX = exports.KEY_LIST_SUFFIX = exports.KEY_MAP_SUFFIX = exports.NEGATIVE_SYMBOL = exports.PREDEF_TYPE_SYMBOL = exports.IMPLICIT_SYMBOL = exports.FILTER_PREFIX = exports.MODIFIER_PREFIX = exports.LIST_SUFFIX = exports.MAP_SUFFIX = void 0;
|
|
19
19
|
exports.MAP_SUFFIX = '{}';
|
|
20
20
|
exports.LIST_SUFFIX = '[]';
|
|
21
21
|
exports.MODIFIER_PREFIX = '$.';
|
|
@@ -55,4 +55,5 @@ var EFlagValue;
|
|
|
55
55
|
*/
|
|
56
56
|
EFlagValue[EFlagValue["ELEMENT_INHERIT"] = 3] = "ELEMENT_INHERIT";
|
|
57
57
|
})(EFlagValue = exports.EFlagValue || (exports.EFlagValue = {}));
|
|
58
|
+
exports.RE_VALID_CUSTOM_TYPE_NAME = /^[-:.\w]+$/;
|
|
58
59
|
//# sourceMappingURL=Internal.js.map
|
package/lib/Internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Internal.js","sourceRoot":"","sources":["../src/lib/Internal.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEU,QAAA,UAAU,GAAG,IAAI,CAAC;AAElB,QAAA,WAAW,GAAG,IAAI,CAAC;AAEnB,QAAA,eAAe,GAAG,IAAI,CAAC;AAEvB,QAAA,aAAa,GAAG,GAAG,CAAC;AAEpB,QAAA,eAAe,GAAG,GAAG,CAAC;AAEtB,QAAA,kBAAkB,GAAG,GAAG,CAAC;AAEzB,QAAA,eAAe,GAAG,GAAG,CAAC;AAEtB,QAAA,cAAc,GAAG,KAAK,kBAAU,EAAE,CAAC;AAEnC,QAAA,eAAe,GAAG,KAAK,mBAAW,EAAE,CAAC;AAErC,QAAA,gBAAgB,GAAG,oCAAoC,CAAC;AAExD,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAE3B,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAExC,IAAY,MAOX;AAPD,WAAY,MAAM;IAEd,iDAAW,CAAA;IACX,uCAAM,CAAA;IACN,2CAAQ,CAAA;IACR,2CAAQ,CAAA;IACR,qCAAK,CAAA;AACT,CAAC,EAPW,MAAM,GAAN,cAAM,KAAN,cAAM,QAOjB;AAED,IAAY,UAqBX;AArBD,WAAY,UAAU;IAElB;;OAEG;IACH,uCAAE,CAAA;IAEF;;OAEG;IACH,yCAAG,CAAA;IAEH;;OAEG;IACH,iDAAO,CAAA;IAEP;;OAEG;IACH,iEAAe,CAAA;AACnB,CAAC,EArBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqBrB"}
|
|
1
|
+
{"version":3,"file":"Internal.js","sourceRoot":"","sources":["../src/lib/Internal.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEU,QAAA,UAAU,GAAG,IAAI,CAAC;AAElB,QAAA,WAAW,GAAG,IAAI,CAAC;AAEnB,QAAA,eAAe,GAAG,IAAI,CAAC;AAEvB,QAAA,aAAa,GAAG,GAAG,CAAC;AAEpB,QAAA,eAAe,GAAG,GAAG,CAAC;AAEtB,QAAA,kBAAkB,GAAG,GAAG,CAAC;AAEzB,QAAA,eAAe,GAAG,GAAG,CAAC;AAEtB,QAAA,cAAc,GAAG,KAAK,kBAAU,EAAE,CAAC;AAEnC,QAAA,eAAe,GAAG,KAAK,mBAAW,EAAE,CAAC;AAErC,QAAA,gBAAgB,GAAG,oCAAoC,CAAC;AAExD,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAE3B,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAExC,IAAY,MAOX;AAPD,WAAY,MAAM;IAEd,iDAAW,CAAA;IACX,uCAAM,CAAA;IACN,2CAAQ,CAAA;IACR,2CAAQ,CAAA;IACR,qCAAK,CAAA;AACT,CAAC,EAPW,MAAM,GAAN,cAAM,KAAN,cAAM,QAOjB;AAED,IAAY,UAqBX;AArBD,WAAY,UAAU;IAElB;;OAEG;IACH,uCAAE,CAAA;IAEF;;OAEG;IACH,yCAAG,CAAA;IAEH;;OAEG;IACH,iDAAO,CAAA;IAEP;;OAEG;IACH,iEAAe,CAAA;AACnB,CAAC,EArBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqBrB;AAwDY,QAAA,yBAAyB,GAAG,YAAY,CAAC"}
|
package/lib/Modifiers.d.ts
CHANGED
package/lib/Modifiers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
4
4
|
*
|
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
* you may not use this file except in compliance with the License.
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
4
4
|
*
|
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
* you may not use this file except in compliance with the License.
|
|
@@ -16,7 +16,11 @@
|
|
|
16
16
|
*/
|
|
17
17
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
18
|
if (k2 === undefined) k2 = k;
|
|
19
|
-
Object.
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
20
24
|
}) : (function(o, m, k, k2) {
|
|
21
25
|
if (k2 === undefined) k2 = k;
|
|
22
26
|
o[k2] = m[k];
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,mDAAiC;AACjC,qDAAmC;AACnC,6CAA2B;AAC3B,2CAAyB"}
|
package/lib/langs/JavaScript.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
4
4
|
*
|
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
6
|
* you may not use this file except in compliance with the License.
|
|
@@ -112,7 +112,7 @@ class JavaScriptLanguage {
|
|
|
112
112
|
return `${a} % ${b}`;
|
|
113
113
|
}
|
|
114
114
|
matchRegExp(expr, regExp) {
|
|
115
|
-
|
|
115
|
+
const m = /^\/(.+)\/([a-z]*)$/i.exec(regExp);
|
|
116
116
|
if (m) {
|
|
117
117
|
return `/${m[1]}/${m[2] || ''}.test(${expr})`;
|
|
118
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JavaScript.js","sourceRoot":"","sources":["../../src/lib/langs/JavaScript.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JavaScript.js","sourceRoot":"","sources":["../../src/lib/langs/JavaScript.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@litert/typeguard",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "An easy and powerful data validation code generator by JavaScript.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -34,16 +34,16 @@
|
|
|
34
34
|
"types": "lib/index.d.ts",
|
|
35
35
|
"typings": "lib/index.d.ts",
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@commitlint/cli": "^
|
|
38
|
-
"@commitlint/config-conventional": "^
|
|
39
|
-
"@types/mocha": "^
|
|
40
|
-
"@types/node": "^
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
42
|
-
"@typescript-eslint/parser": "^
|
|
43
|
-
"eslint": "^
|
|
44
|
-
"husky": "^
|
|
45
|
-
"mocha": "^
|
|
46
|
-
"typescript": "^4.
|
|
37
|
+
"@commitlint/cli": "^16.3.0",
|
|
38
|
+
"@commitlint/config-conventional": "^16.2.4",
|
|
39
|
+
"@types/mocha": "^9.1.1",
|
|
40
|
+
"@types/node": "^17.0.33",
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^5.23.0",
|
|
42
|
+
"@typescript-eslint/parser": "^5.23.0",
|
|
43
|
+
"eslint": "^8.15.0",
|
|
44
|
+
"husky": "^8.0.1",
|
|
45
|
+
"mocha": "^10.0.0",
|
|
46
|
+
"typescript": "^4.6.4"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=8.0.0"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -246,7 +246,7 @@ export class BuiltInTypeCompiler
|
|
|
246
246
|
implements I.IBuiltInTypeCompiler {
|
|
247
247
|
|
|
248
248
|
public constructor(
|
|
249
|
-
private _lang: C.ILanguageBuilder
|
|
249
|
+
private readonly _lang: C.ILanguageBuilder
|
|
250
250
|
) {}
|
|
251
251
|
|
|
252
252
|
public isStringType(type: string): boolean {
|
package/src/lib/BuiltInTypes.ts
CHANGED
package/src/lib/Common.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -14,7 +14,12 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
export type
|
|
17
|
+
export type ITypeChecker<T> = (v: unknown) => v is T;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use `ITypeChecker` instead.
|
|
21
|
+
*/
|
|
22
|
+
export type TypeChecker<T> = ITypeChecker<T>;
|
|
18
23
|
|
|
19
24
|
export interface ICompileOutputArgument {
|
|
20
25
|
|
package/src/lib/Compiler.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -28,9 +28,9 @@ implements C.ICompiler {
|
|
|
28
28
|
private _defTypes: Record<string, C.ICompileResult>;
|
|
29
29
|
|
|
30
30
|
public constructor(
|
|
31
|
-
private _lang: C.ILanguageBuilder,
|
|
32
|
-
private _builtInTypes: I.IBuiltInTypeCompiler,
|
|
33
|
-
private _filters: I.IFilterCompiler
|
|
31
|
+
private readonly _lang: C.ILanguageBuilder,
|
|
32
|
+
private readonly _builtInTypes: I.IBuiltInTypeCompiler,
|
|
33
|
+
private readonly _filters: I.IFilterCompiler
|
|
34
34
|
) {
|
|
35
35
|
this._defTypes = {};
|
|
36
36
|
}
|
|
@@ -164,6 +164,9 @@ implements C.ICompiler {
|
|
|
164
164
|
case 'undefined':
|
|
165
165
|
|
|
166
166
|
return this._lang.isUndefined(ctx.vName, true);
|
|
167
|
+
|
|
168
|
+
default:
|
|
169
|
+
break;
|
|
167
170
|
}
|
|
168
171
|
|
|
169
172
|
throw new TypeError('Unknwn rules.');
|
|
@@ -203,7 +206,7 @@ implements C.ICompiler {
|
|
|
203
206
|
|
|
204
207
|
if (regResult[1]) {
|
|
205
208
|
|
|
206
|
-
|
|
209
|
+
const range = regResult[1].split(',').map((x) => parseInt(x.trim()));
|
|
207
210
|
|
|
208
211
|
if (range.length === 1) {
|
|
209
212
|
|
|
@@ -576,7 +579,7 @@ implements C.ICompiler {
|
|
|
576
579
|
|
|
577
580
|
private _compileModifierOR(ctx: I.IContext, rules: any[]): string {
|
|
578
581
|
|
|
579
|
-
|
|
582
|
+
const result: string[] = [];
|
|
580
583
|
|
|
581
584
|
for (const r of rules) {
|
|
582
585
|
|
|
@@ -882,7 +885,7 @@ implements C.ICompiler {
|
|
|
882
885
|
|
|
883
886
|
private _validateTypeName(name: unknown): void {
|
|
884
887
|
|
|
885
|
-
if (typeof name !== 'string' ||
|
|
888
|
+
if (typeof name !== 'string' || !I.RE_VALID_CUSTOM_TYPE_NAME.test(name)) {
|
|
886
889
|
|
|
887
890
|
throw new TypeError(`Invalid name ${
|
|
888
891
|
JSON.stringify(name)
|
|
@@ -988,7 +991,7 @@ implements C.ICompiler {
|
|
|
988
991
|
throw new SyntaxError(`Invalid dict ${JSON.stringify(rules)}.`);
|
|
989
992
|
}
|
|
990
993
|
|
|
991
|
-
|
|
994
|
+
const tmp: Record<string, string> = {};
|
|
992
995
|
|
|
993
996
|
const id = `${Date.now()}${Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)}`;
|
|
994
997
|
|
|
@@ -999,7 +1002,7 @@ implements C.ICompiler {
|
|
|
999
1002
|
|
|
1000
1003
|
const type = `${I.PREDEF_TYPE_SYMBOL}${this._lang.varName(id)}`;
|
|
1001
1004
|
|
|
1002
|
-
for (
|
|
1005
|
+
for (const key of rules[0]) {
|
|
1003
1006
|
|
|
1004
1007
|
if (typeof key !== 'string') {
|
|
1005
1008
|
|
package/src/lib/Context.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -21,8 +21,8 @@ export class FilterCompiler
|
|
|
21
21
|
implements I.IFilterCompiler {
|
|
22
22
|
|
|
23
23
|
public constructor(
|
|
24
|
-
private _lang: C.ILanguageBuilder,
|
|
25
|
-
private _bitc: I.IBuiltInTypeCompiler
|
|
24
|
+
private readonly _lang: C.ILanguageBuilder,
|
|
25
|
+
private readonly _bitc: I.IBuiltInTypeCompiler
|
|
26
26
|
) {}
|
|
27
27
|
|
|
28
28
|
public compile(rule: string, ctx: I.IContext): string {
|
|
@@ -36,7 +36,7 @@ implements I.IFilterCompiler {
|
|
|
36
36
|
throw new TypeError('Only number is allowed as filter arguments.');
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
const ret: string[] = [];
|
|
40
40
|
|
|
41
41
|
switch (filter[0]) {
|
|
42
42
|
case 'array.length':
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { createCompiler } from './Compiler';
|
|
18
18
|
import { createJavaScriptLanguageBuilder } from './langs/JavaScript';
|
|
19
19
|
import * as C from './Common';
|
|
20
|
+
import * as I from './Internal';
|
|
20
21
|
|
|
21
22
|
export interface IInlineCompileOptions extends C.ICompileOptions {
|
|
22
23
|
|
|
@@ -34,14 +35,22 @@ export interface IInlineCompiler {
|
|
|
34
35
|
*
|
|
35
36
|
* @param options The options of compilation.
|
|
36
37
|
*/
|
|
37
|
-
compile<T>(options: IInlineCompileOptions): C.
|
|
38
|
+
compile<T>(options: IInlineCompileOptions): C.ITypeChecker<T>;
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* Get the type-checker of a pre-defined type.
|
|
41
42
|
*
|
|
42
43
|
* @param name The name of the pre-defined type.
|
|
43
44
|
*/
|
|
44
|
-
getPredefinedType<T>(name: string): C.
|
|
45
|
+
getPredefinedType<T>(name: string): C.ITypeChecker<T>;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Register a pre-defined type checker.
|
|
49
|
+
*
|
|
50
|
+
* @param name The name of the pre-defined type (without prefix `@`)
|
|
51
|
+
* @param checker The checker callback of the pre-defined type.
|
|
52
|
+
*/
|
|
53
|
+
addPredefinedType<T>(name: string, checker: C.ITypeChecker<T>): this;
|
|
45
54
|
|
|
46
55
|
/**
|
|
47
56
|
* Check if a pre-defined type is compiled.
|
|
@@ -59,11 +68,11 @@ export interface IInlineCompiler {
|
|
|
59
68
|
class InlineCompiler
|
|
60
69
|
implements IInlineCompiler {
|
|
61
70
|
|
|
62
|
-
private _defTypes: Record<string, C.
|
|
71
|
+
private _defTypes: Record<string, C.ITypeChecker<any>>;
|
|
63
72
|
|
|
64
73
|
private _missingTypes: Record<string, boolean>;
|
|
65
74
|
|
|
66
|
-
private _compiler: C.ICompiler;
|
|
75
|
+
private readonly _compiler: C.ICompiler;
|
|
67
76
|
|
|
68
77
|
public constructor() {
|
|
69
78
|
|
|
@@ -78,7 +87,7 @@ implements IInlineCompiler {
|
|
|
78
87
|
);
|
|
79
88
|
}
|
|
80
89
|
|
|
81
|
-
public compile<T>(options: IInlineCompileOptions): C.
|
|
90
|
+
public compile<T>(options: IInlineCompileOptions): C.ITypeChecker<T> {
|
|
82
91
|
|
|
83
92
|
const result = this._compiler.compile(options);
|
|
84
93
|
|
|
@@ -92,7 +101,7 @@ implements IInlineCompiler {
|
|
|
92
101
|
stopOnEntry?: boolean
|
|
93
102
|
): void {
|
|
94
103
|
|
|
95
|
-
for (
|
|
104
|
+
for (const x of types) {
|
|
96
105
|
|
|
97
106
|
if (this._defTypes[x]) {
|
|
98
107
|
|
|
@@ -115,6 +124,18 @@ implements IInlineCompiler {
|
|
|
115
124
|
}
|
|
116
125
|
}
|
|
117
126
|
|
|
127
|
+
public addPredefinedType(name: string, checker: C.ITypeChecker<any>): this {
|
|
128
|
+
|
|
129
|
+
if (!I.RE_VALID_CUSTOM_TYPE_NAME.test(name)) {
|
|
130
|
+
|
|
131
|
+
throw new TypeError(`Invalid name ${ JSON.stringify(name) } for a pre-defined type.`);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
this._defTypes[name] = checker;
|
|
135
|
+
|
|
136
|
+
return this;
|
|
137
|
+
}
|
|
138
|
+
|
|
118
139
|
public detectUndefinedTypes(): string[] {
|
|
119
140
|
|
|
120
141
|
return Object.keys(this._missingTypes);
|
|
@@ -125,7 +146,7 @@ implements IInlineCompiler {
|
|
|
125
146
|
return !!this._defTypes[name];
|
|
126
147
|
}
|
|
127
148
|
|
|
128
|
-
public getPredefinedType(name: string): C.
|
|
149
|
+
public getPredefinedType(name: string): C.ITypeChecker<any> {
|
|
129
150
|
|
|
130
151
|
if (!this._defTypes[name]) {
|
|
131
152
|
|
|
@@ -138,7 +159,7 @@ implements IInlineCompiler {
|
|
|
138
159
|
private _wrapCheckerCode(
|
|
139
160
|
info: C.ICompileResult,
|
|
140
161
|
stopOnEntry: boolean = false
|
|
141
|
-
): C.
|
|
162
|
+
): C.ITypeChecker<any> {
|
|
142
163
|
|
|
143
164
|
const soe = stopOnEntry ? 'debugger;' : '';
|
|
144
165
|
|
package/src/lib/Internal.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -123,3 +123,5 @@ export interface IBuiltInTypeCompiler {
|
|
|
123
123
|
|
|
124
124
|
isElemental(type: string): boolean;
|
|
125
125
|
}
|
|
126
|
+
|
|
127
|
+
export const RE_VALID_CUSTOM_TYPE_NAME = /^[-:.\w]+$/;
|
package/src/lib/Modifiers.ts
CHANGED
package/src/lib/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -192,7 +192,7 @@ implements C.ILanguageBuilder {
|
|
|
192
192
|
regExp: string
|
|
193
193
|
): string {
|
|
194
194
|
|
|
195
|
-
|
|
195
|
+
const m = /^\/(.+)\/([a-z]*)$/i.exec(regExp);
|
|
196
196
|
|
|
197
197
|
if (m) {
|
|
198
198
|
|
package/src/test/00-all.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-loss-of-precision */
|
|
1
2
|
/**
|
|
2
|
-
* Copyright
|
|
3
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
4
|
*
|
|
4
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
6
|
* you may not use this file except in compliance with the License.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright
|
|
2
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -158,38 +158,38 @@ const testItems: ITestSuite = {
|
|
|
158
158
|
'a->[]': 'string'
|
|
159
159
|
}, [
|
|
160
160
|
assertItem([], false),
|
|
161
|
-
assertItem({'a': []}, true),
|
|
162
|
-
assertItem({'a': [1]}, false),
|
|
163
|
-
assertItem({'a': ['1']}, true)
|
|
161
|
+
assertItem({ 'a': [] }, true),
|
|
162
|
+
assertItem({ 'a': [1] }, false),
|
|
163
|
+
assertItem({ 'a': ['1'] }, true)
|
|
164
164
|
]),
|
|
165
165
|
addRule({
|
|
166
166
|
'a->[3]': 'string'
|
|
167
167
|
}, [
|
|
168
168
|
assertItem([], false),
|
|
169
|
-
assertItem({'a': []}, false),
|
|
170
|
-
assertItem({'a': [1, 1, 2]}, false),
|
|
171
|
-
assertItem({'a': ['1', 'f', 'c']}, true),
|
|
172
|
-
assertItem({'a': ['1', 'f', 'c', 'c']}, false)
|
|
169
|
+
assertItem({ 'a': [] }, false),
|
|
170
|
+
assertItem({ 'a': [1, 1, 2] }, false),
|
|
171
|
+
assertItem({ 'a': ['1', 'f', 'c'] }, true),
|
|
172
|
+
assertItem({ 'a': ['1', 'f', 'c', 'c'] }, false)
|
|
173
173
|
]),
|
|
174
174
|
addRule({
|
|
175
175
|
'a->[3,]': 'string'
|
|
176
176
|
}, [
|
|
177
177
|
assertItem([], false),
|
|
178
|
-
assertItem({'a': []}, false),
|
|
179
|
-
assertItem({'a': [1, 1, 2]}, false),
|
|
180
|
-
assertItem({'a': ['1', 'f', 'c']}, true),
|
|
181
|
-
assertItem({'a': ['1', 'f', 'c', 'c']}, true)
|
|
178
|
+
assertItem({ 'a': [] }, false),
|
|
179
|
+
assertItem({ 'a': [1, 1, 2] }, false),
|
|
180
|
+
assertItem({ 'a': ['1', 'f', 'c'] }, true),
|
|
181
|
+
assertItem({ 'a': ['1', 'f', 'c', 'c'] }, true)
|
|
182
182
|
]),
|
|
183
183
|
addRule({
|
|
184
184
|
'a->[3,5]': 'string'
|
|
185
185
|
}, [
|
|
186
186
|
assertItem([], false),
|
|
187
|
-
assertItem({'a': []}, false),
|
|
188
|
-
assertItem({'a': [1, 1, 2]}, false),
|
|
189
|
-
assertItem({'a': ['1', 'f', 'c']}, true),
|
|
190
|
-
assertItem({'a': ['1', 'f', 'c', 'c']}, true),
|
|
191
|
-
assertItem({'a': ['1', 'f', 'c', 'c', '5']}, true),
|
|
192
|
-
assertItem({'a': ['1', 'f', 'c', 'c', '5', 'c']}, false)
|
|
187
|
+
assertItem({ 'a': [] }, false),
|
|
188
|
+
assertItem({ 'a': [1, 1, 2] }, false),
|
|
189
|
+
assertItem({ 'a': ['1', 'f', 'c'] }, true),
|
|
190
|
+
assertItem({ 'a': ['1', 'f', 'c', 'c'] }, true),
|
|
191
|
+
assertItem({ 'a': ['1', 'f', 'c', 'c', '5'] }, true),
|
|
192
|
+
assertItem({ 'a': ['1', 'f', 'c', 'c', '5', 'c'] }, false)
|
|
193
193
|
])
|
|
194
194
|
],
|
|
195
195
|
};
|
package/src/test/03-tuple.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-loss-of-precision */
|
|
1
2
|
/**
|
|
2
|
-
* Copyright
|
|
3
|
+
* Copyright 2022 Angus Fenying <fenying@litert.org>
|
|
3
4
|
*
|
|
4
5
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
6
|
* you may not use this file except in compliance with the License.
|