mirror of
https://gitdab.com/cadence/out-of-your-element.git
synced 2025-09-10 04:12:50 +02:00
Upload web code
This commit is contained in:
parent
1d2daf2504
commit
b6c23c30fb
22 changed files with 765 additions and 6 deletions
|
@ -1,6 +1,62 @@
|
|||
// @ts-check
|
||||
|
||||
const {sync, as} = require("../passthrough")
|
||||
const fs = require("fs")
|
||||
const {join} = require("path")
|
||||
const h3 = require("h3")
|
||||
const {defineEventHandler, defaultContentType, getRequestHeader, setResponseHeader, setResponseStatus, useSession, getQuery, handleCacheHeaders} = h3
|
||||
const icons = require("@stackoverflow/stacks-icons")
|
||||
const DiscordTypes = require("discord-api-types/v10")
|
||||
const dUtils = require("../discord/utils")
|
||||
|
||||
const {sync, discord, as, select} = require("../passthrough")
|
||||
/** @type {import("./pug-sync")} */
|
||||
const pugSync = sync.require("./pug-sync")
|
||||
const {id} = require("../../addbot")
|
||||
|
||||
// Pug
|
||||
|
||||
pugSync.addGlobals({id, h3, discord, select, DiscordTypes, dUtils, icons})
|
||||
pugSync.createRoute(as.router, "/", "home.pug")
|
||||
pugSync.createRoute(as.router, "/ok", "ok.pug")
|
||||
|
||||
// Routes
|
||||
|
||||
sync.require("./routes/download-matrix")
|
||||
sync.require("./routes/download-discord")
|
||||
sync.require("./routes/invite")
|
||||
sync.require("./routes/guild-settings")
|
||||
sync.require("./routes/oauth")
|
||||
|
||||
// Files
|
||||
|
||||
function compressResponse(event, response) {
|
||||
if (!getRequestHeader(event, "accept-encoding")?.includes("gzip")) return
|
||||
if (typeof response.body !== "string") return
|
||||
/** @type {ReadableStream} */ // @ts-ignore
|
||||
const stream = new Response(response.body).body
|
||||
setResponseHeader(event, "content-encoding", "gzip")
|
||||
response.body = stream.pipeThrough(new CompressionStream("gzip"))
|
||||
}
|
||||
|
||||
as.router.get("/static/stacks.min.css", defineEventHandler({
|
||||
onBeforeResponse: compressResponse,
|
||||
handler: async event => {
|
||||
handleCacheHeaders(event, {maxAge: 86400})
|
||||
defaultContentType(event, "text/css")
|
||||
return fs.promises.readFile(require.resolve("@stackoverflow/stacks/dist/css/stacks.css"), "utf-8")
|
||||
}
|
||||
}))
|
||||
|
||||
as.router.get("/static/htmx.min.js", defineEventHandler({
|
||||
onBeforeResponse: compressResponse,
|
||||
handler: async event => {
|
||||
handleCacheHeaders(event, {maxAge: 86400})
|
||||
defaultContentType(event, "text/javascript")
|
||||
return fs.promises.readFile(join(__dirname, "static", "htmx.min.js"), "utf-8")
|
||||
}
|
||||
}))
|
||||
|
||||
as.router.get("/icon.png", defineEventHandler(event => {
|
||||
handleCacheHeaders(event, {maxAge: 86400})
|
||||
return fs.promises.readFile(join(__dirname, "../../docs/img/icon.png"))
|
||||
}))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue