babel-plugin-jsx-dom-expressions 0.33.8 → 0.33.10

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 (2) hide show
  1. package/index.js +72 -64
  2. package/package.json +2 -2
package/index.js CHANGED
@@ -592,26 +592,28 @@ function setAttr$2(path, elem, name, value, { isSVG, dynamic, prevId, isCE }) {
592
592
  }
593
593
 
594
594
  if (name === "style") {
595
- return t__namespace.callExpression(registerImportMethod(path, "style", getRendererConfig(path, "dom").moduleName), prevId ? [elem, value, prevId] : [elem, value]);
595
+ return t__namespace.callExpression(
596
+ registerImportMethod(path, "style", getRendererConfig(path, "dom").moduleName),
597
+ prevId ? [elem, value, prevId] : [elem, value]
598
+ );
596
599
  }
597
600
 
598
601
  if (!isSVG && name === "class") {
599
- return t__namespace.callExpression(registerImportMethod(path, "className", getRendererConfig(path, "dom").moduleName), [elem, value]);
602
+ return t__namespace.callExpression(
603
+ registerImportMethod(path, "className", getRendererConfig(path, "dom").moduleName),
604
+ [elem, value]
605
+ );
600
606
  }
601
607
 
602
608
  if (name === "classList") {
603
- return t__namespace.callExpression(registerImportMethod(
604
- path,
605
- "classList",
606
- getRendererConfig(path, "dom").moduleName
607
- ), prevId ? [elem, value, prevId] : [elem, value]);
609
+ return t__namespace.callExpression(
610
+ registerImportMethod(path, "classList", getRendererConfig(path, "dom").moduleName),
611
+ prevId ? [elem, value, prevId] : [elem, value]
612
+ );
608
613
  }
609
614
 
610
615
  if (config.hydratable && name === "innerHTML") {
611
- return t__namespace.callExpression(
612
- registerImportMethod(path, "innerHTML"),
613
- [elem, value]
614
- );
616
+ return t__namespace.callExpression(registerImportMethod(path, "innerHTML"), [elem, value]);
615
617
  }
616
618
 
