@quenk/wml 2.12.0 → 2.13.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/lib/compile/codegen.d.ts +0 -4
- package/lib/compile/codegen.js +13 -20
- package/lib/compile/codegen.js.map +1 -1
- package/lib/compile/codegen.ts +23 -27
- package/lib/parse/ast.d.ts +7 -11
- package/lib/parse/ast.js +6 -12
- package/lib/parse/ast.js.map +1 -1
- package/lib/parse/ast.ts +3 -13
- package/lib/parse/generated.js +2224 -2118
- package/lib/parse/test.js +9 -2
- package/lib/parse/test.js.map +1 -1
- package/lib/parse/test.ts +15 -3
- package/lib/parse/wml.y +34 -20
- package/package.json +1 -1
package/lib/parse/test.js
CHANGED
|
@@ -417,7 +417,7 @@ exports.tests = {
|
|
|
417
417
|
'[context] should mark nested properties as optional if all are': `{% context Paper where object."type"?: String %}`,
|
|
418
418
|
'should parse type statements': `{% type Type = String | Number | Boolean | Type[] | Type -> Type %}`,
|
|
419
419
|
'should parse tupe types': `{% type Tuple = [Number, String, Number] %}`,
|
|
420
|
-
'should parse type assertion': '<Panel onClick={{ \e ->
|
|
420
|
+
'should parse type assertion': '<Panel onClick={{ \e -> foo(e) as User }} />',
|
|
421
421
|
'should parse partial application in expression': '<Link ww:text={{truncate(50)(@text)}} />',
|
|
422
422
|
'should transform special primitives': `<div>
|
|
423
423
|
{% for kind in [
|
|
@@ -468,6 +468,13 @@ exports.tests = {
|
|
|
468
468
|
</div>`,
|
|
469
469
|
'should allow 2nd level bracket access': `<div>{% for item in our."items" %} <div/>{% endfor %}</div> `,
|
|
470
470
|
'should allow type to be used in if statement expression': `<div>{% if item."type" == 1 %}<p/>{% endif %}</div>`,
|
|
471
|
-
'should support the special wml:attrs attribute': `<Panel wml:attrs={{@panelAttrs}}><div wml:attrs={{divAttrs}}/></Panel
|
|
471
|
+
'should support the special wml:attrs attribute': `<Panel wml:attrs={{@panelAttrs}}><div wml:attrs={{divAttrs}}/></Panel>`,
|
|
472
|
+
'should parse widgets with type arguments': `<div>
|
|
473
|
+
<Panel[Text]>
|
|
474
|
+
<PanelHeader[Text] wml:id="header"/>
|
|
475
|
+
<PanelBody/>
|
|
476
|
+
</Panel>
|
|
477
|
+
</div>`,
|
|
478
|
+
'should parse view construction with type arguments': `<div>{{<Panel[Text](@)>}}</div>`,
|
|
472
479
|
};
|
|
473
480
|
//# sourceMappingURL=test.js.map
|
package/lib/parse/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["test.ts"],"names":[],"mappings":"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"}
|
package/lib/parse/test.ts
CHANGED
|
@@ -582,7 +582,7 @@ export const tests: { [key: string]: any } = {
|
|
|
582
582
|
'should parse tupe types': `{% type Tuple = [Number, String, Number] %}`,
|
|
583
583
|
|
|
584
584
|
'should parse type assertion':
|
|
585
|
-
'<Panel onClick={{ \e ->
|
|
585
|
+
'<Panel onClick={{ \e -> foo(e) as User }} />',
|
|
586
586
|
|
|
587
587
|
'should parse partial application in expression':
|
|
588
588
|
'<Link ww:text={{truncate(50)(@text)}} />',
|
|
@@ -656,7 +656,19 @@ export const tests: { [key: string]: any } = {
|
|
|
656
656
|
'should allow type to be used in if statement expression':
|
|
657
657
|
`<div>{% if item."type" == 1 %}<p/>{% endif %}</div>`,
|
|
658
658
|
|
|
659
|
-
|
|
660
|
-
|
|
659
|
+
'should support the special wml:attrs attribute':
|
|
660
|
+
`<Panel wml:attrs={{@panelAttrs}}><div wml:attrs={{divAttrs}}/></Panel>`,
|
|
661
|
+
|
|
662
|
+
'should parse widgets with type arguments':
|
|
663
|
+
`<div>
|
|
664
|
+
<Panel[Text]>
|
|
665
|
+
<PanelHeader[Text] wml:id="header"/>
|
|
666
|
+
<PanelBody/>
|
|
667
|
+
</Panel>
|
|
668
|
+
</div>`,
|
|
669
|
+
|
|
670
|
+
'should parse view construction with type arguments':
|
|
671
|
+
`<div>{{<Panel[Text](@)>}}</div>`,
|
|
672
|
+
|
|
661
673
|
|
|
662
674
|
}
|
package/lib/parse/wml.y
CHANGED
|
@@ -459,7 +459,7 @@ non_function_type
|
|
|
459
459
|
|
|
460
460
|
| record_type
|
|
461
461
|
{ $$ = $1; }
|
|
462
|
-
|
|
462
|
+
|
|
463
463
|
| list_type
|
|
464
464
|
{ $$ = $1; }
|
|
465
465
|
|
|
@@ -473,6 +473,12 @@ constructor_type
|
|
|
473
473
|
|
|
474
474
|
| unqualified_constructor type_parameters
|
|
475
475
|
{ $$ = new yy.ast.ConstructorType($1, $2, @$); }
|
|
476
|
+
|
|
477
|
+
| qualified_constructor
|
|
478
|
+
{ $$ = new yy.ast.ConstructorType($1, [], @$); }
|
|
479
|
+
|
|
480
|
+
| qualified_constructor type_parameters
|
|
481
|
+
{ $$ = new yy.ast.ConstructorType($1, $2, @$); }
|
|
476
482
|
;
|
|
477
483
|
|
|
478
484
|
record_type
|
|
@@ -613,17 +619,21 @@ node
|
|
|
613
619
|
;
|
|
614
620
|
|
|
615
621
|
widget
|
|
616
|
-
: '<'
|
|
617
|
-
{$$ = new yy.ast.Widget($2, $3, $5||[], $7, @$);}
|
|
622
|
+
: '<' widget_constructor attributes '>' children? '</' cons '>'
|
|
623
|
+
{$$ = new yy.ast.Widget($2[0], $2[1], $3, $5||[], $7, @$);}
|
|
624
|
+
|
|
625
|
+
| '<' widget_constructor '>' children? '</' cons '>'
|
|
626
|
+
{$$ = new yy.ast.Widget($2[0], $2[1], [], $4||[], $6, @$);}
|
|
618
627
|
|
|
619
|
-
| '<'
|
|
620
|
-
|
|
628
|
+
| '<' widget_constructor attributes '/>'
|
|
629
|
+
{ $$ = new yy.ast.Widget($2[0], $2[1], $3, [], $2, @$); }
|
|
621
630
|
|
|
622
|
-
| '<'
|
|
623
|
-
{ $$ = new yy.ast.Widget($2, $
|
|
631
|
+
| '<' widget_constructor '/>'
|
|
632
|
+
{ $$ = new yy.ast.Widget($2[0], $2[1], [], [], $2, @$); }
|
|
633
|
+
;
|
|
624
634
|
|
|
625
|
-
|
|
626
|
-
|
|
635
|
+
widget_constructor
|
|
636
|
+
: cons type_arguments? {$$ = [$1, $2 || []]; }
|
|
627
637
|
;
|
|
628
638
|
|
|
629
639
|
attributes
|
|
@@ -778,9 +788,6 @@ expression
|
|
|
778
788
|
| unary_expression
|
|
779
789
|
{ $$ = $1; }
|
|
780
790
|
|
|
781
|
-
| type_assertion
|
|
782
|
-
{ $$ = $1; }
|
|
783
|
-
|
|
784
791
|
| simple_expression
|
|
785
792
|
{ $$ = $1; }
|
|
786
793
|
|
|
@@ -803,9 +810,15 @@ binary_expression
|
|
|
803
810
|
| simple_expression binary_operator '(' expression ')'
|
|
804
811
|
{$$ = new yy.ast.BinaryExpression($1, $2, $4, @$); }
|
|
805
812
|
|
|
813
|
+
| simple_expression AS type
|
|
814
|
+
{$$ = new yy.ast.BinaryExpression($1, $2, $3, @$); }
|
|
815
|
+
|
|
806
816
|
| '(' expression ')' binary_operator simple_expression
|
|
807
817
|
{$$ = new yy.ast.BinaryExpression($2, $4, $5, @$); }
|
|
808
818
|
|
|
819
|
+
| '(' expression ')' AS type
|
|
820
|
+
{$$ = new yy.ast.BinaryExpression($2, $4, $5, @$); }
|
|
821
|
+
|
|
809
822
|
| '(' expression ')' binary_operator '(' expression ')'
|
|
810
823
|
{$$ = new yy.ast.BinaryExpression($2, $4, $6, @$); }
|
|
811
824
|
;
|
|
@@ -824,11 +837,6 @@ unary_expression
|
|
|
824
837
|
{$$ = new yy.ast.UnaryExpression($4, $2, @$); }
|
|
825
838
|
;
|
|
826
839
|
|
|
827
|
-
type_assertion
|
|
828
|
-
: '[' '*' type ']' expression
|
|
829
|
-
{$$ = new yy.ast.TypeAssertion($3, $5, @$); }
|
|
830
|
-
;
|
|
831
|
-
|
|
832
840
|
simple_expression
|
|
833
841
|
: (
|
|
834
842
|
construct_expression
|
|
@@ -865,11 +873,17 @@ type_arg_list
|
|
|
865
873
|
;
|
|
866
874
|
|
|
867
875
|
construct_expression
|
|
868
|
-
: unqualified_constructor '(' arguments ')'
|
|
869
|
-
{ $$ = new yy.ast.ConstructExpression($1, $
|
|
876
|
+
: unqualified_constructor type_arguments '(' arguments ')'
|
|
877
|
+
{ $$ = new yy.ast.ConstructExpression($1, $2, $4, @$); }
|
|
878
|
+
|
|
879
|
+
| unqualified_constructor '(' arguments ')'
|
|
880
|
+
{ $$ = new yy.ast.ConstructExpression($1, [], $3, @$); }
|
|
881
|
+
|
|
882
|
+
| unqualified_constructor type_arguments '(' ')'
|
|
883
|
+
{ $$ = new yy.ast.ConstructExpression($1, $2, [], @$); }
|
|
870
884
|
|
|
871
885
|
| unqualified_constructor '(' ')'
|
|
872
|
-
{ $$ = new yy.ast.ConstructExpression($1, [], @$); }
|
|
886
|
+
{ $$ = new yy.ast.ConstructExpression($1, [], [], @$); }
|
|
873
887
|
;
|
|
874
888
|
|
|
875
889
|
call_expression
|