Skip to content

Commit 2d1cfeb

Browse files
committed
Removed SSG
1 parent 23e9166 commit 2d1cfeb

12 files changed

Lines changed: 45 additions & 268 deletions

File tree

.gitignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,4 @@ openapi.json
1515
# Changelog maintained in apps/docs/src/data/changelog.ts only
1616
**/CHANGELOG.md
1717

18-
webi-bot.js
19-
.vite-ssg-temp
18+
webi-bot.js

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ The docs site is a custom Vue app that pulls API docs from the SDK via a custom
3535
# Dev server — http://localhost:3333
3636
pnpm run docs:dev
3737

38-
# Generate docs JSON + build static site
38+
# Generate docs JSON + build the site
3939
pnpm run docs:build
4040

4141
# Preview the production build

apps/docs/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"type": "module",
77
"scripts": {
88
"dev": "vite --port 3333",
9-
"build": "vue-tsc -b && vite-ssg build",
9+
"build": "vue-tsc -b && vite build",
1010
"preview": "vite preview --port 3333",
1111
"lint": "eslint src --max-warnings 0 --ext .ts,.tsx,.vue --config ../../eslint.config.js",
1212
"lint:fix": "eslint src --fix --ext .ts,.tsx,.vue --config ../../eslint.config.js"
@@ -27,7 +27,6 @@
2727
"beasties": "^0.4.1",
2828
"typescript": "^5.6.0",
2929
"vite": "^5.0.0",
30-
"vite-ssg": "^28.3.0",
3130
"vue-tsc": "^2.0.0"
3231
}
33-
}
32+
}

apps/docs/public/docs/latest/main.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"meta": {
33
"generator": "fluxer-docgen",
44
"version": "1",
5-
"date": 1771464068532
5+
"date": 1771466540218
66
},
77
"package": "@fluxerjs/core",
88
"version": "1.1.8",

apps/docs/public/docs/v1.1.8/main.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"meta": {
33
"generator": "fluxer-docgen",
44
"version": "1",
5-
"date": 1771464068532
5+
"date": 1771466540218
66
},
77
"package": "@fluxerjs/core",
88
"version": "1.1.8",

apps/docs/src/main.ts

Lines changed: 14 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { ViteSSG } from 'vite-ssg';
1+
import { createApp } from 'vue';
2+
import { createRouter, createWebHistory } from 'vue-router';
23
import { createPinia } from 'pinia';
34
import App from './App.vue';
45
import { routes } from './router';
@@ -9,45 +10,18 @@ import 'prismjs/components/prism-javascript';
910
import 'prismjs/components/prism-bash';
1011
import 'prismjs/components/prism-typescript';
1112

12-
export const createApp = ViteSSG(
13-
App,
14-
{ routes: routes as import('vue-router').RouteRecordRaw[] },
15-
({ app, router, initialState, isClient }) => {
16-
const pinia = createPinia();
17-
app.use(pinia);
13+
const app = createApp(App);
14+
const pinia = createPinia();
15+
const router = createRouter({
16+
history: createWebHistory(import.meta.env.BASE_URL || '/'),
17+
routes: routes as import('vue-router').RouteRecordRaw[],
18+
});
1819

19-
if (import.meta.env.SSR) {
20-
initialState.pinia = pinia.state.value;
21-
} else {
22-
pinia.state.value = initialState.pinia ?? {};
23-
}
20+
app.use(pinia);
21+
app.use(router);
2422

25-
router.beforeEach(async (to) => {
26-
if (import.meta.env.SSR) {
27-
const version = to.params.version as string | undefined;
28-
if (version) {
29-
const { useDocsStore } = await import('./stores/docs');
30-
const { useGuidesStore } = await import('./stores/guides');
31-
const { useVersionStore } = await import('./stores/version');
32-
const docsStore = useDocsStore(pinia);
33-
const guidesStore = useGuidesStore(pinia);
34-
const versionStore = useVersionStore(pinia);
23+
router.afterEach(() => {
24+
queueMicrotask(() => Prism.highlightAll());
25+
});
3526

36-
await versionStore.loadVersions();
37-
versionStore.setVersion(version);
38-
39-
const key = version === 'latest' ? 'latest' : version;
40-
if (to.path.includes('/docs')) await docsStore.loadDocs(key);
41-
if (to.path.includes('/guides')) await guidesStore.loadGuides(key);
42-
43-
initialState.pinia = pinia.state.value;
44-
}
45-
}
46-
});
47-
48-
router.afterEach(() => {
49-
if (!isClient) return;
50-
queueMicrotask(() => Prism.highlightAll());
51-
});
52-
},
53-
);
27+
app.mount('#app');

