diff --git a/bun.lock b/bun.lock index 78c7928..4fcedcb 100644 --- a/bun.lock +++ b/bun.lock @@ -1,10 +1,10 @@ { "lockfileVersion": 1, - "configVersion": 0, "workspaces": { "": { "name": "PNReST", "dependencies": { + "@elysiajs/openapi": "^1.4.11", "drizzle-orm": "^0.44.7", "drizzle-typebox": "^0.3.3", "elysia": "latest", @@ -23,6 +23,8 @@ "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], + "@elysiajs/openapi": ["@elysiajs/openapi@1.4.11", "", { "peerDependencies": { "elysia": ">= 1.4.0" } }, "sha512-d75bMxYJpN6qSDi/z9L1S7SLk1S/8Px+cTb3W2lrYzU8uQ5E0kXdy1oOMJEfTyVsz3OA19NP9KNxE7ztSbLBLg=="], + "@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "~0.18.20", "source-map-support": "^0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="], "@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="], diff --git a/package.json b/package.json index b051d9e..e3a02f6 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "db:migrate": "bun --bun drizzle-kit migrate" }, "dependencies": { + "@elysiajs/openapi": "^1.4.11", "drizzle-orm": "^0.44.7", "drizzle-typebox": "^0.3.3", "elysia": "latest", diff --git a/src/index.ts b/src/index.ts index 54a86e9..b674b1f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,23 @@ +import openapi, { fromTypes } from '@elysiajs/openapi'; import { Elysia } from 'elysia'; import { seriesModule } from './modules/series'; -const app = new Elysia().use(seriesModule).listen(3000); +export const app = new Elysia() + .use( + openapi({ + documentation: { + info: { + title: 'PNReST documentation', + description: 'REST API used by PNS softwares', + version: '0.0.0', + }, + }, + references: fromTypes( + process.env.NODE_ENV === 'production' ? 'dist/index.d.ts' : 'src/index.ts', + ), + }), + ) + .use(seriesModule) + .listen(3000); console.log(`🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`); diff --git a/tsconfig.json b/tsconfig.json index c4bbf24..8d0392c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -36,7 +36,6 @@ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ "types": [ - "bun-types" ] /* Specify type package names to be included without being referenced in a source file. */, // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */