Skip to content

Commit c110c7a

Browse files
authored
feat: qr code generator (#26)
* feat: qr code generator * chore: guard
1 parent cd17718 commit c110c7a

4 files changed

Lines changed: 35 additions & 1 deletion

File tree

apps/web-app/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
"nuxt-tiptap-editor": "catalog:",
3030
"openai": "catalog:",
3131
"pinia": "catalog:",
32-
"sharp": "catalog:"
32+
"sharp": "catalog:",
33+
"uqr": "catalog:"
3334
},
3435
"devDependencies": {
3536
"@types/node": "catalog:",
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { renderSVG } from 'uqr'
2+
3+
export default defineEventHandler(async (event) => {
4+
try {
5+
const text = getRouterParam(event, 'text')
6+
if (!text) {
7+
throw createError({
8+
statusCode: 400,
9+
message: 'Text is required',
10+
})
11+
}
12+
13+
if (text.length > 1000) {
14+
throw createError({
15+
statusCode: 400,
16+
message: 'Text too long',
17+
})
18+
}
19+
20+
setHeader(event, 'Content-Type', 'image/svg+xml')
21+
22+
return renderSVG(decodeURIComponent(text))
23+
} catch (error) {
24+
throw errorResolver(error)
25+
}
26+
})

pnpm-lock.yaml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pnpm-workspace.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ catalog:
6464
tailwindcss-motion: ^1.1.1
6565
typescript: ^5.8.3
6666
unbuild: ^3.6.0
67+
uqr: ^0.1.2
6768
vite: ^7.0.6
6869
vite-tsconfig-paths: ^5.1.4
6970
vitest: ^3.2.4

0 commit comments

Comments
 (0)