apps/docs/src/stores/docs.ts

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,19 @@ export const useDocsStore = defineStore('docs', () => {
1515

1616
/**
1717
* Load docs for a specific version. Uses versioned path: docs/{version}/main.json
18-
* During SSG: reads from disk. On client: fetches.
1918
*/
2019
async function loadDocs(versionKey: DocsVersionKey) {
2120
if (docsData.value && loadedVersion.value === versionKey) return;
2221
loading.value = true;
2322
error.value = null;
2423
try {
2524
const versionPath = versionKey === 'latest' ? 'latest' : `v${versionKey}`;
26-
27-
if (import.meta.env.SSR) {
28-
const { readFileSync } = await import('fs');
29-
const { resolve } = await import('path');
30-
const path = resolve(process.cwd(), 'public/docs', versionPath, 'main.json');
31-
const data = JSON.parse(readFileSync(path, 'utf-8')) as DocOutput;
32-
docsData.value = data;
33-
loadedVersion.value = versionKey;
34-
} else {
35-
const url = `/docs/${versionPath}/main.json`;
36-
const res = await fetch(url);
37-
if (!res.ok) throw new Error(`Failed to load docs: ${res.status}`);
38-
const data = (await res.json()) as DocOutput;
39-
docsData.value = data;
40-
loadedVersion.value = versionKey;
41-
}
25+
const url = `/docs/${versionPath}/main.json`;
26+
const res = await fetch(url);
27+
if (!res.ok) throw new Error(`Failed to load docs: ${res.status}`);
28+
const data = (await res.json()) as DocOutput;
29+
docsData.value = data;
30+
loadedVersion.value = versionKey;
4231
} catch (e) {
4332
error.value = e instanceof Error ? e.message : String(e);
4433
throw e;

apps/docs/src/stores/guides.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,11 @@ export const useGuidesStore = defineStore('guides', () => {
2121
error.value = null;
2222
try {
2323
const versionPath = versionKey === 'latest' ? 'latest' : `v${versionKey}`;
24-
25-
if (import.meta.env.SSR) {
26-
const { readFileSync } = await import('fs');
27-
const { resolve } = await import('path');
28-
const path = resolve(process.cwd(), 'public/docs', versionPath, 'guides.json');
29-
guidesData.value = JSON.parse(readFileSync(path, 'utf-8')) as Guide[];
30-
loadedVersion.value = versionKey;
31-
} else {
32-
const url = `/docs/${versionPath}/guides.json`;
33-
const res = await fetch(url);
34-
if (!res.ok) throw new Error(`Failed to load guides: ${res.status}`);
35-
guidesData.value = (await res.json()) as Guide[];
36-
loadedVersion.value = versionKey;
37-
}
24+
const url = `/docs/${versionPath}/guides.json`;
25+
const res = await fetch(url);
26+
if (!res.ok) throw new Error(`Failed to load guides: ${res.status}`);
27+
guidesData.value = (await res.json()) as Guide[];
28+
loadedVersion.value = versionKey;
3829
} catch (e) {
3930
// Fallback to static guides if json not yet generated (e.g. dev before docs:build)
4031
guidesData.value = null;

apps/docs/src/stores/version.ts

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,31 +31,20 @@ export const useVersionStore = defineStore('version', () => {
3131
async function loadVersions() {
3232
if (versionsLoaded.value) return;
3333
try {
34-
if (import.meta.env.SSR) {
35-
const { readFileSync } = await import('fs');
36-
const { resolve } = await import('path');
37-
const path = resolve(process.cwd(), 'public/docs/versions.json');
38-
const data = JSON.parse(readFileSync(path, 'utf-8')) as VersionsManifest;
39-
availableVersions.value = data.versions ?? [];
40-
latestVersion.value = data.latest ?? data.versions?.[0] ?? '1.0.7';
41-
versionsLoaded.value = true;
42-
} else {
43-
const res = await fetch('/docs/versions.json');
44-
if (!res.ok) throw new Error('Failed to load versions');
45-
const data = (await res.json()) as VersionsManifest;
46-
availableVersions.value = data.versions ?? [];
47-
latestVersion.value = data.latest ?? data.versions?.[0] ?? '1.0.7';
48-
versionsLoaded.value = true;
34+
const res = await fetch('/docs/versions.json');
35+
if (!res.ok) throw new Error('Failed to load versions');
36+
const data = (await res.json()) as VersionsManifest;
37+
availableVersions.value = data.versions ?? [];
38+
latestVersion.value = data.latest ?? data.versions?.[0] ?? '1.0.7';
39+
versionsLoaded.value = true;
4940

50-
// Restore saved preference (client only)
51-
try {
52-
const saved = localStorage.getItem(STORAGE_KEY);
53-
if (saved && (saved === 'latest' || availableVersions.value.includes(saved))) {
54-
currentVersion.value = saved;
55-
}
56-
} catch {
57-
/* ignore */
41+
try {
42+
const saved = localStorage.getItem(STORAGE_KEY);
43+
if (saved && (saved === 'latest' || availableVersions.value.includes(saved))) {
44+
currentVersion.value = saved;
5845
}
46+
} catch {
47+
/* ignore */
5948
}
6049
} catch {
6150
// Fallback when versions.json doesn't exist (e.g. dev before first generate)

apps/docs/vite.config.d.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)