Skip to content

Commit c36ee06

Browse files
committed
♻ Refactured iframe generator to support MPA components
1 parent e69a8f9 commit c36ee06

File tree

55 files changed

+27
-14
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+27
-14
lines changed

build/iframe-generator.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,32 @@ const componentsDir = path.join(cwd, "src", "framework", "components");
1919
.replace(/.*[\\\/]/, "")
2020
.toLowerCase()
2121
.trim();
22-
const p = component
22+
const spaHtml = await renderComponent(name, component);
23+
const spaDir = path.join(publicDir, "spa", name);
24+
if (!fs.existsSync(spaDir)) {
25+
await fs.promises.mkdir(spaDir, { recursive: true });
26+
}
27+
await fs.promises.writeFile(path.join(spaDir, "index.html"), spaHtml);
28+
}
29+
const mpaComponents = glob.sync(`${componentsDir}/**/static.html`);
30+
for (const component of mpaComponents) {
31+
const name = component
2332
.match(/.*[\\\/]/, "")[0]
33+
.replace(/[\\\/]$/, "")
34+
.replace(/.*[\\\/]/, "")
2435
.toLowerCase()
2536
.trim();
26-
const html = await renderComponent(name, p);
27-
const pDir = path.join(publicDir, name);
28-
if (!fs.existsSync(pDir)) {
29-
await fs.promises.mkdir(pDir);
37+
const mpaHtml = await renderComponent(name, component);
38+
const mpaDir = path.join(publicDir, "mpa", name);
39+
if (!fs.existsSync(mpaDir)) {
40+
await fs.promises.mkdir(mpaDir, { recursive: true });
3041
}
31-
await fs.promises.writeFile(path.join(pDir, "index.html"), html);
42+
await fs.promises.writeFile(path.join(mpaDir, "index.html"), mpaHtml);
3243
}
3344
})();
3445

3546
async function renderComponent(name, p) {
36-
const content = await fs.promises.readFile(path.join(p, "index.html"), { encoding: "utf-8" });
47+
const content = await fs.promises.readFile(p, { encoding: "utf-8" });
3748
return `<!DOCTYPE html>
3849
<html lang="en">
3950
<head>
@@ -59,7 +70,7 @@ async function renderComponent(name, p) {
5970
<script type="module" src="/js/${name}.js"></script>
6071
</head>
6172
<body>
62-
${content}
73+
${content.trim().length ? content : '<p>Coming soon.</p>'}
6374
</body>
6475
</html>
6576
`;

public/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ <h1 class="font-xl font-bold">Brixi UI</h1>
167167
}
168168
switcher.addEventListener('change', (e) => {
169169
if (e.detail.id === 'spa') {
170-
location.href = `/${location.pathname.replace(/.*\//, "")}`;
170+
location.href = `/spa/${location.pathname.replace(/.*\//, "")}`;
171171
} else {
172172
location.href = `/mpa/${location.pathname.replace(/.*\//, "")}`;
173173
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<p>Coming soon.</p>

src/framework/components/alert/static.html

Whitespace-only changes.

src/framework/components/badges/badge/static.html

Whitespace-only changes.

src/framework/components/badges/status-badge/static.html

Whitespace-only changes.

src/framework/components/breadcrumb-trail/static.html

Whitespace-only changes.

src/framework/components/buttons/button/static.html

Whitespace-only changes.

src/framework/components/buttons/download-button/static.html

Whitespace-only changes.

src/framework/components/buttons/group-button/static.html

Whitespace-only changes.

0 commit comments

Comments
 (0)