@litert/typeguard 1.1.0 → 1.3.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.
Files changed (63) hide show
  1. package/CHANGES.md +10 -0
  2. package/lib/BuiltInTypeCompiler.d.ts +2 -2
  3. package/lib/BuiltInTypeCompiler.d.ts.map +1 -1
  4. package/lib/BuiltInTypeCompiler.js +1 -1
  5. package/lib/BuiltInTypeCompiler.js.map +1 -1
  6. package/lib/BuiltInTypes.d.ts +1 -1
  7. package/lib/BuiltInTypes.js +1 -1
  8. package/lib/Common.d.ts +19 -2
  9. package/lib/Common.d.ts.map +1 -1
  10. package/lib/Common.js +1 -1
  11. package/lib/Compiler.d.ts +1 -1
  12. package/lib/Compiler.d.ts.map +1 -1
  13. package/lib/Compiler.js +93 -39
  14. package/lib/Compiler.js.map +1 -1
  15. package/lib/Context.d.ts +5 -4
  16. package/lib/Context.d.ts.map +1 -1
  17. package/lib/Context.js +9 -6
  18. package/lib/Context.js.map +1 -1
  19. package/lib/FilterCompiler.d.ts +3 -3
  20. package/lib/FilterCompiler.d.ts.map +1 -1
  21. package/lib/FilterCompiler.js +2 -2
  22. package/lib/FilterCompiler.js.map +1 -1
  23. package/lib/InlineCompiler.d.ts +10 -3
  24. package/lib/InlineCompiler.d.ts.map +1 -1
  25. package/lib/InlineCompiler.js +16 -5
  26. package/lib/InlineCompiler.js.map +1 -1
  27. package/lib/Internal.d.ts +6 -4
  28. package/lib/Internal.d.ts.map +1 -1
  29. package/lib/Internal.js +3 -2
  30. package/lib/Internal.js.map +1 -1
  31. package/lib/Modifiers.d.ts +1 -1
  32. package/lib/Modifiers.js +1 -1
  33. package/lib/index.d.ts +1 -1
  34. package/lib/index.js +6 -2
  35. package/lib/index.js.map +1 -1
  36. package/lib/langs/JavaScript.d.ts +1 -1
  37. package/lib/langs/JavaScript.d.ts.map +1 -1
  38. package/lib/langs/JavaScript.js +29 -4
  39. package/lib/langs/JavaScript.js.map +1 -1
  40. package/package.json +12 -12
  41. package/src/examples/quick-start.ts +118 -2
  42. package/src/lib/BuiltInTypeCompiler.ts +2 -2
  43. package/src/lib/BuiltInTypes.ts +1 -1
  44. package/src/lib/Common.ts +41 -2
  45. package/src/lib/Compiler.ts +155 -50
  46. package/src/lib/Context.ts +9 -11
  47. package/src/lib/FilterCompiler.ts +4 -4
  48. package/src/lib/InlineCompiler.ts +36 -10
  49. package/src/lib/Internal.ts +8 -4
  50. package/src/lib/Modifiers.ts +1 -1
  51. package/src/lib/index.ts +1 -1
  52. package/src/lib/langs/JavaScript.ts +58 -5
  53. package/src/test/00-all.ts +1 -1
  54. package/src/test/01-elemental-types.ts +2 -1
  55. package/src/test/02-array-and-list.ts +18 -18
  56. package/src/test/03-tuple.ts +1 -1
  57. package/src/test/04-from-string.ts +2 -1
  58. package/src/test/05-string-asserts.ts +1 -1
  59. package/src/test/06-structure.ts +26 -26
  60. package/src/test/07-modifiers.ts +71 -10
  61. package/src/test/08-map-and-dict.ts +20 -20
  62. package/src/test/09-exceptions.ts +4 -4
  63. package/src/test/abstracts.ts +45 -7
