From 85ac3b6ffa682c9eb34a5d096d44fa96d7a813bd Mon Sep 17 00:00:00 2001 From: Benjamin Palko Date: Fri, 6 Dec 2024 14:17:24 -0500 Subject: [PATCH] remove existing --- .env | 2 - .github/workflows/pr.yml | 14 ------ .gitignore | 2 - README.md | 22 --------- bun.lockb | Bin 73669 -> 0 bytes eslint.config.mjs | 14 ------ lib/logger/index.ts | 23 ---------- package.json | 35 -------------- prettier.config.mjs | 13 ------ prisma/dev.db | Bin 28672 -> 0 bytes prisma/dev.db-journal | Bin 8720 -> 0 bytes .../20241202163245_init/migration.sql | 19 -------- prisma/migrations/migration_lock.toml | 3 -- prisma/schema.prisma | 31 ------------- src/config/index.ts | 22 --------- src/index.ts | 15 ------ src/prisma/index.ts | 3 -- src/yoga/builder.ts | 29 ------------ src/yoga/context.ts | 10 ---- src/yoga/index.ts | 10 ---- src/yoga/schema.ts | 43 ------------------ tsconfig.json | 36 --------------- 22 files changed, 346 deletions(-) delete mode 100644 .env delete mode 100644 .github/workflows/pr.yml delete mode 100644 .gitignore delete mode 100644 README.md delete mode 100755 bun.lockb delete mode 100644 eslint.config.mjs delete mode 100644 lib/logger/index.ts delete mode 100644 package.json delete mode 100644 prettier.config.mjs delete mode 100644 prisma/dev.db delete mode 100644 prisma/dev.db-journal delete mode 100644 prisma/migrations/20241202163245_init/migration.sql delete mode 100644 prisma/migrations/migration_lock.toml delete mode 100644 prisma/schema.prisma delete mode 100644 src/config/index.ts delete mode 100644 src/index.ts delete mode 100644 src/prisma/index.ts delete mode 100644 src/yoga/builder.ts delete mode 100644 src/yoga/context.ts delete mode 100644 src/yoga/index.ts delete mode 100644 src/yoga/schema.ts delete mode 100644 tsconfig.json diff --git a/.env b/.env deleted file mode 100644 index c98868d..0000000 --- a/.env +++ /dev/null @@ -1,2 +0,0 @@ -APP_VERSION=1.0.0-alpha -DATABASE_URL="file:./dev.db" diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml deleted file mode 100644 index f782dbb..0000000 --- a/.github/workflows/pr.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: PR Checks -on: [pull_request] -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: oven-sh/setup-bun@v2 - with: - bun-version: latest - - name: install - run: bun install - - name: build - run: bun run clean && bun run build diff --git a/.gitignore b/.gitignore deleted file mode 100644 index dd87e2d..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -build diff --git a/README.md b/README.md deleted file mode 100644 index 9bfae56..0000000 --- a/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Hestia - -To install dependencies: - -```bash -bun install -``` - -To run: - -```bash -bun run src/index.ts -``` - -## Stack - -- **Bun** Package manager -- **Yoga** GraphQL Server -- **Pothos** GraphQL Schema Builder -- **Prisma** Database ORM -- **Pino** Logger -- **Zod** Schema validation diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index e9ebac8bb358a6f2969aeaaf06fa72f33941680e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73669 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 Spj*Nq&25_BO#L_f=YIg|_|?$> diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 9add6b6..0000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,14 +0,0 @@ -// @ts-check - -import eslint from '@eslint/js'; -import tseslint from 'typescript-eslint'; -// @ts-expect-error No type-def -import eslintConfigPrettier from 'eslint-config-prettier'; - -export default tseslint.config( - { files: ['{app,src}/**/*.{js,mjs,ts}'] }, - { ignores: ['build/*'] }, - eslint.configs.recommended, - tseslint.configs.recommended, - eslintConfigPrettier -); \ No newline at end of file diff --git a/lib/logger/index.ts b/lib/logger/index.ts deleted file mode 100644 index 7dea51d..0000000 --- a/lib/logger/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { type YogaLogger } from 'graphql-yoga'; -import pino from 'pino'; - -export const logger = pino(); - -export const yogaLogger: YogaLogger = { - debug(...args) { - // @ts-expect-error types dont match - logger.debug(...args); - }, - info(...args) { - // @ts-expect-error types dont match - logger.info(...args); - }, - warn(...args) { - // @ts-expect-error types dont match - logger.warn(...args); - }, - error(...args) { - // @ts-expect-error types dont match - logger.error(...args); - }, -}; diff --git a/package.json b/package.json deleted file mode 100644 index 5e233b8..0000000 --- a/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "hestia", - "module": "src/index.ts", - "type": "module", - "scripts": { - "build": "bun build ./src/index.ts --outdir ./build", - "clean": "rm -rf ./build", - "dev": "bun --watch src/index.ts | pino-pretty", - "format": "prettier . --write", - "lint": "", - "prisma:generate": "prisma generate" - }, - "devDependencies": { - "@eslint/js": "^9.16.0", - "@types/bun": "latest", - "eslint": "^9.16.0", - "eslint-config-prettier": "^9.1.0", - "prettier": "3.4.1", - "prisma": "^6.0.1", - "typescript-eslint": "^8.17.0" - }, - "peerDependencies": { - "typescript": "^5.0.0" - }, - "dependencies": { - "@pothos/core": "^4.3.0", - "@pothos/plugin-prisma": "^4.4.0", - "@prisma/client": "6.0.1", - "graphql": "^16.9.0", - "graphql-yoga": "^5.10.4", - "pino": "^9.5.0", - "pino-pretty": "^13.0.0", - "zod": "^3.23.8" - } -} diff --git a/prettier.config.mjs b/prettier.config.mjs deleted file mode 100644 index 674afc2..0000000 --- a/prettier.config.mjs +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @see https://prettier.io/docs/en/configuration.html - * @type {import("prettier").Config} - */ -const config = { - trailingComma: 'es5', - tabWidth: 4, - useTabs: true, - semi: true, - singleQuote: true, -}; - -export default config; diff --git a/prisma/dev.db b/prisma/dev.db deleted file mode 100644 index 33bbdb7a4aad0b712feb29e1e1cb7a18e114be95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 zcmeI(&u-#I90zcFlaQ8OlwKkZy^MS*Xg4j!hQMjp3zG(g0Casl9Ca9Wf*x&x~h2^BYShr2nEDCY%J*`Isfd zP(D&rRe45;qA0r}?~A-j@>u3oQdhtH&Cgxs)34qY4*pPb51%T9Uk`pMoId*f;ZNcK z2?7v+00bZa0SG_<0`H%Im&+B)hw9sKGU8u*F`xT<%)-dO;@`-l{gy*5mlDtJyznUL z*lqffXzTSf(zBOkT1iV=Yvpgh+}kf69;)AeoUlQ}&!=%Bb1v)7wVrn=(PWWEN_irZ z7LGL0ze`W4L+qYQY_HoT=T7I$axTc{^nzHP+w0h(hcjxsPnM06Fp0QET>4Tp$Qos* zhSN#HC!&9OGAo-c22mJaa&f8Wytb&VJ|1+uNwG)0My7y&!L@DI~{&WTb~V*GdWU{0A)$prd=w?9V)u+ zv|L%_owwyGw5)#1YSVoAd^cBo{8+t6apO0Ucmncc{${}^L%wmiw?@8kvNU01{zSAa zUq9MO7wr0N+NWG$nRnM(rwjk@7HkfAG`c__KK!kC{IX zU(Z<*PABnp$%FNwZdX_vxD2_Clm^l5fZGhHOFq1c7h`R`-CeO4gp)MPd?w=WuOt`I z?VQmpx^8CUFQ=YWysN`#`Z~Vd)2*smXY*+k@sU4Z!>ij@-MD0&uz4b?t&fYWYHja^ z;bJ})yU0(%F&B-;v(?U+&7x3r6eoNZ`@`u%?lf|@|NUQQ%n$+)fB*y_009U<00Izz K00jQu0)GO`h?krI diff --git a/prisma/dev.db-journal b/prisma/dev.db-journal deleted file mode 100644 index 8c85613e47b740bff2c2bd3433a6ed346df9c38c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8720 zcmeI$F$zL4300Izz00bZa0SG_<0uX?}R|QU^X0kp_6)80w3ndr1 z53O}Mx7;V)#$rS3DHn-iSS07t6L}${In;U1IWjvNG?VQ*4#kAzd}2!_q|96Itb{IV zXBFm0SG_<0uX=z1Rwwb2tWV= N5P-ms3Ebz; { - const { success, data, error } = z - .object({ - APP_VERSION: z.string().default('development'), - }) - .safeParse(process.env); - - if (!success) { - logger.error(error.message); - } - - return { - app_version: data!.APP_VERSION, - }; -}; diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index 8d71ef1..0000000 --- a/src/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { logger } from '@lib/logger'; -import { yoga } from './yoga'; - -const server = Bun.serve({ - fetch: yoga.fetch, - error: (error) => { - logger.error(error.message); - return new Response('', { - status: 500, - statusText: 'You fucked the goose', - }); - }, -}); - -logger.info(`Server is running on: ${server.url}${yoga.graphqlEndpoint}`); diff --git a/src/prisma/index.ts b/src/prisma/index.ts deleted file mode 100644 index 9b6c4ce..0000000 --- a/src/prisma/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { PrismaClient } from '@prisma/client'; - -export const prisma = new PrismaClient(); diff --git a/src/yoga/builder.ts b/src/yoga/builder.ts deleted file mode 100644 index 750955c..0000000 --- a/src/yoga/builder.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { Configuration } from '@app/config'; -import { prisma } from '@app/prisma'; -import SchemaBuilder from '@pothos/core'; -import PrismaPlugin, { - type PrismaTypesFromClient, -} from '@pothos/plugin-prisma'; -import type { YogaInitialContext } from 'graphql-yoga'; - -type Context = YogaInitialContext & { - config: Configuration; -}; - -export const builder = new SchemaBuilder<{ - Context: Context; - PrismaTypes: PrismaTypesFromClient; -}>({ - plugins: [PrismaPlugin], - prisma: { - client: prisma, - // defaults to false, uses /// comments from prisma schema as descriptions - // for object types, relations and exposed fields. - // descriptions can be omitted by setting description to false - exposeDescriptions: false, - // use where clause from prismaRelatedConnection for totalCount (defaults to true) - filterConnectionTotalCount: true, - // warn when not using a query parameter correctly - onUnusedQuery: process.env.NODE_ENV === 'production' ? null : 'warn', - }, -}); diff --git a/src/yoga/context.ts b/src/yoga/context.ts deleted file mode 100644 index fac5b95..0000000 --- a/src/yoga/context.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { LoadConfig } from '@app/config'; -import type { YogaInitialContext } from 'graphql-yoga'; - -export const context = (initialContext: YogaInitialContext) => { - const config = LoadConfig(); - return { - ...initialContext, - config, - }; -}; diff --git a/src/yoga/index.ts b/src/yoga/index.ts deleted file mode 100644 index 35233ab..0000000 --- a/src/yoga/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { yogaLogger } from '@lib/logger'; -import { createYoga } from 'graphql-yoga'; -import { context } from './context'; -import { schema } from './schema'; - -export const yoga = createYoga({ - schema, - context: context, - logging: yogaLogger, -}); diff --git a/src/yoga/schema.ts b/src/yoga/schema.ts deleted file mode 100644 index bb3006e..0000000 --- a/src/yoga/schema.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { prisma } from '@app/prisma'; -import { builder } from './builder'; - -const User = builder.prismaObject('User', { - fields: (t) => ({ - id: t.exposeID('id'), - email: t.exposeString('email'), - name: t.exposeString('name'), - posts: t.relation('posts'), - }), -}); - -const Post = builder.prismaObject('Post', { - fields: (t) => ({ - id: t.exposeID('id'), - title: t.exposeString('title'), - content: t.exposeString('content'), - published: t.exposeBoolean('published'), - author: t.relation('author'), - }), -}); - -builder.queryType({ - fields: (t) => ({ - version: t.string({ - resolve: (parent, args, context) => context.config.app_version, - }), - users: t.prismaField({ - type: [User], - resolve: async () => { - return await prisma.user.findMany(); - }, - }), - posts: t.prismaField({ - type: [Post], - resolve: async () => { - return await prisma.post.findMany(); - }, - }), - }), -}); - -export const schema = builder.toSchema(); diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 75671cb..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "compilerOptions": { - // Enable latest features - "lib": ["ESNext", "DOM"], - "target": "ESNext", - "module": "ESNext", - "moduleDetection": "force", - "jsx": "react-jsx", - "allowJs": true, - - // Bundler mode - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "noEmit": true, - - // Best practices - "strict": true, - "skipLibCheck": true, - "noFallthroughCasesInSwitch": true, - - // Some stricter flags (disabled by default) - "noUnusedLocals": false, - "noUnusedParameters": false, - "noPropertyAccessFromIndexSignature": false, - - // Path mapping - "baseUrl": ".", - "paths": { - "@app": ["./src"], - "@app/*": ["./src/*"], - "@lib": ["./lib"], - "@lib/*": ["./lib/*"] - } - } -}