marko 4.26.5 → 4.28.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 (266) hide show
  1. package/CHANGELOG.md +2510 -0
  2. package/README.md +1 -1
  3. package/bin/markoc.js +15 -15
  4. package/dist/compiler/CompileContext.js +1 -0
  5. package/dist/compiler/ast/CustomTag.js +2 -2
  6. package/dist/core-tags/components/TransformHelper/convertToComponent.js +1 -1
  7. package/dist/core-tags/components/TransformHelper/handleLegacyBind.js +0 -4
  8. package/dist/core-tags/core/await/renderer.js +0 -4
  9. package/dist/core-tags/migrate/all-tags/body-only-if.js +0 -1
  10. package/dist/core-tags/migrate/all-tags/control-flow-directives.js +0 -1
  11. package/dist/core-tags/migrate/all-tags/dynamic-attributes.js +1 -2
  12. package/dist/core-tags/migrate/all-tags/include-directive.js +0 -2
  13. package/dist/core-tags/migrate/all-tags/legacy-nested-tag.js +0 -2
  14. package/dist/core-tags/migrate/all-tags/marko-init.js +0 -2
  15. package/dist/core-tags/migrate/all-tags/modifier-key.js +0 -2
  16. package/dist/core-tags/migrate/all-tags/ref.js +1 -3
  17. package/dist/core-tags/migrate/all-tags/w-bind.js +0 -2
  18. package/dist/core-tags/migrate/all-tags/w-body.js +0 -2
  19. package/dist/core-tags/migrate/all-tags/w-config.js +0 -2
  20. package/dist/core-tags/migrate/all-tags/w-for.js +0 -3
  21. package/dist/core-tags/migrate/all-tags/w-id.js +1 -4
  22. package/dist/core-tags/migrate/all-tags/w-on.js +1 -4
  23. package/dist/core-tags/migrate/all-tags/w-preserve-attrs.js +0 -2
  24. package/dist/core-tags/migrate/all-tags/w-preserve.js +1 -3
  25. package/dist/core-tags/migrate/all-tags/widget-in-attrs.js +2 -11
  26. package/dist/core-tags/migrate/all-templates/non-standard-template-literals.js +0 -4
  27. package/dist/core-tags/migrate/all-templates/render-calls.js +0 -2
  28. package/dist/core-tags/migrate/assign-tag.js +0 -2
  29. package/dist/core-tags/migrate/async-fragment-tag.js +0 -2
  30. package/dist/core-tags/migrate/async-fragments-tag.js +0 -2
  31. package/dist/core-tags/migrate/await-tag.js +0 -7
  32. package/dist/core-tags/migrate/class-tag.js +0 -2
  33. package/dist/core-tags/migrate/component-globals-tag.js +0 -2
  34. package/dist/core-tags/migrate/for-tag.js +0 -2
  35. package/dist/core-tags/migrate/include-tag.js +0 -1
  36. package/dist/core-tags/migrate/invoke-tag.js +0 -2
  37. package/dist/core-tags/migrate/layout-placeholder-tag.js +0 -1
  38. package/dist/core-tags/migrate/layout-put-tag.js +0 -1
  39. package/dist/core-tags/migrate/layout-use-tag.js +0 -1
  40. package/dist/core-tags/migrate/macro-body-tag.js +0 -2
  41. package/dist/core-tags/migrate/macro-tag.js +0 -2
  42. package/dist/core-tags/migrate/unless-tag.js +0 -1
  43. package/dist/core-tags/migrate/var-tag.js +0 -2
  44. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -10
  45. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -4
  46. package/dist/node_modules/@internal/components-registry/index-browser.js +2 -0
  47. package/dist/runtime/RenderResult.js +0 -3
  48. package/dist/runtime/components/Component.js +0 -6
  49. package/dist/runtime/components/ComponentDef.js +0 -3
  50. package/dist/runtime/components/ServerComponent.js +0 -4
  51. package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -3
  52. package/dist/runtime/components/legacy/defineRenderer-legacy.js +0 -6
  53. package/dist/runtime/components/legacy/index.js +3 -1
  54. package/dist/runtime/helpers/dynamic-tag.js +3 -0
  55. package/dist/runtime/helpers/for-of.js +3 -1
  56. package/dist/runtime/helpers/interop-require.js +3 -0
  57. package/dist/runtime/html/helpers/attr.js +0 -4
  58. package/dist/runtime/html/helpers/attrs.js +0 -2
  59. package/dist/runtime/html/helpers/merge-attrs.js +0 -3
  60. package/dist/runtime/vdom/VElement.js +0 -3
  61. package/dist/runtime/vdom/helpers/attrs.js +0 -2
  62. package/dist/taglib/taglib-finder/index.js +1 -1
  63. package/dist/taglib/taglib-loader/Taglib.js +2 -1
  64. package/dist/taglib/taglib-loader/index.js +2 -2
  65. package/dist/taglib/taglib-loader/loadTagFromProps.js +15 -0
  66. package/dist/taglib/taglib-loader/loadTaglibFromFile.js +2 -2
  67. package/dist/taglib/taglib-loader/loadTaglibFromProps.js +12 -0
  68. package/docs/10-awesome-marko-features.md +1 -1
  69. package/docs/body-content.md +3 -3
  70. package/docs/class-components.md +6 -6
  71. package/docs/express.md +1 -1
  72. package/docs/fastify.md +4 -4
  73. package/docs/hapi.md +3 -3
  74. package/docs/http.md +1 -1
  75. package/docs/huncwot.md +1 -1
  76. package/docs/installing.md +2 -2
  77. package/docs/koa.md +2 -2
  78. package/docs/lasso.md +1 -1
  79. package/docs/marko-4-upgrade.md +1 -1
  80. package/docs/marko-v4.md +4 -4
  81. package/docs/marko-vs-react.md +2 -2
  82. package/docs/rendering.md +6 -6
  83. package/docs/server-side-rendering.md +3 -3
  84. package/docs/webpack.md +16 -16
  85. package/docs/why-is-marko-fast.md +3 -3
  86. package/package.json +1 -2
  87. package/src/compiler/Builder.js +13 -13
  88. package/src/compiler/CodeGenerator.js +2 -2
  89. package/src/compiler/CodeWriter.js +1 -1
  90. package/src/compiler/CompileContext.js +31 -30
  91. package/src/compiler/Compiler.js +3 -3
  92. package/src/compiler/HtmlJsParser.js +4 -4
  93. package/src/compiler/Migrator.js +2 -2
  94. package/src/compiler/Normalizer.js +5 -5
  95. package/src/compiler/Parser.js +11 -11
  96. package/src/compiler/Walker.js +1 -1
  97. package/src/compiler/ast/ArrayExpression.js +1 -1
  98. package/src/compiler/ast/BinaryExpression.js +1 -1
  99. package/src/compiler/ast/ConditionalExpression.js +1 -1
  100. package/src/compiler/ast/CustomTag.js +14 -14
  101. package/src/compiler/ast/Declaration.js +2 -2
  102. package/src/compiler/ast/DocumentType.js +2 -2
  103. package/src/compiler/ast/ForEach.js +1 -1
  104. package/src/compiler/ast/ForEachProp.js +1 -1
  105. package/src/compiler/ast/ForRange.js +1 -1
  106. package/src/compiler/ast/HtmlAttribute/html/generateCode.js +4 -4
  107. package/src/compiler/ast/HtmlAttribute/vdom/generateCode.js +2 -2
  108. package/src/compiler/ast/HtmlAttributeCollection.js +3 -3
  109. package/src/compiler/ast/HtmlComment.js +1 -1
  110. package/src/compiler/ast/HtmlElement/html/EndTag.js +1 -1
  111. package/src/compiler/ast/HtmlElement/html/StartTag.js +3 -3
  112. package/src/compiler/ast/HtmlElement/html/generateCode.js +5 -5
  113. package/src/compiler/ast/HtmlElement/index.js +1 -1
  114. package/src/compiler/ast/HtmlElement/vdom/HtmlElementVDOM.js +1 -1
  115. package/src/compiler/ast/HtmlElement/vdom/generateCode.js +3 -3
  116. package/src/compiler/ast/If.js +1 -1
  117. package/src/compiler/ast/LogicalExpression.js +1 -1
  118. package/src/compiler/ast/MemberExpression.js +1 -1
  119. package/src/compiler/ast/NewExpression.js +1 -1
  120. package/src/compiler/ast/Node.js +4 -4
  121. package/src/compiler/ast/ObjectExpression.js +2 -2
  122. package/src/compiler/ast/Property.js +1 -1
  123. package/src/compiler/ast/SequenceExpression.js +1 -1
  124. package/src/compiler/ast/TemplateLiteral.js +1 -1
  125. package/src/compiler/ast/TemplateRoot.js +3 -3
  126. package/src/compiler/ast/Text/index.js +1 -1
  127. package/src/compiler/ast/UnaryExpression.js +1 -1
  128. package/src/compiler/ast/UpdateExpression.js +1 -1
  129. package/src/compiler/config.js +1 -1
  130. package/src/compiler/index.js +5 -5
  131. package/src/compiler/modules.js +2 -2
  132. package/src/compiler/util/UniqueVars.js +4 -4
  133. package/src/compiler/util/convertRawJavaScriptAst.js +1 -1
  134. package/src/compiler/util/javaScriptReservedWords.js +1 -1
  135. package/src/compiler/util/macros.js +1 -1
  136. package/src/compiler/util/mergeProps.js +3 -3
  137. package/src/compiler/util/parseJavaScriptArgs.js +1 -1
  138. package/src/compiler/util/parseJavaScriptParams.js +1 -1
  139. package/src/compiler/util/parseRawJavaScriptAst.js +1 -1
  140. package/src/compiler/util/removeComments.js +6 -6
  141. package/src/compiler/util/tokenizer.js +3 -3
  142. package/src/compiler/util/vdom/VDOMOptimizer.js +2 -2
  143. package/src/core-tags/cache/cached-fragment-tag.js +2 -2
  144. package/src/core-tags/cache/default-cache-manager.js +2 -2
  145. package/src/core-tags/components/TransformHelper/ComponentArgsCompiler.js +3 -3
  146. package/src/core-tags/components/TransformHelper/assignComponentId.js +3 -3
  147. package/src/core-tags/components/TransformHelper/convertToComponent.js +7 -5
  148. package/src/core-tags/components/TransformHelper/getComponentFiles.js +1 -1
  149. package/src/core-tags/components/TransformHelper/handleComponentEvents.js +3 -3
  150. package/src/core-tags/components/TransformHelper/handleComponentPreserve.js +7 -7
  151. package/src/core-tags/components/TransformHelper/handleLegacyBind.js +2 -8
  152. package/src/core-tags/components/TransformHelper/handleRootNodes.js +14 -14
  153. package/src/core-tags/components/TransformHelper/handleScopedAttrs.js +1 -1
  154. package/src/core-tags/components/TransformHelper/index.js +1 -1
  155. package/src/core-tags/components/component-tag.js +1 -1
  156. package/src/core-tags/components/components-transformer.js +2 -2
  157. package/src/core-tags/components/util/generateRegisterComponentCode.js +2 -2
  158. package/src/core-tags/components/widget-types-tag.js +2 -2
  159. package/src/core-tags/core/await/AsyncValue.js +1 -1
  160. package/src/core-tags/core/await/renderer.js +3 -12
  161. package/src/core-tags/core/await/reorderer-renderer.js +1 -1
  162. package/src/core-tags/core/core-transformer.js +5 -5
  163. package/src/core-tags/core/html-comment-tag.js +1 -1
  164. package/src/core-tags/core/import-tag.js +1 -1
  165. package/src/core-tags/core/util/parseImport.js +8 -8
  166. package/src/core-tags/html/normalize-script-text.js +1 -1
  167. package/src/core-tags/migrate/all-tags/body-only-if.js +4 -5
  168. package/src/core-tags/migrate/all-tags/control-flow-directives.js +2 -5
  169. package/src/core-tags/migrate/all-tags/dynamic-attributes.js +1 -4
  170. package/src/core-tags/migrate/all-tags/include-directive.js +0 -4
  171. package/src/core-tags/migrate/all-tags/index.js +2 -2
  172. package/src/core-tags/migrate/all-tags/legacy-nested-tag.js +0 -5
  173. package/src/core-tags/migrate/all-tags/marko-init.js +2 -8
  174. package/src/core-tags/migrate/all-tags/modifier-key.js +1 -7
  175. package/src/core-tags/migrate/all-tags/params.js +1 -1
  176. package/src/core-tags/migrate/all-tags/ref.js +1 -5
  177. package/src/core-tags/migrate/all-tags/w-bind.js +8 -12
  178. package/src/core-tags/migrate/all-tags/w-body.js +3 -7
  179. package/src/core-tags/migrate/all-tags/w-config.js +1 -5
  180. package/src/core-tags/migrate/all-tags/w-for.js +1 -8
  181. package/src/core-tags/migrate/all-tags/w-id.js +1 -8
  182. package/src/core-tags/migrate/all-tags/w-on.js +2 -9
  183. package/src/core-tags/migrate/all-tags/w-preserve-attrs.js +1 -5
  184. package/src/core-tags/migrate/all-tags/w-preserve.js +3 -7
  185. package/src/core-tags/migrate/all-tags/widget-in-attrs.js +4 -17
  186. package/src/core-tags/migrate/all-templates/index.js +2 -2
  187. package/src/core-tags/migrate/all-templates/non-standard-template-literals.js +6 -12
  188. package/src/core-tags/migrate/all-templates/render-calls.js +4 -8
  189. package/src/core-tags/migrate/all-templates/widget-data-is-state.js +2 -2
  190. package/src/core-tags/migrate/all-templates/widget-get-template-data.js +2 -2
  191. package/src/core-tags/migrate/assign-tag.js +2 -6
  192. package/src/core-tags/migrate/async-fragment-tag.js +2 -6
  193. package/src/core-tags/migrate/async-fragments-tag.js +0 -4
  194. package/src/core-tags/migrate/await-tag.js +8 -23
  195. package/src/core-tags/migrate/class-tag.js +0 -4
  196. package/src/core-tags/migrate/component-globals-tag.js +0 -4
  197. package/src/core-tags/migrate/for-tag.js +12 -16
  198. package/src/core-tags/migrate/include-tag.js +2 -5
  199. package/src/core-tags/migrate/invoke-tag.js +2 -6
  200. package/src/core-tags/migrate/layout-placeholder-tag.js +0 -3
  201. package/src/core-tags/migrate/layout-put-tag.js +0 -3
  202. package/src/core-tags/migrate/layout-use-tag.js +0 -3
  203. package/src/core-tags/migrate/macro-body-tag.js +0 -5
  204. package/src/core-tags/migrate/macro-tag.js +5 -10
  205. package/src/core-tags/migrate/unless-tag.js +0 -3
  206. package/src/core-tags/migrate/util/addIdScopedAttr.js +1 -1
  207. package/src/core-tags/migrate/util/import-tag.js +6 -6
  208. package/src/core-tags/migrate/util/parseFor.js +20 -20
  209. package/src/core-tags/migrate/util/renderCallToDynamicTag.js +7 -7
  210. package/src/core-tags/migrate/var-tag.js +4 -8
  211. package/src/express.js +1 -1
  212. package/src/hot-reload.js +3 -3
  213. package/src/node-require/index.js +1 -1
  214. package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +2 -53
  215. package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -10
  216. package/src/node_modules/@internal/components-registry/index-browser.js +2 -0
  217. package/src/runtime/RenderResult.js +3 -16
  218. package/src/runtime/components/Component.js +2 -23
  219. package/src/runtime/components/ComponentDef.js +2 -8
  220. package/src/runtime/components/ComponentsContext.js +1 -1
  221. package/src/runtime/components/ServerComponent.js +0 -6
  222. package/src/runtime/components/State.js +2 -2
  223. package/src/runtime/components/attach-detach.js +1 -1
  224. package/src/runtime/components/dom-data.js +1 -1
  225. package/src/runtime/components/legacy/defineComponent-legacy.js +0 -5
  226. package/src/runtime/components/legacy/defineRenderer-legacy.js +0 -16
  227. package/src/runtime/components/legacy/dependencies/index.js +10 -10
  228. package/src/runtime/components/legacy/index.js +5 -0
  229. package/src/runtime/components/legacy/renderer-legacy.js +1 -1
  230. package/src/runtime/components/update-manager.js +1 -1
  231. package/src/runtime/dom-insert.js +1 -1
  232. package/src/runtime/helpers/_weak-map.js +1 -1
  233. package/src/runtime/helpers/bind-component.js +1 -1
  234. package/src/runtime/helpers/dynamic-tag.js +3 -0
  235. package/src/runtime/helpers/for-of.js +1 -6
  236. package/src/runtime/helpers/interop-require.js +3 -0
  237. package/src/runtime/html/AsyncStream.js +5 -5
  238. package/src/runtime/html/BufferedWriter.js +1 -1
  239. package/src/runtime/html/StringWriter.js +1 -1
  240. package/src/runtime/html/helpers/attr.js +0 -9
  241. package/src/runtime/html/helpers/attrs.js +0 -6
  242. package/src/runtime/html/helpers/merge-attrs.js +0 -8
  243. package/src/runtime/html/index.js +1 -1
  244. package/src/runtime/renderable.js +1 -1
  245. package/src/runtime/vdom/AsyncVDOMBuilder.js +2 -2
  246. package/src/runtime/vdom/VComment.js +1 -1
  247. package/src/runtime/vdom/VComponent.js +1 -1
  248. package/src/runtime/vdom/VDocumentFragment.js +1 -1
  249. package/src/runtime/vdom/VElement.js +4 -11
  250. package/src/runtime/vdom/VFragment.js +1 -1
  251. package/src/runtime/vdom/VNode.js +1 -1
  252. package/src/runtime/vdom/VText.js +1 -1
  253. package/src/runtime/vdom/helpers/attrs.js +0 -7
  254. package/src/runtime/vdom/index.js +1 -1
  255. package/src/runtime/vdom/morphdom/fragment.js +1 -1
  256. package/src/runtime/vdom/morphdom/specialElHandlers.js +1 -1
  257. package/src/taglib/taglib-finder/index.js +6 -6
  258. package/src/taglib/taglib-loader/Tag.js +8 -8
  259. package/src/taglib/taglib-loader/Taglib.js +3 -2
  260. package/src/taglib/taglib-loader/index.js +2 -2
  261. package/src/taglib/taglib-loader/loadAttributeFromProps.js +1 -1
  262. package/src/taglib/taglib-loader/loadTagFromProps.js +29 -14
  263. package/src/taglib/taglib-loader/loadTaglibFromFile.js +2 -2
  264. package/src/taglib/taglib-loader/loadTaglibFromProps.js +27 -9
  265. package/src/taglib/taglib-loader/scanTagsDir.js +6 -6
  266. package/src/taglib/taglib-lookup/TaglibLookup.js +8 -8
@@ -10,7 +10,7 @@ var COMPILER_ATTRIBUTE_HANDLERS = {
10
10
  },
11
11
  "preserve-comments": function (attr, context) {
12
12
  context.setPreserveComments(true);
13
- }
13
+ },
14
14
  };
15
15
 
16
16
  function getSimplifiedValue(node) {
@@ -41,7 +41,7 @@ function getParserStateForTag(parser, el, tagDef) {
41
41
  parser.context.addError({
42
42
  message:
43
43
  'Value for "marko-body" should be one of the following: "static-text", "parsed-text", "html"',
44
- code: "ERR_INVALID_ATTR"
44
+ code: "ERR_INVALID_ATTR",
45
45
  });
46
46
  return;
47
47
  }
@@ -100,7 +100,7 @@ class Parser {
100
100
  this.context = context;
101
101
 
102
102
  this.stack.push({
103
- node: rootNode
103
+ node: rootNode,
104
104
  });
105
105
 
106
106
  this.parserImpl.parse(src, this, context.filename, mergedOptions);
@@ -177,7 +177,7 @@ class Parser {
177
177
  '". Allowed: ' +
178
178
  Object.keys(COMPILER_ATTRIBUTE_HANDLERS).join(", "),
179
179
  pos: el.pos,
180
- node: el
180
+ node: el,
181
181
  });
182
182
  return;
183
183
  }