@@ -1 +1 @@
1
- {"version":3,"file":"Compiler.js","sourceRoot":"","sources":["../src/lib/Compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Compiler.js","sourceRoot":"","sources":["../src/lib/Compiler.ts"],"names":[],"mappings":"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"}
package/lib/Context.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
@@ -16,14 +16,15 @@
16
16
  import * as i from './Internal';
17
17
  export declare class Context implements i.IContext {
18
18
  vName: string;
19
+ vTraceName: string;
20
+ vTracePrefix: string;
19
21
  readonly typeSlotName: string;
20
22
  readonly referredTypes: Record<string, boolean>;
21
- trace: boolean;
22
- tracePoint: number;
23
23
  vCursor: number;
24
24
  stack: i.IContextData[];
25
25
  flags: Record<string, i.EFlagValue>;
26
- constructor(vName: string, typeSlotName: string, referredTypes: Record<string, boolean>);
26
+ tracePath: string;
27
+ constructor(vName: string, vTraceName: string, vTracePrefix: string, typeSlotName: string, referredTypes: Record<string, boolean>);
27
28
  trap(subjChanged?: boolean): void;
28
29
  untrap(): void;
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../src/lib/Context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,qBAAa,OAAQ,YAAW,CAAC,CAAC,QAAQ;IAa3B,KAAK,EAAE,MAAM;aACJ,YAAY,EAAE,MAAM;aACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAbnD,KAAK,EAAE,OAAO,CAAC;IAEf,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;IAExB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBAGhC,KAAK,EAAE,MAAM,EACJ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAanD,IAAI,CAAC,WAAW,GAAE,OAAe,GAAG,IAAI;IA8BxC,MAAM,IAAI,IAAI;CAYxB"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../src/lib/Context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,qBAAa,OAAQ,YAAW,CAAC,CAAC,QAAQ;IAW3B,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,MAAM;aACX,YAAY,EAAE,MAAM;aACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAbnD,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;IAExB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAEpC,SAAS,EAAE,MAAM,CAAM;gBAGnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASnD,IAAI,CAAC,WAAW,GAAE,OAAe,GAAG,IAAI;IA+BxC,MAAM,IAAI,IAAI;CAaxB"}
package/lib/Context.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
@@ -18,20 +18,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.Context = void 0;
19
19
  const i = require("./Internal");
20
20
  class Context {
21
- constructor(vName, typeSlotName, referredTypes) {
21
+ constructor(vName, vTraceName, vTracePrefix, typeSlotName, referredTypes) {
22
22
  this.vName = vName;
23
+ this.vTraceName = vTraceName;
24
+ this.vTracePrefix = vTracePrefix;
23
25
  this.typeSlotName = typeSlotName;
24
26
  this.referredTypes = referredTypes;
27
+ this.tracePath = '';
25
28
  this.stack = [];
26
29
  this.vCursor = 0;
27
30
  this.flags = {};
28
- this.tracePoint = 0;
29
- this.trace = false;
30
31
  }
31
32
  trap(subjChanged = false) {
32
33
  this.stack.push({
33
34
  vName: this.vName,
34
- flags: this.flags
35
+ flags: this.flags,
36
+ tracePath: this.tracePath,
35
37
  });
36
38
  const prevFlags = this.flags;
37
39
  this.flags = {};
@@ -52,8 +54,9 @@ class Context {
52
54
  if (!prev) {
53
55
  throw new Error('Failed to pop stack.');
54
56
  }
55
- this.vName = prev.vName;
56
57
  this.flags = prev.flags;
58
+ this.vName = prev.vName;
59
+ this.tracePath = prev.tracePath;
57
60
  }
58
61
  }
59
62
  exports.Context = Context;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../src/lib/Context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,gCAAgC;AAEhC,MAAa,OAAO;IAYhB,YACW,KAAa,EACJ,YAAoB,EACpB,aAAsC;QAF/C,UAAK,GAAL,KAAK,CAAQ;QACJ,iBAAY,GAAZ,YAAY,CAAQ;QACpB,kBAAa,GAAb,aAAa,CAAyB;QAEtD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAEjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,IAAI,CAAC,cAAuB,KAAK;QAEpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAEzB,IAAI,WAAW,EAAE;gBAEb,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE;oBAEjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;iBACpC;aACJ;iBACI,IACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO;gBACvC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EACjD;gBAEE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;IACL,CAAC;IAEM,MAAM;QAET,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,EAAE;YAEP,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,CAAC;CACJ;AAtED,0BAsEC"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../src/lib/Context.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,gCAAgC;AAEhC,MAAa,OAAO;IAUhB,YACW,KAAa,EACb,UAAkB,EAClB,YAAoB,EACX,YAAoB,EACpB,aAAsC;QAJ/C,UAAK,GAAL,KAAK,CAAQ;QACb,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACX,iBAAY,GAAZ,YAAY,CAAQ;QACpB,kBAAa,GAAb,aAAa,CAAyB;QAPnD,cAAS,GAAW,EAAE,CAAC;QAS1B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QAEjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAEM,IAAI,CAAC,cAAuB,KAAK;QAEpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;YAEzB,IAAI,WAAW,EAAE;gBAEb,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE;oBAEjD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;iBACpC;aACJ;iBACI,IACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO;gBACvC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EACjD;gBAEE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;IACL,CAAC;IAEM,MAAM;QAET,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,EAAE;YAEP,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACpC,CAAC;CACJ;AApED,0BAoEC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
@@ -16,8 +16,8 @@
16
16
  import * as C from './Common';
17
17
  import * as I from './Internal';
18
18
  export declare class FilterCompiler implements I.IFilterCompiler {
19
- private _lang;
20
- private _bitc;
19
+ private readonly _lang;
20
+ private readonly _bitc;
21
21
  constructor(_lang: C.ILanguageBuilder, _bitc: I.IBuiltInTypeCompiler);
22
22
  compile(rule: string, ctx: I.IContext): string;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCompiler.d.ts","sourceRoot":"","sources":["../src/lib/FilterCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,qBAAa,cACb,YAAW,CAAC,CAAC,eAAe;IAGpB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,KAAK;gBADL,KAAK,EAAE,CAAC,CAAC,gBAAgB,EACzB,KAAK,EAAE,CAAC,CAAC,oBAAoB;IAGlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM;CAkIxD"}
1
+ {"version":3,"file":"FilterCompiler.d.ts","sourceRoot":"","sources":["../src/lib/FilterCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,qBAAa,cACb,YAAW,CAAC,CAAC,eAAe;IAGpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,KAAK,EAAE,CAAC,CAAC,gBAAgB,EACzB,KAAK,EAAE,CAAC,CAAC,oBAAoB;IAG3C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,MAAM;CAkIxD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
@@ -27,7 +27,7 @@ class FilterCompiler {
27
27
  if (filter.slice(2).length !== filter.slice(2).filter((x) => /^\d+(\.\d+)?$/.test(x)).length) {
28
28
  throw new TypeError('Only number is allowed as filter arguments.');
29
29
  }
30
- let ret = [];
30
+ const ret = [];
31
31
  switch (filter[0]) {
32
32
  case 'array.length':
33
33
  ret.push(this._lang.isArray(vName, true));
@@ -1 +1 @@
1
- {"version":3,"file":"FilterCompiler.js","sourceRoot":"","sources":["../src/lib/FilterCompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilterCompiler.js","sourceRoot":"","sources":["../src/lib/FilterCompiler.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
@@ -27,13 +27,20 @@ export interface IInlineCompiler {
27
27
  *
28
28
  * @param options The options of compilation.
29
29
  */
30
- compile<T>(options: IInlineCompileOptions): C.TypeChecker<T>;
30
+ compile<T>(options: IInlineCompileOptions): C.ITypeChecker<T>;
31
31
  /**
32
32
  * Get the type-checker of a pre-defined type.
33
33
  *
34
34
  * @param name The name of the pre-defined type.
35
35
  */
36
- getPredefinedType<T>(name: string): C.TypeChecker<T>;
36
+ getPredefinedType<T>(name: string): C.ITypeChecker<T>;
37
+ /**
38
+ * Register a pre-defined type checker.
39
+ *
40
+ * @param name The name of the pre-defined type (without prefix `@`)
41
+ * @param checker The checker callback of the pre-defined type.
42
+ */
43
+ addPredefinedType<T>(name: string, checker: C.ITypeChecker<T>): this;
37
44
  /**
38
45
  * Check if a pre-defined type is compiled.
39
46
  *
@@ -1 +1 @@
1
- {"version":3,"file":"InlineCompiler.d.ts","sourceRoot":"","sources":["../src/lib/InlineCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,MAAM,WAAW,qBAAsB,SAAQ,CAAC,CAAC,eAAe;IAE5D;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAE5B;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE7D;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAErD;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE,CAAC;CACpC;AAkGD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAGtD"}
1
+ {"version":3,"file":"InlineCompiler.d.ts","sourceRoot":"","sources":["../src/lib/InlineCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,MAAM,WAAW,qBAAsB,SAAQ,CAAC,CAAC,eAAe;IAE5D;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAE5B;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAE9D;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAEtD;;;;;OAKG;IACH,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAErE;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE,CAAC;CACpC;AAmHD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAGtD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
@@ -18,12 +18,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.createInlineCompiler = void 0;
19
19
  const Compiler_1 = require("./Compiler");
20
20
  const JavaScript_1 = require("./langs/JavaScript");
21
+ const I = require("./Internal");
21
22
  class InlineCompiler {
22
23
  constructor() {
23
24
  this._defTypes = {};
24
25
  this._missingTypes = {};
25
- const lang = JavaScript_1.createJavaScriptLanguageBuilder();
26
- this._compiler = Compiler_1.createCompiler(lang);
26
+ const lang = (0, JavaScript_1.createJavaScriptLanguageBuilder)();
27
+ this._compiler = (0, Compiler_1.createCompiler)(lang);
27
28
  }
28
29
  compile(options) {
29
30
  const result = this._compiler.compile(options);
@@ -31,7 +32,7 @@ class InlineCompiler {
31
32
  return this._wrapCheckerCode(result, options.stopOnEntry);
32
33
  }
33
34
  _preapreDefinedTypes(types, stopOnEntry) {
34
- for (let x of types) {
35
+ for (const x of types) {
35
36
  if (this._defTypes[x]) {
36
37
  continue;
37
38
  }
@@ -45,6 +46,13 @@ class InlineCompiler {
45
46
  delete this._missingTypes[x];
46
47
  }
47
48
  }
49
+ addPredefinedType(name, checker) {
50
+ if (!I.RE_VALID_CUSTOM_TYPE_NAME.test(name)) {
51
+ throw new TypeError(`Invalid name ${JSON.stringify(name)} for a pre-defined type.`);
52
+ }
53
+ this._defTypes[name] = checker;
54
+ return this;
55
+ }
48
56
  detectUndefinedTypes() {
49
57
  return Object.keys(this._missingTypes);
50
58
  }
@@ -59,7 +67,10 @@ class InlineCompiler {
59
67
  }
60
68
  _wrapCheckerCode(info, stopOnEntry = false) {
61
69
  const soe = stopOnEntry ? 'debugger;' : '';
62
- return (new Function(info.typeSlotName, `return function(${info.arguments[0].name}) {${soe}
70
+ return (new Function(info.typeSlotName, `return function(${info.arguments
71
+ .map((a) => a.initial ? `${a.name} = ${a.initial}` : a.name)
72
+ .join(',')}) {
73
+ ${soe}
63
74
 
64
75
  return ${info.source};
65
76
  };`))(this._defTypes);
@@ -1 +1 @@
1
- {"version":3,"file":"InlineCompiler.js","sourceRoot":"","sources":["../src/lib/InlineCompiler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,yCAA4C;AAC5C,mDAAqE;AAyCrE,MAAM,cAAc;IAShB;QAEI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,4CAA+B,EAAE,CAAC;QAE/C,IAAI,CAAC,SAAS,GAAG,yBAAc,CAC3B,IAAI,CACP,CAAC;IACN,CAAC;IAEM,OAAO,CAAI,OAA8B;QAE5C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAErE,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAEO,oBAAoB,CACxB,KAAe,EACf,WAAqB;QAGrB,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;YAEjB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBAEnB,SAAS;aACZ;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,CAAC,IAAI,EAAE;gBAEP,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC7B,SAAS;aACZ;YAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAE7D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE9C,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAChC;IACL,CAAC;IAEM,oBAAoB;QAEvB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAEM,iBAAiB,CAAC,IAAY;QAEjC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,iBAAiB,CAAC,IAAY;QAEjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAEvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,kBAAkB,CAAC,CAAC;SAChE;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEO,gBAAgB,CACpB,IAAsB,EACtB,cAAuB,KAAK;QAG5B,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3C,OAAO,CAAC,IAAI,QAAQ,CAChB,IAAI,CAAC,YAAY,EACjB,mBAAmB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG;;yBAErC,IAAI,CAAC,MAAM;eACrB,CACN,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;CACJ;AAED;;GAEG;AACH,SAAgB,oBAAoB;IAEhC,OAAO,IAAI,cAAc,EAAE,CAAC;AAChC,CAAC;AAHD,oDAGC"}
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 2021 Angus.Fenying <fenying@litert.org>
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.
@@ -51,12 +51,13 @@ export declare enum EFlagValue {
51
51
  ELEMENT_INHERIT = 3
52
52
  }
53
53
  export interface IContextData {
54
- vName: string;
55
54
  flags: Record<string, EFlagValue>;
55
+ vName: string;
56
+ tracePath: string;
56
57
  }
57
58
  export interface IContext extends IContextData {
58
- trace: boolean;
59
- tracePoint: number;
59
+ vTraceName: string;
60
+ vTracePrefix: string;
60
61
  vCursor: number;
61
62
  readonly stack: IContextData[];
62
63
  readonly typeSlotName: string;
@@ -84,4 +85,5 @@ export interface IBuiltInTypeCompiler {
84
85
  isConstructed(type: string): boolean;
85
86
  isElemental(type: string): boolean;
86
87
  }
88
+ export declare const RE_VALID_CUSTOM_TYPE_NAME: RegExp;
87
89
  //# sourceMappingURL=Internal.d.ts.map
@@ -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,MAAM,EAAE,UAAU,CAAC,CAAC;IAElC,KAAK,EAAE,MAAM,CAAC;IAEd,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAS,SAAQ,YAAY;IAE1C,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IAErB,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 2021 Angus.Fenying <fenying@litert.org>
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
@@ -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;AA0DY,QAAA,yBAAyB,GAAG,YAAY,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
package/lib/Modifiers.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
package/lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
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;;;;;;;;;;;;AAEH,mDAAiC;AACjC,qDAAmC;AACnC,6CAA2B;AAC3B,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;AAEH,mDAAiC;AACjC,qDAAmC;AACnC,6CAA2B;AAC3B,2CAAyB"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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.
@@ -1 +1 @@
1
- {"version":3,"file":"JavaScript.d.ts","sourceRoot":"","sources":["../../src/lib/langs/JavaScript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,WAAW,CAAC;AA4Z/B;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,CAAC,CAAC,gBAAgB,CAGpE"}
1
+ {"version":3,"file":"JavaScript.d.ts","sourceRoot":"","sources":["../../src/lib/langs/JavaScript.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,WAAW,CAAC;AAid/B;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,CAAC,CAAC,gBAAgB,CAGpE"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2021 Angus.Fenying <fenying@litert.org>
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
- let m = /^\/(.+)\/([a-z]*)$/i.exec(regExp);
115
+ const m = /^\/(.+)\/([a-z]*)$/i.exec(regExp);
116
116
  if (m) {
117
117
  return `/${m[1]}/${m[2] || ''}.test(${expr})`;
118
118
  }
@@ -176,8 +176,9 @@ class JavaScriptLanguage {
176
176
  keys(vn) {
177
177
  return `Object.keys(${vn})`;
178
178
  }
179
- forEach(an, it, body) {
180
- return `for (const ${it} of ${an}) {
179
+ forEach(arrVar, elVar, iterVar, body) {
180
+ return `for (let ${elVar} = 0; ${elVar} < ${arrVar}.length; ${elVar}++) {
181
+ const ${iterVar} = ${arrVar}[${elVar}];
181
182
  ${body}
182
183
  }`;
183
184
  }
@@ -244,6 +245,30 @@ class JavaScriptLanguage {
244
245
  ${body}
245
246
  })(${args.join(', ')})`;
246
247
  }
248
+ escape(str) {
249
+ return str.replace(/(['"])/g, '\\$1').replace(/\n/g, '\\n').replace(/\r/g, '\\r');
250
+ }
251
+ stringTemplateVar(varExpr) {
252
+ return `"\${${varExpr}.replace(/(['"])/g, '\\\\$1').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r')}"`;
253
+ }
254
+ numberTemplateVar(varExpr) {
255
+ return `\${${varExpr}}`;
256
+ }
257
+ addTrace(vTrace, vTraceStack, path, negative = false) {
258
+ if (negative) {
259
+ return `(${vTrace}.push(\`\${${vTraceStack}}${path}\`), true)`;
260
+ }
261
+ return `(${vTrace}.push(\`\${${vTraceStack}}${path}\`), false)`;
262
+ }
263
+ add(a, b) {
264
+ return `${a} + ${b}`;
265
+ }
266
+ orAddTrace(expr, vTrace, vTraceStack, path, negative = false) {
267
+ if (negative) {
268
+ return `((${expr}) && (${vTrace}.push(\`\${${vTraceStack}}${path}\`), true))`;
269
+ }
270
+ return `((${expr}) || (${vTrace}.push(\`\${${vTraceStack}}${path}\`), false))`;
271
+ }
247
272
  }
248
273
  /**
249
274
  * Create a language builder object for JavaScript.