Skip to content

Commit 6beebd2

Browse files
committed
perf(PayloadAdapter): Only retrieve necessary fields
1 parent c06262b commit 6beebd2

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

packages/payload-authjs/src/authjs/PayloadAdapter.ts

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ export function PayloadAdapter({
9393
).findByID({
9494
collection: userCollectionSlug,
9595
id: userId,
96+
select: {
97+
accounts: false,
98+
sessions: false,
99+
verificationTokens: false,
100+
},
96101
disableErrors: true,
97102
})) as User | null;
98103

@@ -111,6 +116,12 @@ export function PayloadAdapter({
111116
equals: email,
112117
},
113118
},
119+
select: {
120+
accounts: false,
121+
sessions: false,
122+
verificationTokens: false,
123+
},
124+
limit: 1,
114125
})
115126
).docs.at(0) as User | undefined;
116127

@@ -135,6 +146,12 @@ export function PayloadAdapter({
135146
equals: providerAccountId,
136147
},
137148
},
149+
select: {
150+
accounts: false,
151+
sessions: false,
152+
verificationTokens: false,
153+
},
154+
limit: 1,
138155
})
139156
).docs.at(0) as User | undefined;
140157

@@ -149,6 +166,11 @@ export function PayloadAdapter({
149166
collection: userCollectionSlug,
150167
id: user.id,
151168
data: user,
169+
select: {
170+
accounts: false,
171+
sessions: false,
172+
verificationTokens: false,
173+
},
152174
})) as unknown as User | undefined;
153175

154176
return payloadUser ? toAdapterUser(payloadUser) : (null as unknown as AdapterUser);
@@ -177,6 +199,10 @@ export function PayloadAdapter({
177199
).findByID({
178200
collection: userCollectionSlug,
179201
id: account.userId,
202+
select: {
203+
id: true,
204+
accounts: true,
205+
},
180206
disableErrors: true,
181207
})) as User | null;
182208
if (!payloadUser) {
@@ -191,6 +217,10 @@ export function PayloadAdapter({
191217
data: {
192218
accounts: [...(payloadUser.accounts || []), account],
193219
} satisfies Partial<User>,
220+
select: {
221+
id: true,
222+
accounts: true,
223+
},
194224
})) as User;
195225

196226
const createdAccount = payloadUser.accounts?.find(
@@ -221,6 +251,11 @@ export function PayloadAdapter({
221251
equals: providerAccountId,
222252
},
223253
},
254+
select: {
255+
id: true,
256+
accounts: true,
257+
},
258+
limit: 1,
224259
})
225260
).docs.at(0) as User | undefined;
226261
if (!payloadUser) {
@@ -240,6 +275,9 @@ export function PayloadAdapter({
240275
!(account.provider === provider && account.providerAccountId === providerAccountId),
241276
),
242277
},
278+
select: {
279+
id: true,
280+
},
243281
})) as User;
244282
},
245283
// #endregion
@@ -255,6 +293,10 @@ export function PayloadAdapter({
255293
).findByID({
256294
collection: userCollectionSlug,
257295
id: session.userId,
296+
select: {
297+
id: true,
298+
sessions: true,
299+
},
258300
disableErrors: true,
259301
})) as User | null;
260302
if (!payloadUser) {
@@ -269,6 +311,10 @@ export function PayloadAdapter({
269311
data: {
270312
sessions: [...(payloadUser.sessions || []), session],
271313
},
314+
select: {
315+
id: true,
316+
sessions: true,
317+
},
272318
})) as User;
273319

274320
const createdSession = payloadUser.sessions?.find(
@@ -295,6 +341,11 @@ export function PayloadAdapter({
295341
equals: sessionToken,
296342
},
297343
},
344+
select: {
345+
accounts: false,
346+
verificationTokens: false,
347+
},
348+
limit: 1,
298349
})
299350
).docs.at(0) as User | undefined;
300351
if (!payloadUser) {
@@ -327,6 +378,11 @@ export function PayloadAdapter({
327378
equals: session.sessionToken,
328379
},
329380
},
381+
select: {
382+
id: true,
383+
sessions: true,
384+
},
385+
limit: 1,
330386
})
331387
).docs.at(0) as User | undefined;
332388
if (!payloadUser) {
@@ -343,6 +399,10 @@ export function PayloadAdapter({
343399
s.sessionToken === session.sessionToken ? session : s,
344400
),
345401
},
402+
select: {
403+
id: true,
404+
sessions: true,
405+
},
346406
})) as User;
347407

348408
const updatedSession = payloadUser.sessions?.find(
@@ -364,6 +424,11 @@ export function PayloadAdapter({
364424
equals: sessionToken,
365425
},
366426
},
427+
select: {
428+
id: true,
429+
sessions: true,
430+
},
431+
limit: 1,
367432
})
368433
).docs.at(0) as User | undefined;
369434
if (!payloadUser) {
@@ -378,6 +443,9 @@ export function PayloadAdapter({
378443
data: {
379444
sessions: payloadUser.sessions?.filter(session => session.sessionToken !== sessionToken),
380445
},
446+
select: {
447+
id: true,
448+
},
381449
})) as User;
382450
},
383451
// #endregion
@@ -395,6 +463,11 @@ export function PayloadAdapter({
395463
equals: email,
396464
},
397465
},
466+
select: {
467+
id: true,
468+
verificationTokens: true,
469+
},
470+
limit: 1,
398471
})
399472
).docs.at(0) as User | undefined;
400473

@@ -417,6 +490,11 @@ export function PayloadAdapter({
417490
).create({
418491
collection: userCollectionSlug,
419492
data: user,
493+
select: {
494+
id: true,
495+
email: true,
496+
verificationTokens: true,
497+
},
420498
})) as User;
421499
}
422500
} else {
@@ -428,6 +506,11 @@ export function PayloadAdapter({
428506
data: {
429507
verificationTokens: [...(payloadUser.verificationTokens || []), token],
430508
},
509+
select: {
510+
id: true,
511+
email: true,
512+
verificationTokens: true,
513+
},
431514
})) as User;
432515
}
433516

@@ -456,6 +539,11 @@ export function PayloadAdapter({
456539
equals: token,
457540
},
458541
},
542+
select: {
543+
id: true,
544+
verificationTokens: true,
545+
},
546+
limit: 1,
459547
})
460548
).docs.at(0) as User | undefined;
461549
if (!payloadUser) {
@@ -472,6 +560,10 @@ export function PayloadAdapter({
472560
data: {
473561
verificationTokens: payloadUser.verificationTokens?.filter(t => t.token !== token),
474562
},
563+
select: {
564+
id: true,
565+
email: true,
566+
},
475567
})) as User;
476568

477569
return verificationToken

0 commit comments

Comments
 (0)