Skip to content

Commit 63b3145

Browse files
committed
Cleanup and improve cache
1 parent 7d59330 commit 63b3145

File tree

9 files changed

+81
-92
lines changed

9 files changed

+81
-92
lines changed

Diff for: bun.lock

+2-9
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@
148148
"@sindresorhus/fnv1a": "^3.1.0",
149149
"jwt-decode": "^4.0.0",
150150
"next": "canary",
151-
"p-memoize": "^7.1.1",
152151
"react": "^19.0.0",
153152
"react-dom": "^19.0.0",
154153
"rison": "^0.1.1",
@@ -2308,7 +2307,7 @@
23082307

23092308
"mime-types": ["[email protected]", "", { "dependencies": { "mime-db": "^1.53.0" } }, "sha512-XqoSHeCGjVClAmoGFG3lVFqQFRIrTVw2OH3axRqAcfaw+gHWIfnASS92AV+Rl/mk0MupgZTRHQOjxY6YVnzK5w=="],
23102309

2311-
"mimic-fn": ["mimic-fn@4.0.0", "", {}, "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="],
2310+
"mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="],
23122311

23132312
"mimic-response": ["[email protected]", "", {}, "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="],
23142313

@@ -2420,8 +2419,6 @@
24202419

24212420
"p-map": ["[email protected]", "", {}, "sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q=="],
24222421

