-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintegration.mjs
More file actions
35 lines (32 loc) · 1.34 KB
/
Copy pathintegration.mjs
File metadata and controls
35 lines (32 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
* Подключает админку блога только при `astro dev`.
*
* Файлы админки лежат в src/admin/, а не в src/pages/, поэтому Astro не
* превращает их в маршруты автоматически. Единственный путь, которым они
* попадают в приложение, — injectRoute ниже, и он отсекается по command.
* Значит `astro build` физически не видит ни страницы, ни эндпоинтов:
* в /dist ничего от админки не попадает и на VPS уезжать нечему.
*/
export function blogAdmin() {
return {
name: "blog-admin",
hooks: {
"astro:config:setup": ({ command, injectRoute, logger }) => {
if (command !== "dev") return;
injectRoute({
pattern: "/admin",
entrypoint: "./src/admin/AdminPage.astro",
prerender: false,
});
for (const name of ["posts", "preview", "upload", "git"]) {
injectRoute({
pattern: `/api/admin/${name}`,
entrypoint: `./src/admin/api/${name}.ts`,
prerender: false,
});
}
logger.info("админка блога доступна на /admin (только в dev)");
},
},
};
}