├── utils ├── index.ts ├── kv.ts ├── genToken.ts └── marked.ts ├── bun.lockb ├── screenshot.png ├── public ├── favicon.png ├── normalize.css └── github-markdown.css ├── controllers ├── index.ts ├── userControllers.ts └── memoController.ts ├── models ├── index.ts ├── memoModels.ts └── userModels.ts ├── routes ├── index.ts ├── userRoutes.tsx ├── memoRoutes.tsx └── pageRoutes.tsx ├── middlewares ├── index.ts ├── cacheMiddlewares.ts ├── errorMiddlewares.ts └── authMiddlewares.ts ├── Dockerfile ├── pages ├── layout │ ├── header.tsx │ ├── footer.tsx │ └── index.tsx ├── memo.tsx ├── styles │ └── index.ts └── index.tsx ├── package.json ├── .env.example ├── tsconfig.json ├── config └── db.ts ├── app.ts ├── .gitignore └── README.md /utils/index.ts: -------------------------------------------------------------------------------- 1 | export { default as genToken } from './genToken' -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakholuo/quest/HEAD/bun.lockb -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakholuo/quest/HEAD/screenshot.png -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakholuo/quest/HEAD/public/favicon.png -------------------------------------------------------------------------------- /controllers/index.ts: -------------------------------------------------------------------------------- 1 | export * as user from './userControllers' 2 | export * as memo from './memoController' -------------------------------------------------------------------------------- /models/index.ts: -------------------------------------------------------------------------------- 1 | export { default as User } from './userModels' 2 | export { default as Memo } from './memoModels' -------------------------------------------------------------------------------- /utils/kv.ts: -------------------------------------------------------------------------------- 1 | 2 | import kvjs from '@heyputer/kv.js' 3 | 4 | const kv = new kvjs() 5 | 6 | export default kv; -------------------------------------------------------------------------------- /routes/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Users } from './userRoutes' 2 | export { default as Pages } from './pageRoutes' 3 | export { default as Memos } from './memoRoutes' -------------------------------------------------------------------------------- /middlewares/index.ts: -------------------------------------------------------------------------------- 1 | export { protect } from './authMiddlewares' 2 | export { errorHandler, notFound } from './errorMiddlewares' 3 | export { cache } from './cacheMiddlewares' -------------------------------------------------------------------------------- /routes/userRoutes.tsx: -------------------------------------------------------------------------------- 1 | import { Hono } from 'hono' 2 | import { user } from '../controllers' 3 | 4 | const users = new Hono() 5 | 6 | users.post('/token', (c) => user.getToken(c)) 7 | 8 | export default users -------------------------------------------------------------------------------- /utils/genToken.ts: -------------------------------------------------------------------------------- 1 | import { sign } from 'hono/jwt' 2 | 3 | const genToken = (id: string, exp?: number) => { 4 | let payload: any = { id } 5 | if (exp) payload.exp = exp 6 | return sign(payload, Bun.env.JWT_SECRET || '') 7 | } 8 | 9 | export default genToken -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM oven/bun:1 2 | 3 | WORKDIR /app 4 | 5 | COPY package.json . 6 | COPY bun.lockb . 7 | 8 | RUN bun install 9 | 10 | COPY . . 11 | 12 | ENV NODE_ENV=production 13 | ENV PORT=8848 14 | 15 | EXPOSE 8848 16 | 17 | CMD ["bun", "run", "start"] 18 | 19 | -------------------------------------------------------------------------------- /pages/layout/header.tsx: -------------------------------------------------------------------------------- 1 | import { headerStyle } from "../styles" 2 | 3 | const Header = () => { 4 | return ( 5 |
{Bun.env.DESCRIPTION}
8 |