@@ -205,7 +205,7 @@ class Parser {
205
205
  openTagOnly: el.openTagOnly === true,
206
206
  selfClosed: el.selfClosed === true,
207
207
  pos: el.pos,
208
- attributes: parsedAttributes
208
+ attributes: parsedAttributes,
209
209
  };
210
210
 
211
211
  var node = builder.htmlElement(elDef);
@@ -213,7 +213,7 @@ class Parser {
213
213
  node.tagDef = tagDef;
214
214
 
215
215
  if (attributeParseErrors && attributeParseErrors.length) {
216
- attributeParseErrors.forEach(e => {
216
+ attributeParseErrors.forEach((e) => {
217
217
  context.addError(node, e);
218
218
  });
219
219
  }
@@ -224,7 +224,7 @@ class Parser {
224
224
  }
225
225
 
226
226
  if (el.shorthandClassNames) {
227
- node.rawShorthandClassNames = el.shorthandClassNames.map(className => {
227
+ node.rawShorthandClassNames = el.shorthandClassNames.map((className) => {
228
228
  let parsed = builder.parseExpression(className.value);
229
229
  return getSimplifiedValue(parsed);
230
230
  });
@@ -238,7 +238,7 @@ class Parser {
238
238
 
239
239
  this.stack.push({
240
240
  node: node,
241
- tag: null
241
+ tag: null,
242
242
  });
243
243
  }
244
244
 
@@ -249,7 +249,7 @@ class Parser {
249
249
  // <div class="foo"> -> "div class=foo"
250
250
  var parsedAttributes = [];
251
251
 
252
- attributes.forEach(attr => {
252
+ attributes.forEach((attr) => {
253
253
  var attrName = attr.name;
254
254
  var attrRawValue = attr.value;
255
255
  var attrSpread;
@@ -296,7 +296,7 @@ class Parser {
296
296
  var attrDef = {
297
297
  name: attrName,
298
298
  value: attrValue,
299
- rawValue: attrRawValue
299
+ rawValue: attrRawValue,
300
300
  };
301
301
 
302
302
  if (attr.argument) {
@@ -369,7 +369,7 @@ class Parser {
369
369
  message: event.message,
370
370
  code: event.code,
371
371
  pos: event.pos,
372
- endPos: event.endPos
372
+ endPos: event.endPos,
373
373
  });
374
374
  }
375
375
 
@@ -66,7 +66,7 @@ class Walker {
66
66
  }
67
67
 
68
68
  _walkContainer(nodes) {
69
- nodes.forEach(node => {
69
+ nodes.forEach((node) => {
70
70
  var transformed = this.walk(node);
71
71
  if (!transformed) {
72
72
  node.container.removeChild(node);
@@ -49,7 +49,7 @@ class ArrayExpression extends Node {
49
49
  toJSON() {
50
50
  return {
51
51
  type: "ArrayExpression",
52
- elements: this.elements
52
+ elements: this.elements,
53
53
  };
54
54
  }
55
55
 
@@ -97,7 +97,7 @@ class BinaryExpression extends Node {
97
97
  type: "BinaryExpression",
98
98
  left: this.left,
99
99
  operator: this.operator,
100
- right: this.right
100
+ right: this.right,
101
101
  };
102
102
  }
103
103
 
@@ -38,7 +38,7 @@ class ConditionalExpression extends Node {
38
38
  type: "ConditionalExpression",
39
39
  test: this.test,
40
40
  consequent: this.consequent,
41
- alternate: this.alternate
41
+ alternate: this.alternate,
42
42
  };
43
43
  }
44
44
 
@@ -11,7 +11,7 @@ const CUSTOM_TAG_KEY = Symbol("CustomTag");
11
11
  function getNestedVariables(elNode, tagDef, codegen) {
12
12
  let variableNames = [];
13
13
  if (tagDef.forEachVariable) {
14
- tagDef.forEachVariable(nestedVar => {
14
+ tagDef.forEachVariable((nestedVar) => {
15
15
  let varName;
16
16
  if (nestedVar.nameFromAttribute) {
17
17
  let possibleNameAttributes =
@@ -67,7 +67,7 @@ function getNestedVariables(elNode, tagDef, codegen) {
67
67
  }
68
68
 
69
69
  if (elNode.params.length) {
70
- elNode.params.forEach(variable => {
70
+ elNode.params.forEach((variable) => {
71
71
  if (typeof variable === "string") {
72
72
  variable = codegen.builder.identifier(variable);
73
73
  }
@@ -83,7 +83,7 @@ function getAllowedAttributesString(tagName, context) {
83
83
 
84
84
  let tagDef = context.taglibLookup.getTag(tagName);
85
85
  if (tagDef) {
86
- tagDef.forEachAttribute(attrDef => {
86
+ tagDef.forEachAttribute((attrDef) => {
87
87
  attrNames.push(attrDef.name);
88
88
  });
89
89
 
@@ -121,7 +121,7 @@ function checkIfNestedTagCanBeAddedDirectlyToInput(nestedTag, parentCustomTag) {
121
121
  }
122
122
 
123
123
  function processDirectlyNestedTags(node, codegen) {
124
- node.forEachChild(child => {
124
+ node.forEachChild((child) => {
125
125
  if (child.type === "CustomTag") {
126
126
  let customTag = child;
127
127
 
@@ -367,7 +367,7 @@ class CustomTag extends HtmlElement {
367
367
  }
368
368
  attrProps = builder.objectExpression(explicitAttrs);
369
369
  if (computedAttrs) {
370
- computedAttrs.forEach(prop => attrProps.properties.push(prop));
370
+ computedAttrs.forEach((prop) => attrProps.properties.push(prop));
371
371
  }
372
372
  attrs.push(attrProps);
373
373
  }
@@ -444,9 +444,9 @@ class CustomTag extends HtmlElement {
444
444
  name: fullyQualifiedName,
445
445
  attributes: {
446
446
  "*": {
447
- targetProperty: null
448
- }
449
- }
447
+ targetProperty: null,
448
+ },
449
+ },
450
450
  },
451
451
  context.filename
452
452
  );
@@ -552,13 +552,13 @@ class CustomTag extends HtmlElement {
552
552
  );
553
553
 
554
554
  let loadTag = builder.functionCall(context.helper("loadTag"), [
555
- templateVar
555
+ templateVar,
556
556
  ]);
557
557
  let tagVar = codegen.addStaticVar(tagVarName, loadTag);
558
558
 
559
559
  renderTagNode = this.generateRenderTagCode(codegen, tagVar, [
560
560
  inputProps,
561
- builder.identifierOut()
561
+ builder.identifierOut(),
562
562
  ]);
563
563
  } else {
564
564
  if (rendererRequirePath) {
@@ -602,18 +602,18 @@ class CustomTag extends HtmlElement {
602
602
  argumentNode,
603
603
  properties
604
604
  ? builder.objectExpression(
605
- Object.keys(properties).map(propName => {
605
+ Object.keys(properties).map((propName) => {
606
606
  return builder.property(
607
607
  builder.literal(propName),
608
608
  properties[propName]
609
609
  );
610
610
  })
611
611
  )
612
- : builder.literalNull()
612
+ : builder.literalNull(),
613
613
  ];
614
614
  } else {
615
615
  loadTag = builder.functionCall(context.helper("loadTag"), [
616
- requireRendererFunctionCall // The first param is the renderer
616
+ requireRendererFunctionCall, // The first param is the renderer
617
617
  ]);
618
618
 
619
619
  tagArgs = [inputProps, builder.identifierOut()];
@@ -797,7 +797,7 @@ class CustomTag extends HtmlElement {
797
797
  let additionalAttrs = renderBody &&
798
798
  !isDynamicTag && {
799
799
  [(tagDef.bodyFunction && tagDef.bodyFunction.name) || "renderBody"]:
800
- renderBody
800
+ renderBody,
801
801
  };
802
802
  let inputProps = this.buildInputProps(codegen, additionalAttrs);
803
803
  let renderTagNode = this.generateRenderNode(
@@ -13,14 +13,14 @@ class Declaration extends Node {
13
13
  return [
14
14
  builder.htmlLiteral("<?"),
15
15
  codegen.generateCode(builder.text(this.declaration)),
16
- builder.htmlLiteral("?>")
16
+ builder.htmlLiteral("?>"),
17
17
  ];
18
18
  }
19
19
 
20
20
  toJSON() {
21
21
  return {
22
22
  type: this.type,
23
- value: this.value
23
+ value: this.value,
24
24
  };
25
25
  }
26
26
  }
@@ -13,7 +13,7 @@ class DocumentType extends Node {
13
13
  return [
14
14
  builder.htmlLiteral("<!"),
15
15
  builder.html(codegen.generateCode(this.documentType)),
16
- builder.htmlLiteral(">")
16
+ builder.htmlLiteral(">"),
17
17
  ];
18
18
  }
19
19
 
@@ -24,7 +24,7 @@ class DocumentType extends Node {
24
24
  toJSON() {
25
25
  return {
26
26
  type: this.type,
27
- value: this.documentType
27
+ value: this.documentType,
28
28
  };
29
29
  }
30
30
  }
@@ -17,7 +17,7 @@ class ForEach extends Node {
17
17
 
18
18
  return builder.functionCall(context.helper("forOf"), [
19
19
  this.of,
20
- builder.functionDeclaration(null, this.params, this.body)
20
+ builder.functionDeclaration(null, this.params, this.body),
21
21
  ]);
22
22
  }
23
23
 
@@ -20,7 +20,7 @@ class ForEachProp extends Node {
20
20
 
21
21
  return builder.functionCall(context.helper("forIn"), [
22
22
  inExpression,
23
- builder.functionDeclaration(null, params, body)
23
+ builder.functionDeclaration(null, params, body),
24
24
  ]);
25
25
  }
26
26
 
@@ -30,7 +30,7 @@ class ForRange extends Node {
30
30
  from,
31
31
  to,
32
32
  step,
33
- builder.functionDeclaration(null, params, this.body)
33
+ builder.functionDeclaration(null, params, this.body),
34
34
  ]);
35
35
  }
36
36
 
@@ -19,19 +19,19 @@ function flattenAttrConcats(node) {
19
19
  if (isString) {
20
20
  return {
21
21
  isString: true,
22
- concats: left.concats.concat(right.concats)
22
+ concats: left.concats.concat(right.concats),
23
23
  };
24
24
  } else {
25
25
  return {
26
26
  isString: false,
27
- concats: [node]
27
+ concats: [node],
28
28
  };
29
29
  }
30
30
  }
31
31
 
32
32
  return {
33
33
  isString: isStringLiteral(node) || node.type === "AttributePlaceholder",
34
- concats: [node]
34
+ concats: [node],
35
35
  };
36
36
  }
37
37
 
@@ -125,7 +125,7 @@ module.exports = function generateCode(node, codegen) {
125
125
  return [
126
126
  builder.htmlLiteral(" " + name + "("),
127
127
  builder.htmlLiteral(argument),
128
- builder.htmlLiteral(")")
128
+ builder.htmlLiteral(")"),
129
129
  ];
130
130
  } else {
131
131
  // Attribute with no value is a boolean attribute
@@ -25,11 +25,11 @@ module.exports = function generateCode(node, codegen, vdomUtil) {
25
25
  } else {
26
26
  if (name === "class") {
27
27
  node.value = builder.functionCall(context.helper("classValue"), [
28
- attrValue
28
+ attrValue,
29
29
  ]);
30
30
  } else if (name === "style") {
31
31
  node.value = builder.functionCall(context.helper("styleValue"), [
32
- attrValue
32
+ attrValue,
33
33
  ]);
34
34
  }
35
35
  }
@@ -96,7 +96,7 @@ class HtmlAttributeCollection {
96
96
  } else {
97
97
  this.addAttribute({
98
98
  name: name,
99
- value: value
99
+ value: value,
100
100
  });
101
101
  }
102
102
  }
@@ -119,7 +119,7 @@ class HtmlAttributeCollection {
119
119
 
120
120
  if (attributes) {
121
121
  if (Array.isArray(attributes)) {
122
- attributes.forEach(attr => {
122
+ attributes.forEach((attr) => {
123
123
  this.addAttribute(attr);
124
124
  });
125
125
  } else {
@@ -138,7 +138,7 @@ class HtmlAttributeCollection {
138
138
  } else {
139
139
  attrDef = {
140
140
  name: attrName,
141
- value: attrValue
141
+ value: attrValue,
142
142
  };
143
143
  }
144
144
 
@@ -15,7 +15,7 @@ class HtmlComment extends Node {
15
15
  return [
16
16
  builder.htmlLiteral("<!--"),
17
17
  builder.html(comment),
18
- builder.htmlLiteral("-->")
18
+ builder.htmlLiteral("-->"),
19
19
  ];
20
20
  }
21
21
 
@@ -15,7 +15,7 @@ class EndTag extends Node {
15
15
  return [
16
16
  builder.htmlLiteral("</"),
17
17
  builder.html(tagName),
18
- builder.htmlLiteral(">")
18
+ builder.htmlLiteral(">"),
19
19
  ];
20
20
  }
21
21
  }
@@ -29,7 +29,7 @@ class StartTag extends Node {
29
29
  if (this.includeDataMarko) {
30
30
  var dataMarkoArgs = [
31
31
  builder.identifier("out"),
32
- builder.identifier("__component")
32
+ builder.identifier("__component"),
33
33
  ];
34
34
 
35
35
  var properties = this.properties;
@@ -39,7 +39,7 @@ class StartTag extends Node {
39
39
  if (propKeys.length) {
40
40
  dataMarkoArgs.push(
41
41
  builder.objectExpression(
42
- propKeys.map(propName => {
42
+ propKeys.map((propName) => {
43
43
  return builder.property(
44
44
  builder.literal(propName),
45
45
  properties[propName]
@@ -68,7 +68,7 @@ class StartTag extends Node {
68
68
  }
69
69
 
70
70
  if (attributes) {
71
- var hasSpread = attributes.find(attr => attr.spread);
71
+ var hasSpread = attributes.find((attr) => attr.spread);
72
72
  if (!hasSpread) {
73
73
  for (let i = 0; i < attributes.length; i++) {
74
74
  let attr = attributes[i];
@@ -56,7 +56,7 @@ module.exports = function generateCode(node, codegen) {
56
56
  context.meta.legacy ||
57
57
  context.isFlagSet("legacyWidgetAttrsWithoutBind") ||
58
58
  !context.isStatefulComponent ||
59
- isPreserved(node)
59
+ isPreserved(node),
60
60
  });
61
61
 
62
62
  var endTag;
@@ -64,7 +64,7 @@ module.exports = function generateCode(node, codegen) {
64
64
 
65
65
  if (!openTagOnly) {
66
66
  endTag = new EndTag({
67
- tagName: tagName
67
+ tagName: tagName,
68
68
  });
69
69
  }
70
70
 
@@ -81,7 +81,7 @@ module.exports = function generateCode(node, codegen) {
81
81
  [
82
82
  builder.concat(builder.literal("f_"), node.key),
83
83
  builder.identifier("component"),
84
- builder.literal(1)
84
+ builder.literal(1),
85
85
  ]
86
86
  )
87
87
  )
@@ -108,11 +108,11 @@ module.exports = function generateCode(node, codegen) {
108
108
  codegen.context.helper("propsForPreviousNode"),
109
109
  [
110
110
  builder.objectExpression(
111
- attributes.map(attr =>
111
+ attributes.map((attr) =>
112
112
  builder.property(builder.identifier(attr.name), attr.value)
113
113
  )
114
114
  ),
115
- builder.identifier("out")
115
+ builder.identifier("out"),
116
116
  ]
117
117
  );
118
118
  }
@@ -175,7 +175,7 @@ class HtmlElement extends Node {
175
175
  attributes: this._attributes,
176
176
  tagString: this.tagString,
177
177
  argument: this.argument,
178
- body: this.body
178
+ body: this.body,
179
179
  };
180
180
  }
181
181
 
@@ -45,7 +45,7 @@ function finalizeCreateArgs(createArgs, builder) {
45
45
  const SIMPLE_ATTRS = {
46
46
  class: true,
47
47
  style: true,
48
- id: true
48
+ id: true,
49
49
  };
50
50
 
51
51
  function isStaticProperties(properties) {
@@ -49,7 +49,7 @@ module.exports = function (node, codegen) {
49
49
 
50
50
  if (properties) {
51
51
  Object.keys(properties).forEach(
52
- key => (properties[key] = codegen.generateCode(properties[key]))
52
+ (key) => (properties[key] = codegen.generateCode(properties[key]))
53
53
  );
54
54
  }
55
55
 
@@ -100,7 +100,7 @@ module.exports = function (node, codegen) {
100
100
  isHtmlOnly,
101
101
  nextConstId,
102
102
  runtimeFlags,
103
- isAutoKeyed
103
+ isAutoKeyed,
104
104
  });
105
105
 
106
106
  if (isHtmlOnly) {
@@ -120,7 +120,7 @@ module.exports = function (node, codegen) {
120
120
  ),
121
121
  [
122
122
  builder.concat(builder.literal("f_"), node.key),
123
- builder.identifier("component")
123
+ builder.identifier("component"),
124
124
  ]
125
125
  )
126
126
  )
@@ -26,7 +26,7 @@ class If extends Node {
26
26
  // correctly.
27
27
  let previous = this;
28
28
  let whitespaceNodes = [];
29
- this.forEachNextSibling(curNode => {
29
+ this.forEachNextSibling((curNode) => {
30
30
  if (curNode.type === "Else") {
31
31
  curNode.detach();
32
32
  if (whitespaceNodes.length) {
@@ -74,7 +74,7 @@ class LogicalExpression extends Node {
74
74
  type: "LogicalExpression",
75
75
  left: this.left,
76
76
  operator: this.operator,
77
- right: this.right
77
+ right: this.right,
78
78
  };
79
79
  }
80
80
 
@@ -53,7 +53,7 @@ class MemberExpression extends Node {
53
53
  type: "MemberExpression",
54
54
  object: this.object,
55
55
  property: this.property,
56
- computed: this.computed
56
+ computed: this.computed,
57
57
  };
58
58
  }
59
59
 
@@ -66,7 +66,7 @@ class NewExpression extends Node {
66
66
  return {
67
67
  type: "NewExpression",
68
68
  callee: this.callee,
69
- args: this.args
69
+ args: this.args,
70
70
  };
71
71
  }
72
72
 
@@ -130,7 +130,7 @@ class Node {
130
130
 
131
131
  appendChildren(nodes) {
132
132
  ok(this.body, "Node does not support child nodes: " + this);
133
- nodes.forEach(node => {
133
+ nodes.forEach((node) => {
134
134
  this.body.appendChild(node);
135
135
  });
136
136
  }
@@ -288,7 +288,7 @@ class Node {
288
288
  get bodyText() {
289
289
  var bodyText = "";
290
290
 
291
- this.forEachChild(child => {
291
+ this.forEachChild((child) => {
292
292
  if (child.type === "Text") {
293
293
  var childText = child.argument;
294
294
  if (childText && childText.type === "Literal") {
@@ -361,7 +361,7 @@ class Node {
361
361
  var currentTextLiteral = null;
362
362
  var literalTextNodes = [];
363
363
 
364
- body.forEach(curChild => {
364
+ body.forEach((curChild) => {
365
365
  if (curChild.noOutput) {
366
366
  // Skip over AST nodes that produce no HTML output
367
367
  return;
@@ -426,7 +426,7 @@ class Node {
426
426
  literalTextNodes.forEach(trim);
427
427
  }
428
428
 
429
- literalTextNodes.forEach(textNode => {
429
+ literalTextNodes.forEach((textNode) => {
430
430
  if (textNode.argument.value === "") {
431
431
  textNode.detach();
432
432
  }
@@ -60,7 +60,7 @@ class ObjectExpression extends Node {
60
60
  }
61
61
 
62
62
  if (Array.isArray(props)) {
63
- props.forEach(prop => {
63
+ props.forEach((prop) => {
64
64
  this.addProperty(prop);
65
65
  });
66
66
  }
@@ -91,7 +91,7 @@ class ObjectExpression extends Node {
91
91
  toJSON() {
92
92
  return {
93
93
  type: "ObjectExpression",
94
- properties: this.properties
94
+ properties: this.properties,
95
95
  };
96
96
  }
97
97
 
@@ -51,7 +51,7 @@ class Property extends Node {
51
51
  return {
52
52
  type: "Property",
53
53
  key: this.key,
54
- value: this.value
54
+ value: this.value,
55
55
  };
56
56
  }
57
57
 
@@ -32,7 +32,7 @@ class SequenceExpression extends Node {
32
32
  toJSON() {
33
33
  return {
34
34
  type: "SequenceExpression",
35
- expressions: this.expressions
35
+ expressions: this.expressions,
36
36
  };
37
37
  }
38
38
 
@@ -56,7 +56,7 @@ class TemplateLiteral extends Node {
56
56
 
57
57
  function escapeQuasi(quasi, quote) {
58
58
  if (!quasi) return "";
59
- return quasi.replace(/["`\\\n\r\u2028\u2029]|\${/g, match => {
59
+ return quasi.replace(/["`\\\n\r\u2028\u2029]|\${/g, (match) => {
60
60
  switch (match) {
61
61
  case quote:
62
62
  case "${":
@@ -6,7 +6,7 @@ function createVarsArray(vars) {
6
6
  var varInit = vars[varName];
7
7
  return {
8
8
  id: varName,
9
- init: varInit
9
+ init: varInit,
10
10
  };
11
11
  });
12
12
  }
@@ -115,7 +115,7 @@ class TemplateRoot extends Node {
115
115
  context,
116
116
  templateVar,
117
117
  templateRendererMember,
118
- renderFunctionVar
118
+ renderFunctionVar,
119
119
  };
120
120
 
121
121
  assignRenderCode = this.generateAssignRenderCode(eventArgs);
@@ -152,7 +152,7 @@ class TemplateRoot extends Node {
152
152
  toJSON() {
153
153
  return {
154
154
  type: this.type,
155
- body: this.body
155
+ body: this.body,
156
156
  };
157
157
  }
158
158