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
@@ -5,18 +5,18 @@ module.exports = function importTag(importIdentifier, context) {
5
5
  const builder = context.builder;
6
6
  const migrateImports = (context._migrateImports = context._migrateImports || {
7
7
  identifiers: {},
8
- paths: {}
8
+ paths: {},
9
9
  });
10
10
  const isImportedAsTag = importIdentifier[0] === "<";
11
11
 
12
12
  // Create a camelcased tagName identifier based off of the matched file name.
13
13
  // Replace any invalid JS chars (We don't need to worry about reserved words because of camelcase).
14
- const createTagName = fileName =>
14
+ const createTagName = (fileName) =>
15
15
  camelCase(fileName, {
16
- pascalCase: true
16
+ pascalCase: true,
17
17
  }).replace(/^[^$A-Z_]|[^0-9A-Z_$]/gi, "_");
18
18
 
19
- const getIdentifierName = importIdentifier => {
19
+ const getIdentifierName = (importIdentifier) => {
20
20
  let fileName;
21
21
  if (isImportedAsTag) fileName = importIdentifier.slice(1, -1);
22
22
  else {
@@ -44,7 +44,7 @@ module.exports = function importTag(importIdentifier, context) {
44
44
  } else if (node.type === "Scriptlet") {
45
45
  symbols.push(node.code);
46
46
  }
47
- }
47
+ },
48
48
  });
49
49
  walker.walk(context.root);
50
50
 
@@ -53,7 +53,7 @@ module.exports = function importTag(importIdentifier, context) {
53
53
 
54
54
  while (
55
55
  migrateImports.identifiers[identifier] ||
56
- symbols.some(symbol => symbol.includes(identifier))
56
+ symbols.some((symbol) => symbol.includes(identifier))
57
57
  ) {
58
58
  identifier = `${requestedTagName}_${i}`;
59
59
  i++;
@@ -8,60 +8,60 @@ var numberRegExp = /^-?(?:\d+|\d+\.\d*|\d*\.\d+|\d+\.\d+)$/;
8
8
  var tokenizer = require("../../../compiler/util/tokenizer").create([
9
9
  {
10
10
  name: "stringDouble",
11
- pattern: /"(?:[^"]|\\")*"/
11
+ pattern: /"(?:[^"]|\\")*"/,
12
12
  },
13
13
  {
14
14
  name: "stringSingle",
15
- pattern: /'(?:[^']|\\')*'/
15
+ pattern: /'(?:[^']|\\')*'/,
16
16
  },
17
17
  {
18
18
  name: "in",
19
- pattern: /\s+in\s+/
19
+ pattern: /\s+in\s+/,
20
20
  },
21
21
  {
22
22
  name: "from",
23
- pattern: /\s+from\s+/
23
+ pattern: /\s+from\s+/,
24
24
  },
25
25
  {
26
26
  name: "to",
27
- pattern: /\s+to\s+/
27
+ pattern: /\s+to\s+/,
28
28
  },
29
29
  {
30
30
  name: "step",
31
- pattern: /\s+step\s+/
31
+ pattern: /\s+step\s+/,
32
32
  },
33
33
  {
34
34
  name: "semicolon",
35
- pattern: /[;]/
35
+ pattern: /[;]/,
36
36
  },
37
37
  {
38
38
  name: "separator",
39
- pattern: /separator\s?=\s?/
39
+ pattern: /separator\s?=\s?/,
40
40
  },
41
41
  {
42
42
  name: "status-var",
43
- pattern: /status-var\s?=\s?/
43
+ pattern: /status-var\s?=\s?/,
44
44
  },
45
45
  {
46
46
  name: "iterator",
47
- pattern: /iterator\s?=\s?/
47
+ pattern: /iterator\s?=\s?/,
48
48
  },
49
49
  {
50
50
  name: "pipe",
51
- pattern: /\s+\|\s+/
51
+ pattern: /\s+\|\s+/,
52
52
  },
53
53
  {
54
54
  name: "groupOpen",
55
- pattern: /[{([]/
55
+ pattern: /[{([]/,
56
56
  },
57
57
  {
58
58
  name: "groupClose",
59
- pattern: /[})\]]/
59
+ pattern: /[})\]]/,
60
60
  },
