feat: add bun-fullstack agent and update skills
This commit is contained in:
112
.agent/skills/tech-stack/elysiajs/examples/complex.ts
Normal file
112
.agent/skills/tech-stack/elysiajs/examples/complex.ts
Normal file
@@ -0,0 +1,112 @@
|
||||
import { Elysia, t, file } from 'elysia'
|
||||
|
||||
const loggerPlugin = new Elysia()
|
||||
.get('/hi', () => 'Hi')
|
||||
.decorate('log', () => 'A')
|
||||
.decorate('date', () => new Date())
|
||||
.state('fromPlugin', 'From Logger')
|
||||
.use((app) => app.state('abc', 'abc'))
|
||||
|
||||
const app = new Elysia()
|
||||
.onRequest(({ set }) => {
|
||||
set.headers = {
|
||||
'Access-Control-Allow-Origin': '*'
|
||||
}
|
||||
})
|
||||
.onError(({ code }) => {
|
||||
if (code === 'NOT_FOUND')
|
||||
return 'Not Found :('
|
||||
})
|
||||
.use(loggerPlugin)
|
||||
.state('build', Date.now())
|
||||
.get('/', 'Elysia')
|
||||
.get('/tako', file('./example/takodachi.png'))
|
||||
.get('/json', () => ({
|
||||
hi: 'world'
|
||||
}))
|
||||
.get('/root/plugin/log', ({ log, store: { build } }) => {
|
||||
log()
|
||||
|
||||
return build
|
||||
})
|
||||
.get('/wildcard/*', () => 'Hi Wildcard')
|
||||
.get('/query', () => 'Elysia', {
|
||||
beforeHandle: ({ query }) => {
|
||||
console.log('Name:', query?.name)
|
||||
|
||||
if (query?.name === 'aom') return 'Hi saltyaom'
|
||||
},
|
||||
query: t.Object({
|
||||
name: t.String()
|
||||
})
|
||||
})
|
||||
.post('/json', async ({ body }) => body, {
|
||||
body: t.Object({
|
||||
name: t.String(),
|
||||
additional: t.String()
|
||||
})
|
||||
})
|
||||
.post('/transform-body', async ({ body }) => body, {
|
||||
beforeHandle: (ctx) => {
|
||||
ctx.body = {
|
||||
...ctx.body,
|
||||
additional: 'Elysia'
|
||||
}
|
||||
},
|
||||
body: t.Object({
|
||||
name: t.String(),
|
||||
additional: t.String()
|
||||
})
|
||||
})
|
||||
.get('/id/:id', ({ params: { id } }) => id, {
|
||||
transform({ params }) {
|
||||
params.id = +params.id
|
||||
},
|
||||
params: t.Object({
|
||||
id: t.Number()
|
||||
})
|
||||
})
|
||||
.post('/new/:id', async ({ body, params }) => body, {
|
||||
params: t.Object({
|
||||
id: t.Number()
|
||||
}),
|
||||
body: t.Object({
|
||||
username: t.String()
|
||||
})
|
||||
})
|
||||
.get('/trailing-slash', () => 'A')
|
||||
.group('/group', (app) =>
|
||||
app
|
||||
.onBeforeHandle(({ query }) => {
|
||||
if (query?.name === 'aom') return 'Hi saltyaom'
|
||||
})
|
||||
.get('/', () => 'From Group')
|
||||
.get('/hi', () => 'HI GROUP')
|
||||
.get('/elysia', () => 'Welcome to Elysian Realm')
|
||||
.get('/fbk', () => 'FuBuKing')
|
||||
)
|
||||
.get('/response-header', ({ set }) => {
|
||||
set.status = 404
|
||||
set.headers['a'] = 'b'
|
||||
|
||||
return 'A'
|
||||
})
|
||||
.get('/this/is/my/deep/nested/root', () => 'Hi')
|
||||
.get('/build', ({ store: { build } }) => build)
|
||||
.get('/ref', ({ date }) => date())
|
||||
.get('/response', () => new Response('Hi'))
|
||||
.get('/error', () => new Error('Something went wrong'))
|
||||
.get('/401', ({ set }) => {
|
||||
set.status = 401
|
||||
|
||||
return 'Status should be 401'
|
||||
})
|
||||
.get('/timeout', async () => {
|
||||
await new Promise((resolve) => setTimeout(resolve, 2000))
|
||||
|
||||
return 'A'
|
||||
})
|
||||
.all('/all', () => 'hi')
|
||||
.listen(8080, ({ hostname, port }) => {
|
||||
console.log(`🦊 Elysia is running at http://${hostname}:${port}`)
|
||||
})
|
||||
Reference in New Issue
Block a user