2423-
"p-memoize": ["[email protected]", "", { "dependencies": { "mimic-fn": "^4.0.0", "type-fest": "^3.0.0" } }, "sha512-DZ/bONJILHkQ721hSr/E9wMz5Am/OTJ9P6LhLFo2Tu+jL8044tgc9LwHO8g4PiaYePnlVVRAJcKmgy8J9MVFrA=="],
2424-
24252422
"p-try": ["[email protected]", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="],
24262423

24272424
"package-json": ["[email protected]", "", { "dependencies": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", "semver": "^6.2.0" } }, "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ=="],
@@ -2844,7 +2841,7 @@
28442841

28452842
"type": ["[email protected]", "", {}, "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="],
28462843

2847-
"type-fest": ["type-fest@3.13.1", "", {}, "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g=="],
2844+
"type-fest": ["type-fest@0.13.1", "", {}, "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="],
28482845

28492846
"type-is": ["[email protected]", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-gd0sGezQYCbWSbkZr75mln4YBidWUN60+devscpLF5mtRDUpiaTvKpBNrdaCvel1NdR2k6vclXybU5fBd2i+nw=="],
28502847

@@ -4116,8 +4113,6 @@
41164113

41174114
"mdast-util-gfm-task-list-item/mdast-util-to-markdown": ["[email protected]", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ=="],
41184115

4119-
"meow/type-fest": ["[email protected]", "", {}, "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="],
4120-
41214116
"micro/arg": ["[email protected]", "", {}, "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg=="],
41224117

41234118
"micro/content-type": ["[email protected]", "", {}, "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="],
@@ -4146,8 +4141,6 @@
41464141

41474142
"normalize-package-data/semver": ["[email protected]", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="],
41484143

4149-
"onetime/mimic-fn": ["[email protected]", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="],
4150-
41514144
"p-filter/p-map": ["[email protected]", "", {}, "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="],
41524145

41534146
"package-json/semver": ["[email protected]", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],

Diff for: packages/gitbook-v2/package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
"server-only": "^0.0.1",
1313
"warn-once": "^0.1.1",
1414
"rison": "^0.1.1",
15-
"jwt-decode": "^4.0.0",
16-
"p-memoize": "^7.1.1"
15+
"jwt-decode": "^4.0.0"
1716
},
1817
"devDependencies": {
1918
"gitbook": "*",

Diff for: packages/gitbook-v2/src/lib/data/api.ts

+35-36
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { GITBOOK_API_TOKEN, GITBOOK_API_URL, GITBOOK_USER_AGENT } from '@v2/lib/
1010
import { unstable_cache } from 'next/cache';
1111
import { getCloudflareContext } from './cloudflare';
1212
import { DataFetcherError, wrapDataFetcherError } from './errors';
13-
import { getCacheKey, memoize } from './memoize';
13+
import { memoize } from './memoize';
1414
import type { GitBookDataFetcher } from './types';
1515

1616
interface DataFetcherInput {
@@ -188,6 +188,7 @@ export function createDataFetcher(
188188
}
189189

190190
const getUserById = memoize(async function getUserById(
191+
cacheKey,
191192
input: DataFetcherInput,
192193
params: { userId: string }
193194
) {
@@ -201,7 +202,7 @@ const getUserById = memoize(async function getUserById(
201202
});
202203
});
203204
},
204-
[input.apiToken ?? '', params.userId],
205+
[cacheKey],
205206
{
206207
revalidate: 60 * 60 * 24,
207208
tags: [],
@@ -212,6 +213,7 @@ const getUserById = memoize(async function getUserById(
212213
});
213214

214215
const getSpace = memoize(async function getSpace(
216+
cacheKey,
215217
input: DataFetcherInput,
216218
params: {
217219
spaceId: string;
@@ -230,7 +232,7 @@ const getSpace = memoize(async function getSpace(
230232
});
231233
});
232234
},
233-
[input.apiToken ?? '', params.spaceId, params.shareKey ?? ''],
235+
[cacheKey],
234236
{
235237
revalidate: 60 * 60 * 24,
236238
tags: [
@@ -246,6 +248,7 @@ const getSpace = memoize(async function getSpace(
246248
});
247249

248250
const getChangeRequest = memoize(async function getChangeRequest(
251+
cacheKey,
249252
input: DataFetcherInput,
250253
params: {
251254
spaceId: string;
@@ -268,7 +271,7 @@ const getChangeRequest = memoize(async function getChangeRequest(
268271
}
269272
);
270273
},
271-
[input.apiToken ?? '', params.spaceId, params.changeRequestId ?? ''],
274+
[cacheKey],
272275
{
273276
revalidate: 60 * 5,
274277
tags: [
@@ -285,6 +288,7 @@ const getChangeRequest = memoize(async function getChangeRequest(
285288
});
286289

287290
const getRevision = memoize(async function getRevision(
291+
cacheKey,
288292
input: DataFetcherInput,
289293
params: {
290294
spaceId: string;
@@ -311,7 +315,7 @@ const getRevision = memoize(async function getRevision(
311315
}
312316
);
313317
},
314-
[input.apiToken ?? '', params.spaceId, params.revisionId],
318+
[cacheKey],
315319
{
316320
revalidate: 60 * 60 * 24 * 7,
317321
tags: [],
@@ -322,6 +326,7 @@ const getRevision = memoize(async function getRevision(
322326
});
323327

324328
const getRevisionPages = memoize(async function getRevisionPages(
329+
cacheKey,
325330
input: DataFetcherInput,
326331
params: {
327332
spaceId: string;
@@ -348,7 +353,7 @@ const getRevisionPages = memoize(async function getRevisionPages(
348353
}
349354
);
350355
},
351-
[input.apiToken ?? '', params.spaceId, params.revisionId],
356+
[cacheKey],
352357
{
353358
revalidate: 60 * 60 * 24,
354359
tags: [],
@@ -359,6 +364,7 @@ const getRevisionPages = memoize(async function getRevisionPages(
359364
});
360365

361366
const getRevisionFile = memoize(async function getRevisionFile(
367+
cacheKey,
362368
input: DataFetcherInput,
363369
params: {
364370
spaceId: string;
@@ -384,7 +390,7 @@ const getRevisionFile = memoize(async function getRevisionFile(
384390
}
385391
);
386392
},
387-
[input.apiToken ?? '', params.spaceId, params.revisionId, params.fileId],
393+
[cacheKey],
388394
{
389395
revalidate: 60 * 60 * 24 * 7,
390396
tags: [],
@@ -395,6 +401,7 @@ const getRevisionFile = memoize(async function getRevisionFile(
395401
});
396402

397403
const getRevisionPageMarkdown = memoize(async function getRevisionPageMarkdown(
404+
cacheKey,
398405
input: DataFetcherInput,
399406
params: {
400407
spaceId: string;
@@ -425,7 +432,7 @@ const getRevisionPageMarkdown = memoize(async function getRevisionPageMarkdown(
425432
}
426433
);
427434
},
428-
[input.apiToken ?? '', params.spaceId, params.revisionId, params.pageId],
435+
[cacheKey],
429436
{
430437
revalidate: 60 * 60 * 24 * 7,
431438
tags: [],
@@ -436,6 +443,7 @@ const getRevisionPageMarkdown = memoize(async function getRevisionPageMarkdown(
436443
});
437444

438445
const getRevisionPageByPath = memoize(async function getRevisionPageByPath(
446+
cacheKey,
439447
input: DataFetcherInput,
440448
params: {
441449
spaceId: string;
@@ -461,7 +469,7 @@ const getRevisionPageByPath = memoize(async function getRevisionPageByPath(
461469
}
462470
);
463471
},
464-
[input.apiToken ?? '', params.spaceId, params.revisionId, params.path],
472+
[cacheKey],
465473
{
466474
revalidate: 60 * 60 * 24 * 7,
467475
tags: [],
@@ -472,6 +480,7 @@ const getRevisionPageByPath = memoize(async function getRevisionPageByPath(
472480
});
473481

474482
const getDocument = memoize(async function getDocument(
483+
cacheKey,
475484
input: DataFetcherInput,
476485
params: {
477486
spaceId: string;
@@ -495,7 +504,7 @@ const getDocument = memoize(async function getDocument(
495504
}
496505
);
497506
},
498-
[input.apiToken ?? '', params.spaceId, params.documentId],
507+
[cacheKey],
499508
{
500509
revalidate: 60 * 60 * 24 * 7,
501510
tags: [],
@@ -506,6 +515,7 @@ const getDocument = memoize(async function getDocument(
506515
});
507516

508517
const getComputedDocument = memoize(async function getComputedDocument(
518+
cacheKey,
509519
input: DataFetcherInput,
510520
params: {
511521
spaceId: string;
@@ -530,13 +540,7 @@ const getComputedDocument = memoize(async function getComputedDocument(
530540
}
531541
);
532542
},
533-
[
534-
input.apiToken ?? '',
535-
params.spaceId,
536-
params.organizationId,
537-
getCacheKey([params.source]),
538-
params.seed,
539-
],
543+
[cacheKey],
540544
{
541545
revalidate: 60 * 60 * 24,
542546
tags: getComputedContentSourceCacheTags(
@@ -553,6 +557,7 @@ const getComputedDocument = memoize(async function getComputedDocument(
553557
});
554558

555559
const getReusableContent = memoize(async function getReusableContent(
560+
cacheKey,
556561
input: DataFetcherInput,
557562
params: {
558563
spaceId: string;
@@ -577,7 +582,7 @@ const getReusableContent = memoize(async function getReusableContent(
577582
}
578583
);
579584
},
580-
[input.apiToken ?? '', params.spaceId, params.revisionId, params.reusableContentId],
585+
[cacheKey],
581586
{
582587
revalidate: 60 * 60 * 24 * 7,
583588
tags: [],
@@ -589,6 +594,7 @@ const getReusableContent = memoize(async function getReusableContent(
589594

590595
const getLatestOpenAPISpecVersionContent = memoize(
591596
async function getLatestOpenAPISpecVersionContent(
597+
cacheKey,
592598
input: DataFetcherInput,
593599
params: {
594600
organizationId: string;
@@ -611,7 +617,7 @@ const getLatestOpenAPISpecVersionContent = memoize(
611617
}
612618
);
613619
},
614-
[input.apiToken ?? '', params.organizationId, params.slug],
620+
[cacheKey],
615621
{
616622
revalidate: 60 * 60 * 24,
617623
tags: [
@@ -629,6 +635,7 @@ const getLatestOpenAPISpecVersionContent = memoize(
629635
);
630636

631637
const getPublishedContentSite = memoize(async function getPublishedContentSite(
638+
cacheKey,
632639
input: DataFetcherInput,
633640
params: {
634641
organizationId: string;
@@ -655,7 +662,7 @@ const getPublishedContentSite = memoize(async function getPublishedContentSite(
655662
}
656663
);
657664
},
658-
[input.apiToken ?? '', params.organizationId, params.siteId, params.siteShareKey ?? ''],
665+
[cacheKey],
659666
{
660667
revalidate: 60 * 60 * 24,
661668
tags: [
@@ -671,6 +678,7 @@ const getPublishedContentSite = memoize(async function getPublishedContentSite(
671678
});
672679

673680
const getSiteRedirectBySource = memoize(async function getSiteRedirectBySource(
681+
cacheKey,
674682
input: DataFetcherInput,
675683
params: {
676684
organizationId: string;
@@ -699,13 +707,7 @@ const getSiteRedirectBySource = memoize(async function getSiteRedirectBySource(
699707
}
700708
);
701709
},
702-
[
703-
input.apiToken ?? '',
704-
params.organizationId,
705-
params.siteId,
706-
params.siteShareKey ?? '',
707-
params.source,
708-
],
710+
[cacheKey],
709711
{
710712
revalidate: 60 * 60 * 24,
711713
tags: [
@@ -721,6 +723,7 @@ const getSiteRedirectBySource = memoize(async function getSiteRedirectBySource(
721723
});
722724

723725
const getEmbedByUrl = memoize(async function getEmbedByUrl(
726+
cacheKey,
724727
input: DataFetcherInput,
725728
params: {
726729
url: string;
@@ -739,7 +742,7 @@ const getEmbedByUrl = memoize(async function getEmbedByUrl(
739742
});
740743
});
741744
},
742-
[input.apiToken ?? '', params.spaceId, params.url],
745+
[cacheKey],
743746
{
744747
revalidate: 60 * 60 * 24 * 7,
745748
tags: [],
@@ -750,6 +753,7 @@ const getEmbedByUrl = memoize(async function getEmbedByUrl(
750753
});
751754

752755
const searchSiteContent = memoize(async function searchSiteContent(
756+
cacheKey,
753757
input: DataFetcherInput,
754758
params: Parameters<GitBookDataFetcher['searchSiteContent']>[0]
755759
) {
@@ -770,13 +774,7 @@ const searchSiteContent = memoize(async function searchSiteContent(
770774
}
771775
);
772776
},
773-
[
774-
input.apiToken ?? '',
775-
params.organizationId,
776-
params.siteId,
777-
params.query,
778-
getCacheKey([params.scope]),
779-
],
777+
[cacheKey],
780778
{
781779
revalidate: 60 * 60 * 24,
782780
tags: [],
@@ -787,6 +785,7 @@ const searchSiteContent = memoize(async function searchSiteContent(
787785
});
788786

789787
const renderIntegrationUi = memoize(async function renderIntegrationUi(
788+
cacheKey,
790789
input: DataFetcherInput,
791790
params: {
792791
integrationName: string;
@@ -806,7 +805,7 @@ const renderIntegrationUi = memoize(async function renderIntegrationUi(
806805
});
807806
});
808807
},
809-
[input.apiToken ?? '', params.integrationName],
808+
[cacheKey],
810809
{
811810
revalidate: 60 * 60 * 24,
812811
tags: [

0 commit comments

Comments
 (0)