marko 4.26.5 → 4.28.0

Sign up to get free protection for your applications and to get access to all the features.
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