@marko/translator-default 5.32.2 → 5.32.3

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
@@ -72,10 +72,6 @@ const analyze = exports.analyze = {
72
72
  (0, _babelUtils.resolveRelativePath)(file, filename) :
73
73
  filename
74
74
  );
75
-
76
- meta.imports = program.node.body.
77
- filter((child) => _compiler.types.isImportDeclaration(child)).
78
- map((child) => child.source.value);
79
75
  }
80
76
  },
81
77
  MarkoTag(tag) {
@@ -44,13 +44,10 @@ function _default(path, isNullable) {
44
44
  const childProgram = childFile?.ast.program;
45
45
 
46
46
  if (childProgram?.extra?.___featureType === "tags") {
47
- (0, _babelUtils.importDefault)(
48
- file,
49
- `marko/src/runtime/helpers/tags-compat-${
50
- markoOpts.output === "html" ? "html" : "dom"
51
- }.js`,
52
- "marko_tags_compat"
53
- );
47
+ const compatRuntimeFile = `marko/src/runtime/helpers/tags-compat/${
48
+ markoOpts.output === "html" ? "html" : "dom"
49
+ }${markoOpts.optimize ? "" : "-debug"}.${markoOpts.modules === "esm" ? "mjs" : "js"}`;
50
+ (0, _babelUtils.importDefault)(file, compatRuntimeFile);
54
51
  path.set("name", (0, _babelUtils.importDefault)(file, relativePath, path.node.name.value));
55
52
  return (0, _dynamicTag.default)(path);
56
53
  } else if (relativePath) {
@@ -11,23 +11,25 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));var _default
11
11
  (entryFile, isHydrate) => {
12
12
  const { resolveVirtualDependency, hydrateIncludeImports, hydrateInit } =
13
13
  entryFile.markoOpts;
14
- const hydratedFiles = new Set();
15
14
  const program = entryFile.path;
16
15
  const shouldIncludeImport = toTestFn(hydrateIncludeImports);
16
+ const resolvedDeps = new Set();
17
+ const body = [];
17
18
 
18
19
  if (!isHydrate) {
19
- addBrowserDeps(entryFile);
20
+ scanBrowserDeps(entryFile);
21
+ if (body.length) {
22
+ program.node.body = body.concat(program.node.body);
23
+ }
20
24
  return;
21
25
  }
22
26
 
27
+ const hydratedTemplates = new Set();
23
28
  const watchFiles = new Set();
24
29
  let hasComponents = false;
25
30
  let splitComponentIndex = 0;
26
- program.set("body", []);
27
- program.skip();
28
31
 
29
- addHydrateDeps(entryFile);
30
- entryFile.metadata.marko.watchFiles = Array.from(watchFiles);
32
+ scanHydrateDeps(entryFile);
31
33
 
32
34
  if (hasComponents) {
33
35
  const initId = _compiler.types.identifier("init");
@@ -40,15 +42,11 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));var _default
40
42
  );
41
43
  }
42
44
 
43
- if (hydrateInit) {
44
- markoComponentsImport.specifiers.push(_compiler.types.importSpecifier(initId, initId));
45
- }
46
-
47
- program.unshiftContainer("body", markoComponentsImport);
45
+ body.unshift(markoComponentsImport);
48
46
 
49
47
  if (hydrateInit) {
50
- program.pushContainer(
51
- "body",
48
+ markoComponentsImport.specifiers.push(_compiler.types.importSpecifier(initId, initId));
49
+ body.push(
52
50
  _compiler.types.expressionStatement(
53
51
  _compiler.types.callExpression(
54
52
  initId,
@@ -61,19 +59,23 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));var _default
61
59
  }
62
60
  }
63
61
 
64
- function addHydrateDeps(file) {
62
+ entryFile.metadata.marko.watchFiles = Array.from(watchFiles);
63
+ program.node.body = body;
64
+ program.skip();
65
+
66
+ function scanHydrateDeps(file) {
65
67
  const meta = file.metadata.marko;
66
68
  const resolved = (0, _babelUtils.resolveRelativePath)(entryFile, file.opts.filename);
67
- if (hydratedFiles.has(resolved)) return;
69
+ if (hydratedTemplates.has(resolved)) return;
68
70
 
69
- hydratedFiles.add(resolved);
71
+ hydratedTemplates.add(resolved);
70
72
 
71
73
  if (meta.component) {
72
74
  hasComponents = true;
73
75
 
74
76
  if (_path.default.basename(meta.component) === _path.default.basename(file.opts.filename)) {
75
77
  // Stateful component.
76
- program.pushContainer("body", importPath(resolved));
78
+ addDep(resolved);
77
79
  return;
78
80
  }
79
81
  }
@@ -84,25 +86,28 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));var _default
84
86
  watchFiles.add(watchFile);
85
87
  }
86
88
 
87
- addBrowserDeps(file);
89
+ scanBrowserDeps(file);
88
90
 
89
- for (const imported of meta.imports) {
90
- if (shouldIncludeImport(imported)) {
91
- program.pushContainer("body", importPath(resolvePath(file, imported)));
91
+ for (const child of file.path.node.body) {
92
+ if (_compiler.types.isImportDeclaration(child)) {
93
+ const { value } = child.source;
94
+ if (shouldIncludeImport(value)) {
95
+ addDep(resolvePath(file, value));
96
+ }
92
97
  }
93
98
  }
94
99
 
95
100
  for (const tag of meta.tags) {
96
101
  if (tag.endsWith(".marko")) {
97
- if (!hydratedFiles.has(resolvePath(file, tag))) {
98
- addHydrateDeps((0, _babelUtils.loadFileForImport)(file, tag));
102
+ if (!hydratedTemplates.has(resolvePath(file, tag))) {
103
+ scanHydrateDeps((0, _babelUtils.loadFileForImport)(file, tag));
99
104
  }
100
105
  } else {
101
106
  const importedTemplates = tryGetTemplateImports(file, tag);
102
107
  if (importedTemplates) {
103
108
  for (const templateFile of importedTemplates) {
104
- if (!hydratedFiles.has(resolvePath(file, templateFile))) {
105
- addHydrateDeps((0, _babelUtils.loadFileForImport)(file, templateFile));
109
+ if (!hydratedTemplates.has(resolvePath(file, templateFile))) {
110
+ scanHydrateDeps((0, _babelUtils.loadFileForImport)(file, templateFile));
106
111
  }
107
112
  }
108
113
  }
@@ -120,9 +125,8 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));var _default
120
125
  splitComponentImport.specifiers.push(
121
126
  _compiler.types.importDefaultSpecifier(splitComponentId)
122
127
  );
123
- program.pushContainer("body", splitComponentImport);
124
- program.pushContainer(
125
- "body",
128
+ body.push(
129
+ splitComponentImport,
126
130
  _compiler.types.expressionStatement(
127
131
  _compiler.types.callExpression(_compiler.types.identifier("register"), [
128
132
  _compiler.types.stringLiteral(meta.id),
@@ -133,7 +137,7 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));var _default
133
137
  }
134
138
  }
135
139
 
136
- function addBrowserDeps(file) {
140
+ function scanBrowserDeps(file) {
137
141
  const { filename, sourceMaps } = file.opts;
138
142
  let s;
139
143
 
@@ -174,10 +178,16 @@ var _resolveFrom = _interopRequireDefault(require("resolve-from"));var _default
174
178
  continue;
175
179
  }
176
180
 
177
- program.pushContainer("body", importPath(resolvePath(file, dep)));
181
+ addDep(resolvePath(file, dep));
178
182
  }
179
183
  }
180
184
 
185
+ function addDep(resolved) {
186
+ if (resolvedDeps.has(resolved)) return;
187
+ resolvedDeps.add(resolved);
188
+ body.push(importPath(resolved));
189
+ }
190
+
181
191
  function resolvePath(file, req) {
182
192
  return file === entryFile ?
183
193
  (0, _babelUtils.resolveRelativePath)(file, req) :
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marko/translator-default",
3
- "version": "5.32.2",
3
+ "version": "5.32.3",
4
4
  "description": "Translates Marko templates to the default Marko runtime.",
5
5
  "keywords": [
6
6
  "babel",
@@ -28,14 +28,14 @@
28
28
  "build": "babel ./src --out-dir ./dist --copy-files --config-file ../../babel.config.js --env-name=production"
29
29
  },
30
30
  "dependencies": {
31
- "@babel/runtime": "^7.23.9",
31
+ "@babel/runtime": "^7.24.0",
32
32
  "@marko/babel-utils": "^6.4.1",
33
- "magic-string": "^0.30.6",
33
+ "magic-string": "^0.30.8",
34
34
  "self-closing-tags": "^1.0.1"
35
35
  },
36
36
  "devDependencies": {
37
- "@marko/compiler": "^5.35.3",
38
- "marko": "^5.33.1"
37
+ "@marko/compiler": "^5.35.4",
38
+ "marko": "^5.33.4"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@marko/compiler": "^5.16.1",