From 50b687c43e1cabdb4ad6904a70ad6aa2c5e80d47 Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Tue, 5 May 2026 08:11:50 +0200 Subject: [PATCH] feat(media): scaffold feature package with media collection only --- packages/media/package.json | 24 +++++++++++++++++++ packages/media/src/index.ts | 1 + .../src/integrations/cms/collections/media.ts | 18 ++++++++++++++ packages/media/src/integrations/cms/index.ts | 1 + packages/media/tsconfig.json | 9 +++++++ packages/media/turbo.json | 4 ++++ pnpm-lock.yaml | 16 +++++++++++++ tsconfig.base.json | 4 +++- 8 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 packages/media/package.json create mode 100644 packages/media/src/index.ts create mode 100644 packages/media/src/integrations/cms/collections/media.ts create mode 100644 packages/media/src/integrations/cms/index.ts create mode 100644 packages/media/tsconfig.json create mode 100644 packages/media/turbo.json diff --git a/packages/media/package.json b/packages/media/package.json new file mode 100644 index 0000000..fd007f9 --- /dev/null +++ b/packages/media/package.json @@ -0,0 +1,24 @@ +{ + "name": "@repo/media", + "private": true, + "version": "0.0.0", + "type": "module", + "exports": { + ".": "./src/index.ts", + "./cms": "./src/integrations/cms/index.ts" + }, + "scripts": { + "build": "tsc --noEmit", + "lint": "eslint .", + "test": "vitest run --passWithNoTests", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "payload": "^3.14.0" + }, + "devDependencies": { + "@repo/eslint-config": "workspace:*", + "@repo/typescript-config": "workspace:*", + "vitest": "^3.1.0" + } +} diff --git a/packages/media/src/index.ts b/packages/media/src/index.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/packages/media/src/index.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/media/src/integrations/cms/collections/media.ts b/packages/media/src/integrations/cms/collections/media.ts new file mode 100644 index 0000000..742d8d9 --- /dev/null +++ b/packages/media/src/integrations/cms/collections/media.ts @@ -0,0 +1,18 @@ +import type { CollectionConfig } from "payload"; + +export const media: CollectionConfig = { + slug: "media", + upload: { + mimeTypes: ["image/*", "application/pdf"], + }, + admin: { + useAsTitle: "filename", + }, + fields: [ + { + name: "alt", + type: "text", + required: true, + }, + ], +}; diff --git a/packages/media/src/integrations/cms/index.ts b/packages/media/src/integrations/cms/index.ts new file mode 100644 index 0000000..5cc0e7c --- /dev/null +++ b/packages/media/src/integrations/cms/index.ts @@ -0,0 +1 @@ +export { media } from "./collections/media"; diff --git a/packages/media/tsconfig.json b/packages/media/tsconfig.json new file mode 100644 index 0000000..23bc66f --- /dev/null +++ b/packages/media/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@repo/typescript-config/base.json", + "compilerOptions": { + "outDir": "dist", + "lib": ["ES2022", "DOM"] + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/media/turbo.json b/packages/media/turbo.json new file mode 100644 index 0000000..8a1d41a --- /dev/null +++ b/packages/media/turbo.json @@ -0,0 +1,4 @@ +{ + "extends": ["//"], + "tags": ["feature"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ae23b4..40f1c44 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -514,6 +514,22 @@ importers: specifier: ^8.25.0 version: 8.58.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + packages/media: + dependencies: + payload: + specifier: ^3.14.0 + version: 3.81.0(graphql@16.13.2)(typescript@5.9.3) + devDependencies: + '@repo/eslint-config': + specifier: workspace:* + version: link:../eslint-config + '@repo/typescript-config': + specifier: workspace:* + version: link:../typescript-config + vitest: + specifier: ^3.1.0 + version: 3.2.4(@types/debug@4.1.13)(@types/node@25.5.2)(happy-dom@20.8.9)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.99.0)(tsx@4.21.0) + packages/typescript-config: devDependencies: vitest: diff --git a/tsconfig.base.json b/tsconfig.base.json index ff4ceba..d9ead9a 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -17,7 +17,9 @@ "@repo/core-ui": ["packages/core-ui/src/index.ts"], "@repo/auth": ["packages/auth/src/index.ts"], "@repo/auth/cms": ["packages/auth/src/integrations/cms/index.ts"], - "@repo/auth/api": ["packages/auth/src/integrations/api/router.ts"] + "@repo/auth/api": ["packages/auth/src/integrations/api/router.ts"], + "@repo/media": ["packages/media/src/index.ts"], + "@repo/media/cms": ["packages/media/src/integrations/cms/index.ts"] } } }