From fed0961210ad5513615ba3ce876dc1ed714601eb Mon Sep 17 00:00:00 2001 From: SX-9 <90962949+SX-9@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:12:53 +0700 Subject: [PATCH] handle curl --- package-lock.json | 21 ++++++++++++++++++++- package.json | 4 +++- src/hooks.server.ts | 17 +++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 src/hooks.server.ts diff --git a/package-lock.json b/package-lock.json index 63e439c..e88d31b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,12 +8,14 @@ "name": "5th-site", "version": "0.0.1", "dependencies": { - "@sveltejs/adapter-cloudflare": "^4.7.4" + "@sveltejs/adapter-cloudflare": "^4.7.4", + "figlet": "^1.8.0" }, "devDependencies": { "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@types/figlet": "^1.7.0", "autoprefixer": "^10.4.20", "postcss": "^8.4.47", "svelte": "^4.2.7", @@ -985,6 +987,12 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, + "node_modules/@types/figlet": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@types/figlet/-/figlet-1.7.0.tgz", + "integrity": "sha512-KwrT7p/8Eo3Op/HBSIwGXOsTZKYiM9NpWRBJ5sVjWP/SmlS+oxxRvJht/FNAtliJvja44N3ul1yATgohnVBV0Q==", + "dev": true + }, "node_modules/@types/node": { "version": "22.8.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.6.tgz", @@ -1576,6 +1584,17 @@ } } }, + "node_modules/figlet": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.8.0.tgz", + "integrity": "sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==", + "bin": { + "figlet": "bin/index.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", diff --git a/package.json b/package.json index 3c51faa..5e6eb86 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@types/figlet": "^1.7.0", "autoprefixer": "^10.4.20", "postcss": "^8.4.47", "svelte": "^4.2.7", @@ -23,6 +24,7 @@ }, "type": "module", "dependencies": { - "@sveltejs/adapter-cloudflare": "^4.7.4" + "@sveltejs/adapter-cloudflare": "^4.7.4", + "figlet": "^1.8.0" } } diff --git a/src/hooks.server.ts b/src/hooks.server.ts new file mode 100644 index 0000000..14345cd --- /dev/null +++ b/src/hooks.server.ts @@ -0,0 +1,17 @@ +import type { Handle } from '@sveltejs/kit'; +import figlet from 'figlet'; +import info from '$lib'; + +export const handle: Handle = async ({ event, resolve }) => { + if (!event.request.headers.get('user-agent')?.includes('curl')) return await resolve(event); + else return new Response(`\ +${info.title} - curl version + +${await figlet.text(info.name.toUpperCase(), { + font: "Standard", + // @ts-expect-error +}).catch(() => info.name.toUpperCase())} + +${info.description} +`); +}; \ No newline at end of file