@quenk/wml 2.10.1 → 2.10.5

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.
@@ -10,7 +10,7 @@ var error_1 = require("@quenk/noni/lib/control/error");
10
10
  */
11
11
  var parse = function (str, ast) {
12
12
  if (ast === void 0) { ast = nodes; }
13
- return error_1.attempt(function () {
13
+ return (0, error_1.attempt)(function () {
14
14
  parser.parser.yy = { ast: ast };
15
15
  return parser.parser.parse(str);
16
16
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,uCAAuC;;;AAEvC,oCAAsC;AACtC,6BAA+B;AAE/B,uDAAgE;AAEhE;;GAEG;AACI,IAAM,KAAK,GAAG,UAAC,GAAW,EAAE,GAAgB;IAAhB,oBAAA,EAAA,WAAgB;IAC/C,OAAA,eAAO,CAAC;QAEJ,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,KAAA,EAAE,CAAC;QAE3B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEpC,CAAC,CAAC;AANF,CAME,CAAC;AAPM,QAAA,KAAK,SAOX"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,uCAAuC;;;AAEvC,oCAAsC;AACtC,6BAA+B;AAE/B,uDAAgE;AAEhE;;GAEG;AACI,IAAM,KAAK,GAAG,UAAC,GAAW,EAAE,GAAgB;IAAhB,oBAAA,EAAA,WAAgB;IAC/C,OAAA,IAAA,eAAO,EAAC;QAEJ,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,KAAA,EAAE,CAAC;QAE3B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEpC,CAAC,CAAC;AANF,CAME,CAAC;AAPM,QAAA,KAAK,SAOX"}
package/lib/parse/test.js CHANGED
@@ -221,8 +221,6 @@ exports.tests = {
221
221
  '[context] should mark nested properties as optional if all are': "{% context Paper where object.\"type\"?: String %}",
222
222
  'should parse type statements': "{% type Type = String | Number | Boolean | Type[] | Type -> Type %}",
223
223
  'should parse tupe types': "{% type Tuple = [Number, String, Number] %}",
224
- 'should parse primitives used as type': '{% type Prims = 1|2|"three"|true|false|"1,2,three,true,false" %}',
225
- 'should parse this type': '{% type SortDir = 1 | -1 %}',
226
224
  'should parse type assertion': '<Panel onClick={{ \e -> [*User]foo(e) }} />',
227
225
  'should parse partial application in expression': '<Link ww:text={{truncate(50)(@text)}} />',
228
226
  'should transform special primitives': "<div>\n {% for kind in [\n String,\n Boolean,\n Number,\n Object,\n Undefined,\n Null,\n Void,\n Never,\n Any] %}\n {{ kind | text }}\n {% endfor %}\n </div>",
@@ -234,6 +232,7 @@ exports.tests = {
234
232
  '[comment] should parse wml comments': "{# This is a wml comment #}",
235
233
  '[comment] should parse wml comments in statements': "{% view Name {# This is a comment! #} (Object) %} <div/> %}",
236
234
  '[fun] should parse multi dimensional array parameters': "\n {% fun test (value:List[][]) %}<p/>{% endfun %}",
237
- 'should allow index access on context properties': "{% view Test (Object) %}\n <div>\n {% if @[\"type\"]?? %}\n <div/>\n {% endif %}\n </div>"
235
+ 'should allow index access on context properties': "{% view Test (Object) %}\n <div>\n {% if @[\"type\"]?? %}\n <div/>\n {% endif %}\n </div>",
236
+ 'should allow paths to use brackets': "\n {% view Test (Object) %} \n <div>\n {% if @values.controls[\"@type\"] %} value {% endif %}\n {% if @values.controls[\"@type\"].value %} value {% endif %}\n </div>"
238
237
  };
239
238
  //# sourceMappingURL=test.js.map
@@ -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
@@ -556,12 +556,6 @@ export const tests: { [key: string]: any } = {
556
556
 
557
557
  'should parse tupe types': `{% type Tuple = [Number, String, Number] %}`,
558
558
 
559
- 'should parse primitives used as type':
560
- '{% type Prims = 1|2|"three"|true|false|"1,2,three,true,false" %}',
561
-
562
- 'should parse this type':
563
- '{% type SortDir = 1 | -1 %}',
564
-
565
559
  'should parse type assertion':
566
560
  '<Panel onClick={{ \e -> [*User]foo(e) }} />',
567
561
 
@@ -622,6 +616,13 @@ export const tests: { [key: string]: any } = {
622
616
  {% if @["type"]?? %}
623
617
  <div/>
624
618
  {% endif %}
625
- </div>`
619
+ </div>`,
620
+
621
+ 'should allow paths to use brackets': `
622
+ {% view Test (Object) %}
623
+ <div>
624
+ {% if @values.controls["@type"] %} value {% endif %}
625
+ {% if @values.controls["@type"].value %} value {% endif %}
626
+ </div>`
626
627
 
627
628
  }
package/lib/parse/wml.y CHANGED
@@ -439,15 +439,6 @@ non_function_type
439
439
  : constructor_type
440
440
  { $$ = $1; }
441
441
 
442
- | string_literal
443
- { $$ = $1; }
444
-
445
- | number_literal
446
- { $$ = $1; }
447
-
448
- | boolean_literal
449
- { $$ = $1; }
450
-
451
442
  | record_type
452
443
  { $$ = $1; }
453
444
 
@@ -480,19 +471,10 @@ list_type
480
471
  { $$ = new yy.ast.ListType(
481
472
  new yy.ast.ConstructorType($1, []), @$); }
482
473
 
483
- | cons type_parameters '[' ']'
474
+ | cons type_parameters '[' ']'
484
475
  { $$ = new yy.ast.ListType(
485
476
  new yy.ast.ConstructorType($1, $2), @$); }
486
477
 
487
- | string_literal '[' ']'
488
- { $$ = new yy.ast.ListType($1, @$); }
489
-
490
- | number_literal '[' ']'
491
- { $$ = new yy.ast.ListType($1, @$); }
492
-
493
- | boolean_literal '[' ']'
494
- { $$ = new yy.ast.ListType($1, @$); }
495
-
496
478
  | record_type '[' ']'
497
479
  { $$ = new yy.ast.ListType($1, @$); }
498
480
 
@@ -508,7 +490,6 @@ list_type
508
490
  ;
509
491
 
510
492
  tuple_type
511
-
512
493
  : '[' ']'
513
494
  { $$ = new yy.ast.TupleType([], @$); }
514
495
 
@@ -747,19 +728,10 @@ characters
747
728
  ;
748
729
 
749
730
  arguments
750
- : '(' ')'
751
- {$$ = []; }
752
-
753
- | '(' argument_list ')'
754
- {$$ = $2; }
755
-
756
- ;
757
-
758
- argument_list
759
731
  : expression
760
732
  {$$ = [$1]; }
761
733
 
762
- | argument_list ',' expression
734
+ | arguments ',' expression
763
735
  {$$ = $1.concat($3); }
764
736
  ;
765
737
 
@@ -817,21 +789,18 @@ unary_expression
817
789
 
818
790
  | '(' expression ')' '??'
819
791
  {$$ = new yy.ast.UnaryExpression($4, $2, @$); }
820
-
821
792
  ;
822
793
 
823
794
  type_assertion
824
-
825
795
  : '[' '*' type ']' expression
826
796
  {$$ = new yy.ast.TypeAssertion($3, $5, @$); }
827
797
  ;
828
798
 
829
799
  simple_expression
830
800
  : (
831
- view_construction
832
- |fun_application
833
- |construct_expression
801
+ construct_expression
834
802
  |call_expression
803
+ |view_construction
835
804
  |member_expression
836
805
  |literal
837
806
  |context_property
@@ -842,31 +811,11 @@ simple_expression
842
811
  ;
843
812
 
844
813
  view_construction
845
- : '<' cons '(' expression ')' '>'
846
- { $$ = new yy.ast.ViewConstruction($2, $4, @$); }
847
- ;
848
-
849
- fun_application
850
- : '<' fun_target type_arguments arguments '>'
851
- { $$ = new yy.ast.FunApplication($2, $3, $4, @$); }
852
-
853
- | '<' fun_target arguments '>'
854
- { $$ = new yy.ast.FunApplication($2, [], $3, @$); }
855
-
856
- | '<' fun_target '>'
857
- { $$ = new yy.ast.FunApplication($2, [], [], @$); }
858
-
859
- ;
860
-
861
- fun_target
862
- : identifier
863
- { $$ = $1; }
864
-
865
- | context_property
866
- { $$ = $1; }
814
+ : '<' simple_expression '>'
815
+ { $$ = new yy.ast.ViewConstruction($2, @$); }
867
816
 
868
- | '(' expression ')'
869
- { $$ = $2; }
817
+ | '<' '(' expression ')' '>'
818
+ { $$ = new yy.ast.ViewConstruction($3, @$); }
870
819
  ;
871
820
 
872
821
  type_arguments
@@ -883,37 +832,67 @@ type_arg_list
883
832
  ;
884
833
 
885
834
  construct_expression
886
- : cons arguments
887
- { $$ = new yy.ast.ConstructExpression($1, $2, @$); }
835
+ : cons '(' arguments ')'
836
+ { $$ = new yy.ast.ConstructExpression($1, $3, @$); }
837
+
838
+ | cons '(' ')'
839
+ { $$ = new yy.ast.ConstructExpression($1, [], @$); }
888
840
  ;
889
841
 
890
842
  call_expression
891
- : identifier type_arguments arguments
892
- {$$ = new yy.ast.CallExpression($1, $2, $3, @$); }
843
+ : identifier type_arguments '(' arguments ')'
844
+ {$$ = new yy.ast.CallExpression($1, $2, $4, @$); }
893
845
 
894
- | identifier arguments
895
- {$$ = new yy.ast.CallExpression($1, [], $2, @$); }
846
+ | identifier type_arguments '(' ')'
847
+ {$$ = new yy.ast.CallExpression($1, $2, [], @$); }
896
848
 
897
- | context_property type_arguments arguments
898
- {$$ = new yy.ast.CallExpression($1, $2, $3, @$); }
849
+ | identifier '(' arguments ')'
850
+ {$$ = new yy.ast.CallExpression($1, [], $3, @$); }
899
851
 
900
- | context_property arguments
901
- {$$ = new yy.ast.CallExpression($1, [], $2, @$); }
852
+ | identifier '(' ')'
853
+ {$$ = new yy.ast.CallExpression($1, [], [], @$); }
902
854
 
903
- | member_expression type_arguments arguments
904
- {$$ = new yy.ast.CallExpression($1, $2, $3, @$); }
855
+ | context_property type_arguments '(' arguments ')'
856
+ {$$ = new yy.ast.CallExpression($1, $2, $4, @$); }
905
857
 
906
- | member_expression arguments
907
- {$$ = new yy.ast.CallExpression($1, [], $2, @$); }
858
+ | context_property type_arguments '(' ')'
859
+ {$$ = new yy.ast.CallExpression($1, $2, [], @$); }
908
860
 
909
- | '(' expression ')' type_arguments arguments
910
- {$$ = new yy.ast.CallExpression($2, $4, $5, @$); }
861
+ | context_property '(' arguments ')'
862
+ {$$ = new yy.ast.CallExpression($1, [], $3, @$); }
911
863
 
912
- | '(' expression ')' arguments
913
- {$$ = new yy.ast.CallExpression($2, [], $4, @$); }
864
+ | context_property '(' ')'
865
+ {$$ = new yy.ast.CallExpression($1, [], [], @$); }
914
866
 
915
- | call_expression arguments
916
- {$$ = new yy.ast.CallExpression($1, [], $2, @$); }
867
+ | member_expression type_arguments '(' arguments ')'
868
+ {$$ = new yy.ast.CallExpression($1, $2, $4, @$); }
869
+
870
+ | member_expression type_arguments '(' ')'
871
+ {$$ = new yy.ast.CallExpression($1, $2, [], @$); }
872
+
873
+ | member_expression '(' arguments ')'
874
+ {$$ = new yy.ast.CallExpression($1, [], $3, @$); }
875
+
876
+ | member_expression '(' ')'
877
+ {$$ = new yy.ast.CallExpression($1, [], [], @$); }
878
+
879
+ | '(' expression ')' type_arguments '(' arguments ')'
880
+ {$$ = new yy.ast.CallExpression($2, $4, $6, @$); }
881
+
882
+ | '(' expression ')' type_arguments '(' ')'
883
+ {$$ = new yy.ast.CallExpression($2, $4, [], @$); }
884
+
885
+ | '(' expression ')' '(' arguments ')'
886
+ {$$ = new yy.ast.CallExpression($2, [], $5, @$); }
887
+
888
+ | '(' expression ')' '(' ')'
889
+ {$$ = new yy.ast.CallExpression($2, [], [], @$); }
890
+
891
+ | call_expression '(' arguments ')'
892
+ {$$ = new yy.ast.CallExpression($1, [], $3, @$); }
893
+
894
+ | call_expression '(' ')'
895
+ {$$ = new yy.ast.CallExpression($1, [], [], @$); }
917
896
  ;
918
897
 
919
898
  member_expression
@@ -947,6 +926,9 @@ member_expression
947
926
 
948
927
  | member_expression '.' unqualified_identifier
949
928
  {$$ = new yy.ast.MemberExpression($1, $3, @$); }
929
+
930
+ | member_expression '[' string_literal ']'
931
+ {$$ = new yy.ast.MemberExpression($1, $3, @$); }
950
932
  ;
951
933
 
952
934
  function_expression
@@ -990,7 +972,7 @@ list
990
972
  : '[' ']'
991
973
  {$$ = new yy.ast.List([], @$); }
992
974
 
993
- | '[' argument_list ']'
975
+ | '[' arguments ']'
994
976
  {$$ = new yy.ast.List($2, @$); }
995
977
  ;
996
978
 
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@quenk/wml",
3
- "version": "2.10.1",
3
+ "version": "2.10.5",
4
4
  "description": "(WML) is a DSL for describing user interfaces in web applications.",
5
5
  "main": "lib/index.js",
6
+ "scripts": {
7
+ "test": "./node_modules/.bin/mocha $(find -name *_test.ts)"
8
+ },
6
9
  "types": "lib/index.d.ts",
7
10
  "files": [
8
11
  "lib"
@@ -19,7 +22,7 @@
19
22
  "@types/node": "^15.12.2",
20
23
  "jison-gho": "^0.6.1-216",
21
24
  "mocha": "^9.0.0",
22
- "ts-node": "^10.0.0",
25
+ "ts-node": "^10.5.0",
23
26
  "typedoc": "^0.20.36",
24
27
  "typescript": "^4.3.2"
25
28
  },