Skip to content

Commit

Permalink
refactor: hoist hydrate child visitor logic
Browse files Browse the repository at this point in the history
  • Loading branch information
DylanPiercey committed Mar 11, 2024
1 parent f5d9a3e commit 858a23b
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 6 deletions.
13 changes: 10 additions & 3 deletions packages/translator-default/src/util/add-dependencies.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,14 @@ export default (entryFile, isHydrate) => {
visitedFiles.add(resolved);
const file = loadFileForImport(entryFile, resolved);
if (file) {
entryBuilder.visit(file, entryFile, visitChild);
entryBuilder.visit(file, entryFile, (id) =>
visitChild(
resolveRelativePath(
entryFile,
path.join(file.opts.filename, "..", id),
),
),
);
}
}
});
Expand Down Expand Up @@ -130,12 +137,12 @@ export const entryBuilder = {

for (const tag of fileMeta.tags) {
if (tag.endsWith(".marko")) {
visitChild(resolveRelativePath(entryFile, tag));
visitChild(tag);
} else {
const importedTemplates = tryGetTemplateImports(file, tag);
if (importedTemplates) {
for (const templateFile of importedTemplates) {
visitChild(resolveRelativePath(entryFile, templateFile));
visitChild(templateFile);
}
}
}
Expand Down
9 changes: 8 additions & 1 deletion packages/translator-interop/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,14 @@ function patchTranslateProgram(visitor: t.Visitor) {
visitedFiles.add(resolved);
const file = loadFileForImport(entryFile, resolved);
if (file) {
entryBuilder.visit(file, entryFile, visitChild);
entryBuilder.visit(file, entryFile, (id) =>
visitChild(
resolveRelativePath(
entryFile,
path.join(file.opts.filename as string, "..", id),
),
),
);
}
}
});
Expand Down
2 changes: 1 addition & 1 deletion packages/translator-tags/src/util/entry-builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export default {
false;

for (const tag of analyzedTags || []) {
visitChild(resolveRelativePath(entryFile, tag));
visitChild(tag);
}
},
};
10 changes: 9 additions & 1 deletion packages/translator-tags/src/visitors/program/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import path from "path";
import { loadFileForImport, resolveRelativePath } from "@marko/babel-utils";
import { types as t } from "@marko/compiler";
import entryBuilder from "../../util/entry-builder";
Expand Down Expand Up @@ -65,7 +66,14 @@ export default {
visitedFiles.add(resolved);
const file = loadFileForImport(entryFile, resolved);
if (file) {
entryBuilder.visit(file, entryFile, visitChild);
entryBuilder.visit(file, entryFile, (id) =>
visitChild(
resolveRelativePath(
entryFile,
path.join(file.opts.filename as string, "..", id),
),
),
);
}
}
});
Expand Down

0 comments on commit 858a23b

Please sign in to comment.