@marko/translator-default 5.32.16 → 5.33.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.
package/dist/index.js CHANGED
@@ -49,8 +49,8 @@ const analyze = exports.analyze = {
49
49
  exit(program) {
50
50
  const { file } = program.hub;
51
51
  const meta = file.metadata.marko;
52
- const { styleFile, packageFile, componentBrowserFile } =
53
- (0, _getComponentFiles.default)(program);
52
+ const componentFiles = (0, _getComponentFiles.default)(program);
53
+ const { styleFile, packageFile, componentBrowserFile } = componentFiles;
54
54
 
55
55
  if (packageFile) {
56
56
  meta.deps.unshift(`package: ${packageFile}`);
@@ -62,8 +62,16 @@ const analyze = exports.analyze = {
62
62
 
63
63
  if (meta.hasComponentBrowser) {
64
64
  meta.component = componentBrowserFile;
65
- } else if (meta.hasComponent || meta.hasStatefulTagParams) {
65
+ } else if (
66
+ meta.hasComponent ||
67
+ meta.hasStatefulTagParams ||
68
+ meta.hasFunctionEventHandlers)
69
+ {
66
70
  meta.component = file.opts.filename;
71
+ } else if (meta.hasStringEventHandlers) {
72
+ meta.component = componentFiles.componentBrowserFile =
73
+ "marko/src/runtime/helpers/empty-component.js";
74
+ meta.hasComponentBrowser = true;
67
75
  }
68
76
 
69
77
  meta.component =
@@ -114,6 +122,26 @@ const analyze = exports.analyze = {
114
122
  }
115
123
  }
116
124
 
125
+ if (!meta.hasFunctionEventHandlers || !meta.hasStringEventHandlers) {
126
+ for (const attr of tag.node.attributes) {
127
+ if (
128
+ _compiler.types.isMarkoAttribute(attr) &&
129
+ attr.arguments &&
130
+ /^on[-A-Z]/.test(attr.name))
131
+ {
132
+ if (
133
+ attr.arguments.length >= 1 &&
134
+ attr.arguments[0].type === "StringLiteral")
135
+ {
136
+ meta.hasStringEventHandlers = true;
137
+ } else {
138
+ meta.hasFunctionEventHandlers = true;
139
+ }
140
+ break;
141
+ }
142
+ }
143
+ }
144
+
117
145
  if (
118
146
  meta.hasStatefulTagParams ||
119
147
  (0, _babelUtils.isNativeTag)(tag) ||
@@ -138,6 +166,7 @@ const analyze = exports.analyze = {
138
166
  meta.hasStatefulTagParams =
139
167
  childMeta && (
140
168
  childMeta.hasStatefulTagParams ||
169
+ childMeta.hasFunctionEventHandlers ||
141
170
  childMeta.hasComponent && !childMeta.hasComponentBrowser);
142
171
  },
143
172
  ImportDeclaration: {
@@ -91,7 +91,8 @@ function _default(path, isNullable) {
91
91
 
92
92
  if (isHTML) {
93
93
  if (
94
- !meta.hasStatefulTagParams && (
94
+ !meta.hasStatefulTagParams &&
95
+ !meta.hasFunctionEventHandlers && (
95
96
  meta.hasComponentBrowser || !meta.hasComponent) ||
96
97
  isPreserved(path))
97
98
  {
@@ -1,7 +1,7 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.default = getComponentFiles;var _path = _interopRequireDefault(require("path"));
2
2
  var _escapeRegexp = require("./escape-regexp");
3
3
 
4
- const COMPONENT_FILES_KEY = Symbol();
4
+ const COMPONENT_FILES_KEY = "___marko_component_files___";
5
5
 
6
6
  function getComponentFiles({ hub: { file } }) {
7
7
  const meta = file.metadata.marko;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marko/translator-default",
3
- "version": "5.32.16",
3
+ "version": "5.33.0",
4
4
  "description": "Translates Marko templates to the default Marko runtime.",
5
5
  "keywords": [
6
6
  "babel",
@@ -34,8 +34,8 @@
34
34
  "self-closing-tags": "^1.0.1"
35
35
  },
36
36
  "devDependencies": {
37
- "@marko/compiler": "^5.35.14",
38
- "marko": "^5.33.19"
37
+ "@marko/compiler": "^5.36.0",
38
+ "marko": "^5.34.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@marko/compiler": "^5.16.1",