@litert/typeguard 1.3.0 → 1.4.1
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 +11 -1
- package/lib/BuiltInTypeCompiler.d.ts +1 -1
- package/lib/BuiltInTypeCompiler.js +4 -4
- 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 +6 -5
- 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 +58 -36
- package/lib/Compiler.js.map +1 -1
- package/lib/Context.d.ts +2 -2
- package/lib/Context.d.ts.map +1 -1
- package/lib/Context.js +2 -2
- package/lib/Context.js.map +1 -1
- package/lib/FilterCompiler.d.ts +3 -3
- package/lib/FilterCompiler.d.ts.map +1 -1
- package/lib/FilterCompiler.js +4 -4
- package/lib/FilterCompiler.js.map +1 -1
- package/lib/InlineCompiler.d.ts +2 -2
- package/lib/InlineCompiler.d.ts.map +1 -1
- package/lib/InlineCompiler.js +5 -7
- package/lib/InlineCompiler.js.map +1 -1
- package/lib/Internal.d.ts +9 -4
- package/lib/Internal.d.ts.map +1 -1
- package/lib/Internal.js +45 -4
- package/lib/Internal.js.map +1 -1
- package/lib/Modifiers.d.ts +2 -1
- package/lib/Modifiers.d.ts.map +1 -1
- package/lib/Modifiers.js +3 -2
- package/lib/Modifiers.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/langs/JavaScript.d.ts +1 -1
- package/lib/langs/JavaScript.js +2 -2
- package/package.json +10 -12
- package/src/examples/quick-start.ts +5 -1
- package/src/lib/BuiltInTypeCompiler.ts +4 -4
- package/src/lib/BuiltInTypes.ts +1 -1
- package/src/lib/Common.ts +5 -4
- package/src/lib/Compiler.ts +67 -40
- package/src/lib/Context.ts +2 -2
- package/src/lib/FilterCompiler.ts +3 -3
- package/src/lib/InlineCompiler.ts +6 -9
- package/src/lib/Internal.ts +73 -4
- package/src/lib/Modifiers.ts +3 -1
- package/src/lib/index.ts +1 -1
- package/src/lib/langs/JavaScript.ts +2 -2
- package/src/test/00-all.ts +0 -35
- package/src/test/01-elemental-types.ts +0 -1963
- package/src/test/02-array-and-list.ts +0 -197
- package/src/test/03-tuple.ts +0 -220
- package/src/test/04-from-string.ts +0 -1488
- package/src/test/05-string-asserts.ts +0 -794
- package/src/test/06-structure.ts +0 -277
- package/src/test/07-modifiers.ts +0 -220
- package/src/test/08-map-and-dict.ts +0 -151
- package/src/test/09-exceptions.ts +0 -67
- package/src/test/abstracts.ts +0 -211
package/CHANGES.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changes Logs
|
|
2
2
|
|
|
3
|
+
## v1.4.1
|
|
4
|
+
|
|
5
|
+
- fix(compiler): corrected the handling of `$.strict` with empty object.
|
|
6
|
+
|
|
7
|
+
## v1.4.0
|
|
8
|
+
|
|
9
|
+
- build(project): upgraded toolchains.
|
|
10
|
+
- feat(rules): added supports of modifier `$.enum`.
|
|
11
|
+
- feat(rules): added supports of using pre-defined type with custom arguments.
|
|
12
|
+
|
|
3
13
|
## v1.3.0
|
|
4
14
|
|
|
5
15
|
- fix(project): replaced substr with slice.
|
|
@@ -40,7 +50,7 @@
|
|
|
40
50
|
|
|
41
51
|
- New modifier `$.string` for value in string form.
|
|
42
52
|
|
|
43
|
-
- Improved tuple, add
|
|
53
|
+
- Improved tuple, add optional dots `...` supports.
|
|
44
54
|
|
|
45
55
|
> e.g. `["$.tuple", "string", "...3", "int", "..."]`
|
|
46
56
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2023 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.
|
|
@@ -376,7 +376,7 @@ class BuiltInTypeCompiler {
|
|
|
376
376
|
return this._lang.isUndefined(ctx.vName, false);
|
|
377
377
|
}
|
|
378
378
|
case B.STRUCT: {
|
|
379
|
-
return this._lang.
|
|
379
|
+
return this._lang.isStructure(ctx.vName, true);
|
|
380
380
|
}
|
|
381
381
|
case B.NUMERIC: {
|
|
382
382
|
if (args.length) {
|
|
@@ -500,7 +500,7 @@ class BuiltInTypeCompiler {
|
|
|
500
500
|
throw new SyntaxError('Invalid syntax of integer.');
|
|
501
501
|
}
|
|
502
502
|
if (fromString) {
|
|
503
|
-
ctx.
|
|
503
|
+
ctx.popUp();
|
|
504
504
|
return this._lang.and([
|
|
505
505
|
this._lang.or([
|
|
506
506
|
result[0],
|
|
@@ -580,7 +580,7 @@ class BuiltInTypeCompiler {
|
|
|
580
580
|
throw new SyntaxError('Invalid syntax of integer.');
|
|
581
581
|
}
|
|
582
582
|
if (fromString) {
|
|
583
|
-
ctx.
|
|
583
|
+
ctx.popUp();
|
|
584
584
|
return this._lang.and([
|
|
585
585
|
this._lang.or([
|
|
586
586
|
result[0],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuiltInTypeCompiler.js","sourceRoot":"","sources":["../src/lib/BuiltInTypeCompiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BuiltInTypeCompiler.js","sourceRoot":"","sources":["../src/lib/BuiltInTypeCompiler.ts"],"names":[],"mappings":"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"}
|
package/lib/BuiltInTypes.d.ts
CHANGED
package/lib/BuiltInTypes.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2023 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/Common.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type ITypeChecker<T> = (v: unknown, errorTraces?: string[]) => v is T;
|
|
2
|
+
export type IPreDefinedTypeChecker<T> = (v: unknown, ...args: any[]) => v is T;
|
|
2
3
|
/**
|
|
3
4
|
* @deprecated Use `ITypeChecker` instead.
|
|
4
5
|
*/
|
|
5
|
-
export
|
|
6
|
+
export type TypeChecker<T> = ITypeChecker<T>;
|
|
6
7
|
export interface ICompileOutputArgument {
|
|
7
8
|
/**
|
|
8
9
|
* The name of argument.
|
|
@@ -102,7 +103,7 @@ export interface ILanguageBuilder {
|
|
|
102
103
|
* @param b
|
|
103
104
|
*/
|
|
104
105
|
modOf(a: string, b: string): string;
|
|
105
|
-
literal(val: string | boolean | number): string;
|
|
106
|
+
literal(val: string | boolean | number | null): string;
|
|
106
107
|
/**
|
|
107
108
|
* Get the statement checking if a string expression includes a given
|
|
108
109
|
* string expression.
|
|
@@ -164,7 +165,7 @@ export interface ILanguageBuilder {
|
|
|
164
165
|
* @param expr The expression to be checked.
|
|
165
166
|
* @param positive Assert positive or negative.
|
|
166
167
|
*/
|
|
167
|
-
|
|
168
|
+
isStructure(expr: string, positive: boolean): string;
|
|
168
169
|
/**
|
|
169
170
|
* Get the statement checking if an expression is an integer value.
|
|
170
171
|
*
|
|
@@ -213,7 +214,7 @@ export interface ILanguageBuilder {
|
|
|
213
214
|
*/
|
|
214
215
|
stringLength(expr: string): string;
|
|
215
216
|
/**
|
|
216
|
-
* Get the statement of the keys list of an
|
|
217
|
+
* Get the statement of the keys list of an dictionary.
|
|
217
218
|
*
|
|
218
219
|
* @param expr The expression of dictionary.
|
|
219
220
|
*/
|
package/lib/Common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../src/lib/Common.ts"],"names":[],"mappings":"AAgBA,
|
|
1
|
+
{"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../src/lib/Common.ts"],"names":[],"mappings":"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"}
|
package/lib/Common.js
CHANGED
package/lib/Compiler.d.ts
CHANGED
package/lib/Compiler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Compiler.d.ts","sourceRoot":"","sources":["../src/lib/Compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Compiler.d.ts","sourceRoot":"","sources":["../src/lib/Compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAw4C9B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,SAAS,CAOpE"}
|
package/lib/Compiler.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Copyright
|
|
3
|
+
* Copyright 2023 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.
|
|
@@ -121,7 +121,7 @@ class Compiler {
|
|
|
121
121
|
default:
|
|
122
122
|
break;
|
|
123
123
|
}
|
|
124
|
-
throw new TypeError('
|
|
124
|
+
throw new TypeError('Unknown rules.');
|
|
125
125
|
}
|
|
126
126
|
_compileStringRule(ctx, rule) {
|
|
127
127
|
const strAssert = this._useStringAssert(ctx, rule);
|
|
@@ -199,7 +199,7 @@ class Compiler {
|
|
|
199
199
|
])
|
|
200
200
|
]);
|
|
201
201
|
}
|
|
202
|
-
if (rule.startsWith(I.
|
|
202
|
+
if (rule.startsWith(I.PRE_DEF_TYPE_SYMBOL)) {
|
|
203
203
|
return this._usePredefinedType(ctx, rule.slice(1));
|
|
204
204
|
}
|
|
205
205
|
regResult = /^(\w+)(\(\s*(-?\d+(\.\d+)?)?\s*,?\s*(-?\d+(\.\d+)?)?\s*\))?$/.exec(rule);
|
|
@@ -223,16 +223,16 @@ class Compiler {
|
|
|
223
223
|
}
|
|
224
224
|
throw new TypeError(`Unknown type "${rule}".`);
|
|
225
225
|
}
|
|
226
|
-
_usePredefinedType(ctx,
|
|
227
|
-
|
|
228
|
-
ctx.referredTypes[
|
|
229
|
-
return this._lang.call(this._lang.fieldIndex(ctx.typeSlotName, this._lang.literal(
|
|
226
|
+
_usePredefinedType(ctx, typeExpr) {
|
|
227
|
+
const expr = I.decodePreDefinedCallExpr(typeExpr);
|
|
228
|
+
ctx.referredTypes[expr.name] = true;
|
|
229
|
+
return this._lang.call(this._lang.fieldIndex(ctx.typeSlotName, this._lang.literal(expr.name)), ctx.vName, ...expr.args.map(i => this._lang.literal(i)));
|
|
230
230
|
}
|
|
231
231
|
_useStringAssert(ctx, rule) {
|
|
232
|
-
var _a;
|
|
232
|
+
var _a, _b, _c;
|
|
233
233
|
const assertRule = /^:([-\w]+):/.exec(rule);
|
|
234
|
-
const offset = assertRule ? assertRule[1].length
|
|
235
|
-
switch ((
|
|
234
|
+
const offset = ((_b = (_a = assertRule === null || assertRule === void 0 ? void 0 : assertRule[1]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + 2;
|
|
235
|
+
switch ((_c = (assertRule === null || assertRule === void 0 ? void 0 : assertRule[1])) !== null && _c !== void 0 ? _c : rule.slice(0, 2)) {
|
|
236
236
|
case '==':
|
|
237
237
|
case 'equal':
|
|
238
238
|
return this._lang.eq(ctx.vName, this._lang.literal(rule.slice(offset)));
|
|
@@ -295,7 +295,7 @@ class Compiler {
|
|
|
295
295
|
}
|
|
296
296
|
_compileModifiedRule(ctx, rules) {
|
|
297
297
|
if (!rules.length) {
|
|
298
|
-
throw new TypeError('
|
|
298
|
+
throw new TypeError('Unknown type "[]".');
|
|
299
299
|
}
|
|
300
300
|
/**
|
|
301
301
|
* By default, use OR modifier.
|
|
@@ -344,6 +344,9 @@ class Compiler {
|
|
|
344
344
|
case M.TYPE: {
|
|
345
345
|
return this._compileModifierTYPE(ctx, rules.slice(1));
|
|
346
346
|
}
|
|
347
|
+
case M.ENUM: {
|
|
348
|
+
return this._compileModifierEnum(ctx, rules.slice(1));
|
|
349
|
+
}
|
|
347
350
|
}
|
|
348
351
|
throw new TypeError(`Unknown modifier "${rules[0]}".`);
|
|
349
352
|
}
|
|
@@ -351,7 +354,7 @@ class Compiler {
|
|
|
351
354
|
ctx.trap();
|
|
352
355
|
ctx.flags[I.EFlags.FROM_STRING] = I.EFlagValue.ELEMENT_INHERIT;
|
|
353
356
|
const result = this._compileModifiedRule(ctx, rules);
|
|
354
|
-
ctx.
|
|
357
|
+
ctx.popUp();
|
|
355
358
|
return result;
|
|
356
359
|
}
|
|
357
360
|
_compileModifierOR(ctx, rules) {
|
|
@@ -359,7 +362,7 @@ class Compiler {
|
|
|
359
362
|
for (const r of rules) {
|
|
360
363
|
ctx.trap();
|
|
361
364
|
result.push(this._compile(ctx, r));
|
|
362
|
-
ctx.
|
|
365
|
+
ctx.popUp();
|
|
363
366
|
}
|
|
364
367
|
return this._lang.or(result);
|
|
365
368
|
}
|
|
@@ -380,11 +383,12 @@ class Compiler {
|
|
|
380
383
|
ctx.tracePath = `${ctx.tracePath}[${this._lang.numberTemplateVar(traceOffset ? this._lang.add(traceOffset, vIter) : vIter)}]`;
|
|
381
384
|
if (rules[0] !== B.ANY) {
|
|
382
385
|
result.push(this._lang.closure([CLOSURE_PARAM], [CLOSURE_ARG], this._lang.series([
|
|
386
|
+
// eslint-disable-next-line @litert/rules/disable-for-each-method
|
|
383
387
|
this._lang.forEach(CLOSURE_PARAM, vIter, ctx.vName, this._lang.ifThen(this._lang.not(this._compile(ctx, rules)), this._lang.returnValue(this._addTrace(ctx)))),
|
|
384
388
|
this._lang.returnValue(this._lang.literal(true))
|
|
385
389
|
])));
|
|
386
390
|
}
|
|
387
|
-
ctx.
|
|
391
|
+
ctx.popUp();
|
|
388
392
|
return this._lang.and(result);
|
|
389
393
|
}
|
|
390
394
|
_compileModifierARRAY(ctx, rules, traceOffset = 0) {
|
|
@@ -451,11 +455,12 @@ class Compiler {
|
|
|
451
455
|
}
|
|
452
456
|
if (rules[1] !== B.ANY) {
|
|
453
457
|
result.push(this._lang.closure([CLOSURE_PARAM], [CLOSURE_ARG], this._lang.series([
|
|
458
|
+
// eslint-disable-next-line @litert/rules/disable-for-each-method
|
|
454
459
|
this._lang.forEach(CLOSURE_PARAM, vIter, ctx.vName, this._lang.ifThen(this._lang.not(this._compile(ctx, rules.slice(1))), this._lang.returnValue(this._addTrace(ctx)))),
|
|
455
460
|
this._lang.returnValue(this._lang.literal(true))
|
|
456
461
|
])));
|
|
457
462
|
}
|
|
458
|
-
ctx.
|
|
463
|
+
ctx.popUp();
|
|
459
464
|
return this._lang.and(result);
|
|
460
465
|
}
|
|
461
466
|
_compileModifierTUPLE(ctx, rules) {
|
|
@@ -524,7 +529,7 @@ class Compiler {
|
|
|
524
529
|
result.push(this._addTraceOr(ctx, this._compile(ctx, type)));
|
|
525
530
|
tupleLength++;
|
|
526
531
|
}
|
|
527
|
-
ctx.
|
|
532
|
+
ctx.popUp();
|
|
528
533
|
}
|
|
529
534
|
if (tupleLength >= 0) {
|
|
530
535
|
result.splice(1, -1, this._addTraceOr(ctx, this._lang.eq(this._lang.arrayLength(ctx.vName), tupleLength), '.length'));
|
|
@@ -534,15 +539,10 @@ class Compiler {
|
|
|
534
539
|
}
|
|
535
540
|
return this._lang.and(result);
|
|
536
541
|
}
|
|
537
|
-
_validateTypeName(name) {
|
|
538
|
-
if (typeof name !== 'string' || !I.RE_VALID_CUSTOM_TYPE_NAME.test(name)) {
|
|
539
|
-
throw new TypeError(`Invalid name ${JSON.stringify(name)} for a pre-defined type.`);
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
542
|
_compileModifierTYPE(ctx, rules) {
|
|
543
|
-
|
|
543
|
+
I.validateTypeName(rules[0]);
|
|
544
544
|
if (this._defTypes[rules[0]]) {
|
|
545
|
-
throw new Error(`
|
|
545
|
+
throw new Error(`Duplicated name ${JSON.stringify(rules[0])} for a pre-defined type.`);
|
|
546
546
|
}
|
|
547
547
|
this._defTypes[rules[0]] = this.compile({
|
|
548
548
|
rule: rules.slice(1),
|
|
@@ -557,7 +557,7 @@ class Compiler {
|
|
|
557
557
|
}
|
|
558
558
|
ctx.flags[I.EFlags.STRICT] = I.EFlagValue.INHERIT;
|
|
559
559
|
const ret = this._compile(ctx, rules);
|
|
560
|
-
ctx.
|
|
560
|
+
ctx.popUp();
|
|
561
561
|
return ret;
|
|
562
562
|
}
|
|
563
563
|
_compileModifierEQUAL(ctx, rules) {
|
|
@@ -567,7 +567,7 @@ class Compiler {
|
|
|
567
567
|
}
|
|
568
568
|
ctx.flags[I.EFlags.STRICT] = I.EFlagValue.ELEMENT_INHERIT;
|
|
569
569
|
const ret = this._compile(ctx, rules);
|
|
570
|
-
ctx.
|
|
570
|
+
ctx.popUp();
|
|
571
571
|
return ret;
|
|
572
572
|
}
|
|
573
573
|
_compileModifierMAP(ctx, rules) {
|
|
@@ -581,15 +581,37 @@ class Compiler {
|
|
|
581
581
|
ctx.vName = this._lang.varName(ctx.vCursor++);
|
|
582
582
|
ctx.tracePath = `${ctx.tracePath}[${this._lang.stringTemplateVar(vKey)}]`;
|
|
583
583
|
const result = this._lang.and([
|
|
584
|
-
this._lang.
|
|
584
|
+
this._lang.isStructure(vCArg, true),
|
|
585
585
|
this._lang.closure([vCParam], [vCArg], this._lang.series([
|
|
586
586
|
this._lang.forIn(vCParam, vKey, ctx.vName, this._lang.ifThen(this._lang.not(this._compile(ctx, rules)), this._lang.returnValue(this._addTrace(ctx)))),
|
|
587
587
|
this._lang.returnValue(this._lang.literal(true))
|
|
588
588
|
]))
|
|
589
589
|
]);
|
|
590
|
-
ctx.
|
|
590
|
+
ctx.popUp();
|
|
591
591
|
return result;
|
|
592
592
|
}
|
|
593
|
+
_compileModifierEnum(ctx, rules) {
|
|
594
|
+
if (rules.length === 0) {
|
|
595
|
+
throw new SyntaxError(`At least one enum candidate is required for $.enum`);
|
|
596
|
+
}
|
|
597
|
+
const ret = [];
|
|
598
|
+
for (const r of rules) {
|
|
599
|
+
switch (typeof r) {
|
|
600
|
+
case 'string':
|
|
601
|
+
case 'number':
|
|
602
|
+
case 'boolean':
|
|
603
|
+
ret.push(this._lang.eq(ctx.vName, this._lang.literal(r)));
|
|
604
|
+
break;
|
|
605
|
+
default:
|
|
606
|
+
if (r === null) {
|
|
607
|
+
ret.push(this._lang.eq(ctx.vName, this._lang.literal(null)));
|
|
608
|
+
break;
|
|
609
|
+
}
|
|
610
|
+
throw new SyntaxError(`Invalid literal value ${JSON.stringify(rules)} for $.enum.`);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
return this._lang.or(ret);
|
|
614
|
+
}
|
|
593
615
|
_compileModifierDICT(ctx, rules) {
|
|
594
616
|
if (rules.length < 2 || !Array.isArray(rules[0])) {
|
|
595
617
|
throw new SyntaxError(`Invalid dict ${JSON.stringify(rules)}.`);
|
|
@@ -600,7 +622,7 @@ class Compiler {
|
|
|
600
622
|
this._lang.varName(id),
|
|
601
623
|
rules.slice(1)
|
|
602
624
|
]);
|
|
603
|
-
const type = `${I.
|
|
625
|
+
const type = `${I.PRE_DEF_TYPE_SYMBOL}${this._lang.varName(id)}`;
|
|
604
626
|
for (const key of rules[0]) {
|
|
605
627
|
if (typeof key !== 'string') {
|
|
606
628
|
throw new SyntaxError(`Invalid key ${JSON.stringify(key)} for dict.`);
|
|
@@ -612,7 +634,7 @@ class Compiler {
|
|
|
612
634
|
_compileSimpleStructure(ctx, rules) {
|
|
613
635
|
const strict = !!ctx.flags[I.EFlags.STRICT];
|
|
614
636
|
const result = [
|
|
615
|
-
this._addTraceOr(ctx, this._lang.
|
|
637
|
+
this._addTraceOr(ctx, this._lang.isStructure(ctx.vName, true), '!object')
|
|
616
638
|
];
|
|
617
639
|
const keys = [];
|
|
618
640
|
for (let k in rules) {
|
|
@@ -673,9 +695,9 @@ class Compiler {
|
|
|
673
695
|
ctx.vName = this._lang.fieldIndex(ctx.vName, this._lang.literal(k));
|
|
674
696
|
ctx.tracePath = `${ctx.tracePath}[${this._lang.literal(k)}]`;
|
|
675
697
|
result.push(this._addTraceOr(ctx, this._compile(ctx, rule)));
|
|
676
|
-
ctx.
|
|
698
|
+
ctx.popUp();
|
|
677
699
|
}
|
|
678
|
-
if (strict
|
|
700
|
+
if (strict) {
|
|
679
701
|
result.splice(1, -1, this._lang.arrayInSet(this._lang.keys(ctx.vName), this._lang.array(keys)));
|
|
680
702
|
}
|
|
681
703
|
return this._lang.and(result);
|
|
@@ -689,7 +711,7 @@ class Compiler {
|
|
|
689
711
|
return this._compileSimpleStructure(ctx, rules);
|
|
690
712
|
}
|
|
691
713
|
const result = [
|
|
692
|
-
this._lang.
|
|
714
|
+
this._lang.isStructure(ctx.vName, true)
|
|
693
715
|
];
|
|
694
716
|
ctx.trap();
|
|
695
717
|
const CLOSURE_ARG = ctx.vName;
|
|
@@ -761,7 +783,7 @@ class Compiler {
|
|
|
761
783
|
}
|
|
762
784
|
CASES.push(this._lang.caseIf([this._lang.literal(k)], this._lang.ifThen(this._lang.not(this._compile(ctx, rule)), this._lang.returnValue(this._lang.literal(false)))));
|
|
763
785
|
}
|
|
764
|
-
ctx.
|
|
786
|
+
ctx.popUp();
|
|
765
787
|
}
|
|
766
788
|
if (keys.length) {
|
|
767
789
|
result.push(this._lang.arrayInSet(this._lang.array(keys), this._lang.keys(CLOSURE_ARG)));
|
|
@@ -770,7 +792,7 @@ class Compiler {
|
|
|
770
792
|
this._lang.forIn(CLOSURE_PARAM, FOR_KEY, ctx.vName, this._lang.switchCase(FOR_KEY, CASES)),
|
|
771
793
|
this._lang.returnValue(this._lang.literal(true))
|
|
772
794
|
])));
|
|
773
|
-
ctx.
|
|
795
|
+
ctx.popUp();
|
|
774
796
|
return this._lang.and(result);
|
|
775
797
|
}
|
|
776
798
|
_isOrRule(rule) {
|
|
@@ -785,8 +807,8 @@ class Compiler {
|
|
|
785
807
|
* @param lang The language builder.
|
|
786
808
|
*/
|
|
787
809
|
function createCompiler(lang) {
|
|
788
|
-
const
|
|
789
|
-
return new Compiler(lang,
|
|
810
|
+
const ret = new BuiltInTypeCompiler_1.BuiltInTypeCompiler(lang);
|
|
811
|
+
return new Compiler(lang, ret, new FilterCompiler_1.FilterCompiler(lang, ret));
|
|
790
812
|
}
|
|
791
813
|
exports.createCompiler = createCompiler;
|
|
792
814
|
//# sourceMappingURL=Compiler.js.map
|