61
61
  {
62
62
  name: "array",
63
- pattern: /array/
64
- }
63
+ pattern: /array/,
64
+ },
65
65
  ]);
66
66
 
67
67
  var inRegExp =
@@ -204,7 +204,7 @@ module.exports = function (str) {
204
204
  }
205
205
  }
206
206
 
207
- tokenizer.forEachToken(str, token => {
207
+ tokenizer.forEachToken(str, (token) => {
208
208
  switch (token.name) {
209
209
  case "groupOpen":
210
210
  depth++;
@@ -371,7 +371,7 @@ module.exports = function (str) {
371
371
  separator: separatorExpression,
372
372
  statusVarName: statusVarName,
373
373
  iterator: iteratorExpression,
374
- isArray: isArray
374
+ isArray: isArray,
375
375
  };
376
376
  } else if (loopType === "ForEachProp") {
377
377
  return {
@@ -380,7 +380,7 @@ module.exports = function (str) {
380
380
  valueVarName: valueVarName,
381
381
  in: inExpression,
382
382
  separator: separatorExpression,
383
- statusVarName: statusVarName
383
+ statusVarName: statusVarName,
384
384
  };
385
385
  } else if (loopType === "ForRange") {
386
386
  return {
@@ -388,7 +388,7 @@ module.exports = function (str) {
388
388
  varName: varName,
389
389
  from: fromExpression,
390
390
  to: toExpression,
391
- step: stepExpression
391
+ step: stepExpression,
392
392
  };
393
393
  } else if (loopType === "For") {
394
394
  if (forTest == null) {
@@ -400,7 +400,7 @@ module.exports = function (str) {
400
400
  loopType: loopType,
401
401
  init: forInit,
402
402
  test: forTest,
403
- update: forUpdate
403
+ update: forUpdate,
404
404
  };
405
405
  } else {
406
406
  throwError("Invalid for loop");
@@ -5,7 +5,7 @@ module.exports = function renderCallToDynamicTag(ast, context) {
5
5
  const args = ast.args;
6
6
  const callee = ast.callee;
7
7
  const argsLength = args.length;
8
- const outIndex = args.findIndex(arg => arg.name === "out");
8
+ const outIndex = args.findIndex((arg) => arg.name === "out");
9
9
  const calleeProperty = callee.property && callee.property.name;
10
10
 
11
11
  if (outIndex === -1) {
@@ -57,7 +57,7 @@ module.exports = function renderCallToDynamicTag(ast, context) {
57
57
  null,
58
58
  [builder.identifier("_"), builder.identifier("out")],
59
59
  [ast]
60
- )
60
+ ),
61
61
  });
62
62
  }
63
63
  }
@@ -87,18 +87,18 @@ function toAttributesOrSpread(val) {
87
87
 
88
88
  if (
89
89
  val.type === "ObjectExpression" &&
90
- val.properties.every(prop => !prop.computed)
90
+ val.properties.every((prop) => !prop.computed)
91
91
  ) {
92
- return val.properties.map(prop => ({
92
+ return val.properties.map((prop) => ({
93
93
  name: prop.literalKeyValue,
94
- value: prop.value
94
+ value: prop.value,
95
95
  }));
96
96
  }
97
97
 
98
98
  return [
99
99
  {
100
100
  value: val,
101
- spread: true
102
- }
101
+ spread: true,
102
+ },
103
103
  ];
104
104
  }
@@ -19,10 +19,6 @@ module.exports = function nodeFactory(elNode, context) {
19
19
  return elNode;
20
20
  }
21
21
 
22
- context.deprecate(
23
- 'The "<var>" tag is deprecated. Please use "$ <js_code>" for JavaScript in the template. See: https://github.com/marko-js/marko/wiki/Deprecation:-var,-assign,-invoke-tags'
24
- );
25
-
26
22
  if (
27
23
  firstChild &&
28
24
  firstChild.type === "Text" &&
@@ -39,7 +35,7 @@ module.exports = function nodeFactory(elNode, context) {
39
35
  lastChild.argument.value = lastChild.argument.value.trimRight();
40
36
  }
41
37
 
42
- const scriptlets = elNode.attributes.map(attr => {
38
+ const scriptlets = elNode.attributes.map((attr) => {
43
39
  const name = attr.name;
44
40
  const val = attr.rawValue;
45
41
 
@@ -55,7 +51,7 @@ module.exports = function nodeFactory(elNode, context) {
55
51
  return builder.scriptlet({
56
52
  value: `var ${
57
53
  val == null ? name : `${name} = ${printJS(attr.value, context)}`
58
- }`
54
+ }`,
59
55
  });
60
56
  });
61
57
 
@@ -63,7 +59,7 @@ module.exports = function nodeFactory(elNode, context) {
63
59
  return;
64
60
  }
65
61
 
66
- scriptlets.forEach(scriptlet => elNode.insertSiblingBefore(scriptlet));
67
- elNode.forEachChild(node => elNode.insertSiblingBefore(node));
62
+ scriptlets.forEach((scriptlet) => elNode.insertSiblingBefore(scriptlet));
63
+ elNode.forEachChild((node) => elNode.insertSiblingBefore(node));
68
64
  elNode.detach();
69
65
  };
package/src/express.js CHANGED
@@ -46,7 +46,7 @@ function patchResponse(response) {
46
46
 
47
47
  if (data) {
48
48
  data = Object.assign(data, {
49
- $global: Object.assign($global, data.$global)
49
+ $global: Object.assign($global, data.$global),
50
50
  });
51
51
  } else {
52
52
  data = { $global };
package/src/hot-reload.js CHANGED
@@ -63,7 +63,7 @@ exports.enable = function (options) {
63
63
  hotReloadData = template[HOT_RELOAD_KEY] = {
64
64
  modifiedId: modifiedId,
65
65
  latest: template,
66
- originals: {}
66
+ originals: {},
67
67
  };
68
68
  }
69
69
 
@@ -118,7 +118,7 @@ exports.enable = function (options) {
118
118
  originalTemplate,
119
119
  "_"
120
120
  );
121
- }
121
+ },
122
122
  });
123
123
 
124
124
  return originalTemplate;
@@ -192,7 +192,7 @@ exports.handleFileModified = function (path, options) {
192
192
  handleFileModified();
193
193
  // If we taglib was modified then uncache *all* templates so that they will
194
194
  // all be reloaded
195
- Object.keys(require.cache).forEach(filename => {
195
+ Object.keys(require.cache).forEach((filename) => {
196
196
  if (filename.endsWith(".marko") || filename.endsWith(".marko.js")) {
197
197
  delete require.cache[filename];
198
198
  }
@@ -140,7 +140,7 @@ function install(options) {
140
140
  requireExtensions[MARKO_EXTENSIONS] ||
141
141
  (requireExtensions[MARKO_EXTENSIONS] = []);
142
142
 
143
- extensions.forEach(extension => {
143
+ extensions.forEach((extension) => {
144
144
  extension = normalizeExtension(extension);
145
145
  requireExtensions[extension] = markoRequireExtension;
146
146
  requireExtensions[MARKO_EXTENSIONS].push(extension);
@@ -78,47 +78,18 @@ module.exports = function defineWidget(def, renderer) {
78
78
  },
79
79
  set: function (newState) {
80
80
  newState = newState || {};
81
- // eslint-disable-next-line no-constant-condition
82
- if ("MARKO_DEBUG") {
83
- if (
84
- Object.keys(newState).sort().join("") !==
85
- Object.keys((this.___state && this.___state.___raw) || {})
86
- .sort()
87
- .join("")
88
- )
89
- complain(
90
- "'widget.state = newState' has changed from merging the newState to replacing the old state."
91
- );
92
- }
93
-
94
81
  this.setState(newState);
95
82
  }
96
83
  });
97
84
 
98
85
  Object.defineProperty(proto, "__document", {
99
86
  get: function () {
100
- // eslint-disable-next-line no-constant-condition
101
- if ("MARKO_DEBUG") {
102
- complain("__document is deprecated");
103
- }
104
87
  return this.___host;
105
88
  }
106
89
  });
107
90
 
108
91
  Object.defineProperty(proto, "el", {
109
92
  get: function () {
110
- // eslint-disable-next-line no-constant-condition
111
- if ("MARKO_DEBUG") {
112
- if (
113
- this.___currentLegacyBindEl !==
114
- (this.___rootNode && this.___rootNode.firstChild)
115
- ) {
116
- complain(
117
- "this.el no longer returns the `w-bind` element and instead returns the first node in the template. Assign a key to the w-bind element and use getEl(key) instead."
118
- );
119
- }
120
- }
121
-
122
93
  return this.___currentLegacyBindEl;
123
94
  }
124
95
  });
@@ -206,19 +177,7 @@ module.exports = function defineWidget(def, renderer) {
206
177
  this.___legacyInit && this.___legacyInit(this.widgetConfig || {});
207
178
  this.___legacyOnRender && this.___legacyOnRender({ firstRender: true });
208
179
  this.___legacyRender = legacyRender;
209
-
210
- // eslint-disable-next-line no-constant-condition
211
- if ("MARKO_DEBUG") {
212
- Object.defineProperty(el, "__widget", {
213
- configurable: true,
214
- get: function () {
215
- complain("__widget is deprecated");
216
- return self;
217
- }
218
- });
219
- } else {
220
- el.__widget = this;
221
- }
180
+ el.__widget = this;
222
181
  }
223
182
  } else if (el) {
224
183
  if (prevEl) {
@@ -300,17 +259,7 @@ module.exports = function defineWidget(def, renderer) {
300
259
  Component.renderSync = renderer.renderSync;
301
260
  }
302
261
 
303
- // eslint-disable-next-line no-constant-condition
304
- if ("MARKO_DEBUG") {
305
- Object.defineProperty(Component, "_isWidget", {
306
- get: function () {
307
- complain("_isWidget is deprecated");
308
- return true;
309
- }
310
- });
311
- } else {
312
- Component._isWidget = true;
313
- }
262
+ Component._isWidget = true;
314
263
 
315
264
  return Component;
316
265
  };
@@ -3,8 +3,6 @@ var loader = require("@internal/loader");
3
3
  var getComponentForEl =
4
4
  require("@internal/components-util").___getComponentForEl;
5
5
 
6
- var complain = "MARKO_DEBUG" && require("complain");
7
-
8
6
  // expose legacy
9
7
  require("@internal/components-registry").___legacy = exports;
10
8
  exports.load = function (typeName) {
@@ -55,17 +53,9 @@ if (Widget) {
55
53
  var RenderResult = require("../../../runtime/RenderResult");
56
54
 
57
55
  RenderResult.prototype.getWidget = function () {
58
- // eslint-disable-next-line no-constant-condition
59
- if ("MARKO_DEBUG") {
60
- complain("getWidget is deprecated. use getComponent instead.");
61
- }
62
56
  return this.getWidgets()[0];
63
57
  };
64
58
  RenderResult.prototype.getWidgets = function () {
65
- // eslint-disable-next-line no-constant-condition
66
- if ("MARKO_DEBUG") {
67
- complain("getWidgets is deprecated. use getComponents instead.");
68
- }
69
59
  return RenderResult.prototype.getComponents
70
60
  .apply(this, arguments)
71
61
  .filter(function (component) {
@@ -29,6 +29,8 @@ var deferredDefs;
29
29
  var pendingDefs;
30
30
 
31
31
  function register(type, def) {
32
+ if (def.default) def = def.default;
33
+
32
34
  var pendingForType;
33
35
  if (pendingDefs) {
34
36
  pendingForType = pendingDefs[type];
@@ -1,5 +1,4 @@
1
1
  var domInsert = require("./dom-insert");
2
- var complain = "MARKO_DEBUG" && require("complain");
3
2
 
4
3
  function getRootNode(el) {
5
4
  var cur = el;
@@ -66,31 +65,19 @@ var proto = (RenderResult.prototype = {
66
65
  toString: function () {
67
66
  return this.___out.toString();
68
67
  },
69
- document: typeof document === "object" && document
68
+ document: typeof document === "object" && document,
70
69
  });
71
70
 
72
71
  Object.defineProperty(proto, "html", {
73
72
  get: function () {
74
- // eslint-disable-next-line no-constant-condition
75
- if ("MARKO_DEBUG") {
76
- complain(
77
- 'The "html" property is deprecated. Please use "toString" instead.'
78
- );
79
- }
80
73
  return this.toString();
81
- }
74
+ },
82
75
  });
83
76
 
84
77
  Object.defineProperty(proto, "context", {
85
78
  get: function () {
86
- // eslint-disable-next-line no-constant-condition
87
- if ("MARKO_DEBUG") {
88
- complain(
89
- 'The "context" property is deprecated. Please use "out" instead.'
90
- );
91
- }
92
79
  return this.___out;
93
- }
80
+ },
94
81
  });
95
82
 
96
83
  // Add all of the following DOM methods to Component.prototype:
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  /* jshint newcap:false */
3
3
 
4
- var complain = "MARKO_DEBUG" && require("complain");
5
-
6
4
  var domInsert = require("../dom-insert");
7
5
  var defaultCreateOut = require("../createOut");
8
6
  var getComponentsContext =
@@ -27,7 +25,7 @@ var slice = Array.prototype.slice;
27
25
 
28
26
  var COMPONENT_SUBSCRIBE_TO_OPTIONS;
29
27
  var NON_COMPONENT_SUBSCRIBE_TO_OPTIONS = {
30
- addDestroyListener: false
28
+ addDestroyListener: false,
31
29
  };
32
30
 
33
31
  var emit = EventEmitter.prototype.emit;
@@ -254,13 +252,6 @@ Component.prototype = componentProto = {
254
252
  var keyedComponentRoot = this.___keyedElements[resolvedKey];
255
253
 
256
254
  if (keyedComponentRoot) {
257
- // eslint-disable-next-line no-constant-condition
258
- if ("MARKO_DEBUG") {
259
- complain(
260
- "Accessing the elements of a child component using 'component.getEl' is deprecated."
261
- );
262
- }
263
-
264
255
  return keyedComponentRoot.nodeType === 1 /** Node.ELEMENT_NODE */
265
256
  ? keyedComponentRoot
266
257
  : walkFragments(keyedComponentRoot);
@@ -287,12 +278,6 @@ Component.prototype = componentProto = {
287
278
  getComponent: function (key, index) {
288
279
  var rootNode = this.___keyedElements[resolveKeyHelper(key, index)];
289
280
  if (/\[\]$/.test(key)) {
290
- // eslint-disable-next-line no-constant-condition
291
- if ("MARKO_DEBUG") {
292
- complain(
293
- "A repeated key[] was passed to getComponent. Use a non-repeating key if there is only one of these components."
294
- );
295
- }
296
281
  rootNode = rootNode && rootNode[Object.keys(rootNode)[0]];
297
282
  }
298
283
  return rootNode && componentsByDOMNode.get(rootNode);
@@ -604,12 +589,6 @@ Component.prototype = componentProto = {
604
589
  },
605
590
 
606
591
  get els() {
607
- // eslint-disable-next-line no-constant-condition
608
- if ("MARKO_DEBUG") {
609
- complain(
610
- 'The "this.els" attribute is deprecated. Please use "this.getEls(key)" instead.'
611
- );
612
- }
613
592
  return (this.___rootNode ? this.___rootNode.nodes : []).filter(function (
614
593
  el
615
594
  ) {
@@ -641,7 +620,7 @@ Component.prototype = componentProto = {
641
620
  ___emitDestroy() {
642
621
  this.onDestroy && this.onDestroy();
643
622
  this.___emit("destroy");
644
- }
623
+ },
645
624
  };
646
625
 
647
626
  componentProto.elId = componentProto.getElId;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var complain = "MARKO_DEBUG" && require("complain");
3
2
  var w10Noop = require("warp10/constants").NOOP;
4
3
  var componentUtil = require("@internal/components-util");
5
4
  var attachBubblingEvent = componentUtil.___attachBubblingEvent;
@@ -53,11 +52,6 @@ ComponentDef.prototype = {
53
52
  return id;
54
53
  } else {
55
54
  if (typeof nestedId !== "string") {
56
- // eslint-disable-next-line no-constant-condition
57
- if ("MARKO_DEBUG") {
58
- complain("Using non strings as keys is deprecated.");
59
- }
60
-
61
55
  nestedId = String(nestedId);
62
56
  }
63
57
 
@@ -83,7 +77,7 @@ ComponentDef.prototype = {
83
77
 
84
78
  get ___type() {
85
79
  return this.___component.___type;
86
- }
80
+ },
87
81
  };
88
82
 
89
83
  ComponentDef.prototype.nk = ComponentDef.prototype.___nextKey;
@@ -162,7 +156,7 @@ ComponentDef.___deserialize = function (o, types, global, registry) {
162
156
  id: id,
163
157
  ___component: component,
164
158
  ___domEvents: extra.d,
165
- ___flags: extra.f || 0
159
+ ___flags: extra.f || 0,
166
160
  };
167
161
  };
168
162
 
@@ -47,7 +47,7 @@ ComponentsContext.prototype = {
47
47
  this.___out.global.___components = undefined;
48
48
 
49
49
  return componentDefs;
50
- }
50
+ },
51
51
  };
52
52
 
53
53
  function getComponentsContext(out) {
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var complain = "MARKO_DEBUG" && require("complain");
3
2
 
4
3
  class ServerComponent {
5
4
  constructor(id, input, out, typeName, customEvents, scope) {
@@ -45,11 +44,6 @@ class ServerComponent {
45
44
  return id;
46
45
  } else {
47
46
  if (typeof nestedId !== "string") {
48
- // eslint-disable-next-line no-constant-condition
49
- if ("MARKO_DEBUG") {
50
- complain("Using non strings as keys is deprecated.");
51
- }
52
-
53
47
  nestedId = String(nestedId);
54
48
  }
55
49
 
@@ -9,7 +9,7 @@ function ensure(state, propertyName) {
9
9
  },
10
10
  set: function (value) {
11
11
  this.___set(propertyName, value, false /* ensure:false */);
12
- }
12
+ },
13
13
  });
14
14
  }
15
15
  }
@@ -99,7 +99,7 @@ State.prototype = {
99
99
  },
100
100
  toJSON: function () {
101
101
  return this.___raw;
102
- }
102
+ },
103
103
  };
104
104
 
105
105
  module.exports = State;
@@ -48,7 +48,7 @@ function handleNodeDetach(node) {
48
48
  if (parentNode) {
49
49
  parentNode.removeChild(node);
50
50
  }
51
- }
51
+ },
52
52
  });
53
53
 
54
54
  return allowDetach;
@@ -6,5 +6,5 @@ module.exports = {
6
6
  ___componentByDOMNode: new WeakMap(),
7
7
  ___detachedByDOMNode: new WeakMap(),
8
8
  ___keyByDOMNode: new WeakMap(),
9
- ___ssrKeyedElementsByComponentId: {}
9
+ ___ssrKeyedElementsByComponentId: {},
10
10
  };
@@ -8,11 +8,6 @@ var defineRenderer;
8
8
  var defineWidget;
9
9
 
10
10
  module.exports = function defineComponent(def) {
11
- // eslint-disable-next-line no-constant-condition
12
- if ("MARKO_DEBUG") {
13
- require("complain")("defineComponent is deprecated");
14
- }
15
-
16
11
  if (def.___isComponent) {
17
12
  return def;
18
13
  }
@@ -1,4 +1,3 @@
1
- var complain = "MARKO_DEBUG" && require("complain");
2
1
  var makeRenderable = require("../../renderable");
3
2
  var getComponentsContext =
4
3
  require("../ComponentsContext").___getComponentsContext;
@@ -10,11 +9,6 @@ var resolveComponentKey = modernRenderer.___resolveComponentKey;
10
9
  module.exports = function defineRenderer(renderingLogic) {
11
10
  var renderer = renderingLogic.renderer;
12
11
 
13
- // eslint-disable-next-line no-constant-condition
14
- if ("MARKO_DEBUG") {
15
- require("complain")("defineRenderer is deprecated");
16
- }
17
-
18
12
  if (renderer && renderer.___isRenderer) {
19
13
  return renderer;
20
14
  }
@@ -128,16 +122,6 @@ module.exports = function defineRenderer(renderingLogic) {
128
122
  // widget config will be serialized.
129
123
  widgetConfig = getWidgetConfig(newProps, out);
130
124
  }
131
- // eslint-disable-next-line no-constant-condition
132
- if ("MARKO_DEBUG") {
133
- if (widgetState && "widgetState" in templateData) {
134
- complain("Passing widgetState as input is deprecated.");
135
- }
136
-
137
- if (widgetConfig && "widgetConfig" in templateData) {
138
- complain("Passing widgetConfig as input is deprecated.");
139
- }
140
- }
141
125
 
142
126
  templateData.widgetProps = newProps;
143
127
  widgetBody && (templateData.renderBody = widgetBody);