617
619
  if (dynamic && name === "textContent") {
@@ -635,22 +637,15 @@ function setAttr$2(path, elem, name, value, { isSVG, dynamic, prevId, isCE }) {
635
637
  !isSVG && (name = name.toLowerCase());
636
638
  const ns = isNameSpaced && SVGNamespace[name.split(":")[0]];
637
639
  if (ns) {
638
- return t__namespace.callExpression(registerImportMethod(
639
- path,
640
- "setAttributeNS",
641
- getRendererConfig(path, "dom").moduleName
642
- ), [
643
- elem,
644
- t__namespace.stringLiteral(ns),
645
- t__namespace.stringLiteral(name),
646
- value
647
- ]);
640
+ return t__namespace.callExpression(
641
+ registerImportMethod(path, "setAttributeNS", getRendererConfig(path, "dom").moduleName),
642
+ [elem, t__namespace.stringLiteral(ns), t__namespace.stringLiteral(name), value]
643
+ );
648
644
  } else {
649
- return t__namespace.callExpression(registerImportMethod(
650
- path,
651
- "setAttribute",
652
- getRendererConfig(path, "dom").moduleName
653
- ), [elem, t__namespace.stringLiteral(name), value]);
645
+ return t__namespace.callExpression(
646
+ registerImportMethod(path, "setAttribute", getRendererConfig(path, "dom").moduleName),
647
+ [elem, t__namespace.stringLiteral(name), value]
648
+ );
654
649
  }
655
650
  }
656
651
 
@@ -810,22 +805,21 @@ function transformAttributes$2(path, results) {
810
805
  if (t__namespace.isJSXSpreadAttribute(node)) {
811
806
  results.exprs.push(
812
807
  t__namespace.expressionStatement(
813
- t__namespace.callExpression(registerImportMethod(
814
- attribute,
815
- "spread",
816
- getRendererConfig(path, "dom").moduleName
817
- ), [
818
- elem,
819
- isDynamic(attribute.get("argument"), {
820
- checkMember: true
821
- })
822
- ? t__namespace.isCallExpression(node.argument) && !node.argument.arguments.length
823
- ? node.argument.callee
824
- : t__namespace.arrowFunctionExpression([], node.argument)
825
- : node.argument,
826
- t__namespace.booleanLiteral(isSVG),
827
- t__namespace.booleanLiteral(hasChildren)
828
- ])
808
+ t__namespace.callExpression(
809
+ registerImportMethod(attribute, "spread", getRendererConfig(path, "dom").moduleName),
810
+ [
811
+ elem,
812
+ isDynamic(attribute.get("argument"), {
813
+ checkMember: true
814
+ })
815
+ ? t__namespace.isCallExpression(node.argument) && !node.argument.arguments.length
816
+ ? node.argument.callee
817
+ : t__namespace.arrowFunctionExpression([], node.argument)
818
+ : node.argument,
819
+ t__namespace.booleanLiteral(isSVG),
820
+ t__namespace.booleanLiteral(hasChildren)
821
+ ]
822
+ )
829
823
  )
830
824
  );
831
825
  //NOTE: can't be checked at compile time so add to compiled output
@@ -917,7 +911,7 @@ function transformAttributes$2(path, results) {
917
911
  }
918
912
  } else if (key.startsWith("use:")) {
919
913
  // Some trick to treat JSXIdentifier as Identifier
920
- node.name.name.type = 'Identifier';
914
+ node.name.name.type = "Identifier";
921
915
  results.exprs.unshift(
922
916
  t__namespace.expressionStatement(
923
917
  t__namespace.callExpression(node.name.name, [
@@ -994,16 +988,14 @@ function transformAttributes$2(path, results) {
994
988
  } else {
995
989
  results.exprs.unshift(
996
990
  t__namespace.expressionStatement(
997
- t__namespace.callExpression(registerImportMethod(
998
- path,
999
- "addEventListener",
1000
- getRendererConfig(path, "dom").moduleName
1001
- ), [
1002
- elem,
1003
- t__namespace.stringLiteral(ev),
1004
- handler,
1005
- t__namespace.booleanLiteral(true)
1006
- ])
991
+ t__namespace.callExpression(
992
+ registerImportMethod(
993
+ path,
994
+ "addEventListener",
995
+ getRendererConfig(path, "dom").moduleName
996
+ ),
997
+ [elem, t__namespace.stringLiteral(ev), handler, t__namespace.booleanLiteral(true)]
998
+ )
1007
999
  )
1008
1000
  );
1009
1001
  }
@@ -1037,11 +1029,14 @@ function transformAttributes$2(path, results) {
1037
1029
  } else {
1038
1030
  results.exprs.unshift(
1039
1031
  t__namespace.expressionStatement(
1040
- t__namespace.callExpression(registerImportMethod(
1041
- path,
1042
- "addEventListener",
1043
- getRendererConfig(path, "dom").moduleName
1044
- ), [elem, t__namespace.stringLiteral(ev), handler])
1032
+ t__namespace.callExpression(
1033
+ registerImportMethod(
1034
+ path,
1035
+ "addEventListener",
1036
+ getRendererConfig(path, "dom").moduleName
1037
+ ),
1038
+ [elem, t__namespace.stringLiteral(ev), handler]
1039
+ )
1045
1040
  )
1046
1041
  );
1047
1042
  }
@@ -1053,6 +1048,23 @@ function transformAttributes$2(path, results) {
1053
1048
  })
1054
1049
  ) {
1055
1050
  let nextElem = elem;
1051
+ if (key === "value" || key === "checked") {
1052
+ const effectWrapperId = registerImportMethod(path, config.effectWrapper);
1053
+ results.postExprs.push(
1054
+ t__namespace.expressionStatement(
1055
+ t__namespace.callExpression(effectWrapperId, [
1056
+ t__namespace.arrowFunctionExpression(
1057
+ [],
1058
+ setAttr$2(path, elem, key, value.expression, {
1059
+ isSVG,
1060
+ isCE
1061
+ })
1062
+ )
1063
+ ])
1064
+ )
1065
+ );
1066
+ return;
1067
+ }
1056
1068
  if (key === "textContent") {
1057
1069
  nextElem = attribute.scope.generateUidIdentifier("el$");
1058
1070
  children = t__namespace.JSXText(" ");
@@ -1149,6 +1161,7 @@ function transformChildren$2(path, results, config) {
1149
1161
  results.decl.push(...child.decl);
1150
1162
  results.exprs.push(...child.exprs);
1151
1163
  results.dynamics.push(...child.dynamics);
1164
+ results.postExprs.push(...child.postExprs);
1152
1165
  results.hasHydratableEvent = results.hasHydratableEvent || child.hasHydratableEvent;
1153
1166
  results.hasCustomElement = results.hasCustomElement || child.hasCustomElement;
1154
1167
  tempPath = child.id.name;
@@ -1191,12 +1204,7 @@ function transformChildren$2(path, results, config) {
1191
1204
  );
1192
1205
  } else {
1193
1206
  results.exprs.push(
1194
- t__namespace.expressionStatement(
1195
- t__namespace.callExpression(
1196
- insert,
1197
- [results.id, child.exprs[0]]
1198
- )
1199
- )
1207
+ t__namespace.expressionStatement(t__namespace.callExpression(insert, [results.id, child.exprs[0]]))
1200
1208
  );
1201
1209
  }
1202
1210
  } else nextPlaceholder = null;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "babel-plugin-jsx-dom-expressions",
3
3
  "description": "A JSX to DOM plugin that wraps expressions for fine grained change detection",
4
- "version": "0.33.8",
4
+ "version": "0.33.10",
5
5
  "author": "Ryan Carniato",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -23,5 +23,5 @@
23
23
  "@babel/types": "^7.16.0",
24
24
  "html-entities": "2.3.2"
25
25
  },
26
- "gitHead": "22e8d3ae8c8eb50596fce778c5b9116880cc55c2"
26
+ "gitHead": "56d368d4a63606844811008c5a2e3b1d2dc0a4de"
27
27
  }