Skip to content

Commit 1755bf5

Browse files
committed
refactor(config): reorganize payload configuration modules
Signed-off-by: Kipruto <43873157+kelvinkipruto@users.noreply.github.com>
1 parent f3e20b5 commit 1755bf5

File tree

8 files changed

+45
-21
lines changed

8 files changed

+45
-21
lines changed

src/collections/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { CollectionConfig } from 'payload'
2+
import { Users } from './Users'
3+
import { Media } from './Media'
4+
import { Documents } from './Documents'
5+
6+
export const collections: CollectionConfig[] = [Users, Media, Documents]

src/globals/Settings.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export const Settings: GlobalConfig = {
5353
type: 'row',
5454
fields: [
5555
{
56+
//TODO:(@kelvinkipruto): Explore adding more models.
5657
name: 'model',
5758
type: 'select',
5859
options: [

src/globals/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { GlobalConfig } from 'payload'
2+
import { Settings } from './Settings'
3+
4+
export const globals: GlobalConfig[] = [Settings]

src/payload.config.ts

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,14 @@ import { buildConfig } from 'payload'
66
import { fileURLToPath } from 'node:url'
77
import sharp from 'sharp'
88

9-
import { Users } from './collections/Users'
10-
import { Media } from './collections/Media'
11-
import { Documents } from './collections/Documents'
12-
import { Settings } from './globals/Settings'
13-
import { FetchAirtableDocuments } from './tasks/fetchAirtableDocuments'
14-
import { airtableWorkflow } from './workflows/airtableWorkflow'
15-
import { DownloadDocuments } from './tasks/downloadDocuments'
16-
import { ExtractDocuments } from './tasks/extractDocuments'
17-
import { AISummarizer } from './tasks/aiSummarizer'
18-
import { UploadToMeedan } from './tasks/uploadToMeedan'
9+
import { Users } from '@/collections/Users'
10+
import { collections } from '@/collections'
11+
import { globals } from '@/globals'
12+
import { tasks } from '@/tasks'
13+
import { workflows } from '@/workflows'
1914

2015
const filename = fileURLToPath(import.meta.url)
2116
const dirname = path.dirname(filename)
22-
// check if is prod env
2317
const isProd = process.env.NODE_ENV === 'production'
2418

2519
export default buildConfig({
@@ -29,8 +23,8 @@ export default buildConfig({
2923
baseDir: path.resolve(dirname),
3024
},
3125
},
32-
collections: [Users, Media, Documents],
33-
globals: [Settings],
26+
collections,
27+
globals,
3428
editor: lexicalEditor(),
3529
secret: process.env.PAYLOAD_SECRET || '',
3630
typescript: {
@@ -52,15 +46,10 @@ export default buildConfig({
5246
return defaultJobsCollection
5347
},
5448
addParentToTaskLog: true,
55-
tasks: [
56-
FetchAirtableDocuments,
57-
DownloadDocuments,
58-
ExtractDocuments,
59-
AISummarizer,
60-
UploadToMeedan,
61-
],
62-
workflows: [airtableWorkflow],
49+
tasks,
50+
workflows,
6351
autoRun: [
52+
// TODO:(@kelvinkipruto): Use correct schedule.This is for testing only
6453
{
6554
cron: '* * * * *',
6655
queue: 'everyMinute',

src/tasks/aiSummarizer.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ export const AISummarizer: TaskConfig<'aiSummarizer'> = {
8888
})
8989
.join('\n')
9090

91+
if (!plainText || plainText === '') {
92+
logger.error('No text to process')
93+
continue
94+
}
95+
9196
try {
9297
const res = await generateObject({
9398
model,

src/tasks/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { TaskConfig } from 'payload'
2+
import { FetchAirtableDocuments } from './fetchAirtableDocuments'
3+
import { DownloadDocuments } from './downloadDocuments'
4+
import { ExtractDocuments } from './extractDocuments'
5+
import { AISummarizer } from './aiSummarizer'
6+
import { UploadToMeedan } from './uploadToMeedan'
7+
8+
export const tasks: TaskConfig[] = [
9+
FetchAirtableDocuments,
10+
DownloadDocuments,
11+
ExtractDocuments,
12+
AISummarizer,
13+
UploadToMeedan,
14+
]

src/tasks/uploadToMeedan.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export const UploadToMeedan: TaskConfig<'uploadToMeedan'> = {
77
slug: 'uploadToMeedan',
88
label: 'Upload To Meedan',
99
schedule: [
10+
// TODO:(@kelvinkipruto): Provide correct schedule: This is for testing only
1011
{
1112
cron: '* * * * *',
1213
queue: 'everyMinute',

src/workflows/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { WorkflowConfig } from 'payload'
2+
import { airtableWorkflow } from './airtableWorkflow'
3+
4+
export const workflows: WorkflowConfig[] = [airtableWorkflow]

0 commit comments

Comments
 (0)