Skip to content

Commit 46cda13

Browse files
committed
Keep old methods
1 parent 83ef048 commit 46cda13

File tree

2 files changed

+109
-24
lines changed

2 files changed

+109
-24
lines changed

packages/gitbook/src/lib/api.ts

+73-4
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,40 @@ const getAPIContextId = async () => {
394394
* Get a revision by its ID.
395395
*/
396396
export const getRevision = cache({
397-
name: 'api.getRevision.v3',
397+
name: 'api.getRevision.v2',
398+
tag: (spaceId, revisionId) =>
399+
getCacheTag({ tag: 'revision', space: spaceId, revision: revisionId }),
400+
tagImmutable: true,
401+
getKeySuffix: getAPIContextId,
402+
get: async (
403+
spaceId: string,
404+
revisionId: string,
405+
fetchOptions: GetRevisionOptions,
406+
options: CacheFunctionOptions
407+
) => {
408+
const apiCtx = await api();
409+
const response = await apiCtx.client.spaces.getRevisionById(
410+
spaceId,
411+
revisionId,
412+
{
413+
metadata: fetchOptions.metadata,
414+
},
415+
{
416+
...noCacheFetchOptions,
417+
signal: options.signal,
418+
}
419+
);
420+
421+
return cacheResponse(response, fetchOptions.metadata ? cacheTtl_7days : cacheTtl_1day);
422+
},
423+
getKeyArgs: (args) => [args[0], args[1]],
424+
});
425+
426+
/**
427+
* Get a revision by its ID and tags.
428+
*/
429+
export const getRevisionAndTags = cache({
430+
name: 'api.getRevisionAndTags.v1',
398431
tag: (spaceId, revisionId, fetchOptions) =>
399432
// Temporary hack to make it work with OpenAPI on v1
400433
fetchOptions.tags?.[0] ??
@@ -439,7 +472,43 @@ export const getRevision = cache({
439472
* Get all the pages in a revision of a space.
440473
*/
441474
export const getRevisionPages = cache({
442-
name: 'api.getRevisionPages.v5',
475+
name: 'api.getRevisionPages.v4',
476+
tag: (spaceId, revisionId) =>
477+
getCacheTag({ tag: 'revision', space: spaceId, revision: revisionId }),
478+
tagImmutable: true,
479+
getKeySuffix: getAPIContextId,
480+
get: async (
481+
spaceId: string,
482+
revisionId: string,
483+
fetchOptions: GetRevisionOptions,
484+
options: CacheFunctionOptions
485+
) => {
486+
const apiCtx = await api();
487+
const response = await apiCtx.client.spaces.listPagesInRevisionById(
488+
spaceId,
489+
revisionId,
490+
{
491+
metadata: fetchOptions.metadata,
492+
},
493+
{
494+
...noCacheFetchOptions,
495+
signal: options.signal,
496+
}
497+
);
498+
499+
return cacheResponse(response, {
500+
...(fetchOptions.metadata ? cacheTtl_7days : cacheTtl_1day),
501+
data: response.data.pages,
502+
});
503+
},
504+
getKeyArgs: (args) => [args[0], args[1]],
505+
});
506+
507+
/**
508+
* Get all the pages in a revision of a space.
509+
*/
510+
export const getRevisionPagesAndTags = cache({
511+
name: 'api.getRevisionPages.v1',
443512
tag: (spaceId, revisionId, fetchOptions) =>
444513
// Temporary hack to make it work with OpenAPI on v1
445514
fetchOptions.tags?.[0] ??
@@ -663,7 +732,7 @@ export const getRevisionFile = batch<[string, string, string], RevisionFile | nu
663732
let files: Record<string, RevisionFile> = {};
664733

665734
if (hasRevisionInMemory) {
666-
const { revision } = await getRevision(spaceId, revisionId, { metadata: false });
735+
const revision = await getRevision(spaceId, revisionId, { metadata: false });
667736
files = {};
668737
revision.files.forEach((file) => {
669738
files[file.id] = file;
@@ -709,7 +778,7 @@ export const getReusableContent = async (
709778
});
710779

711780
if (hasRevisionInMemory) {
712-
const { revision } = await getRevision(spaceId, revisionId, { metadata: false });
781+
const revision = await getRevision(spaceId, revisionId, { metadata: false });
713782
return (
714783
revision.reusableContents.find(
715784
(reusableContent) => reusableContent.id === reusableContentId

packages/gitbook/src/lib/v1.ts

+36-20
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ import {
2222
getLatestOpenAPISpecVersionContent,
2323
getPublishedContentSite,
2424
getReusableContent,
25-
getRevision,
25+
getRevisionAndTags,
2626
getRevisionFile,
2727
getRevisionPageByPath,
28-
getRevisionPages,
28+
getRevisionPagesAndTags,
2929
getSiteRedirectBySource,
3030
getSpace,
3131
getUserById,
@@ -135,21 +135,29 @@ async function getDataFetcherV1(): Promise<GitBookDataFetcher> {
135135

136136
getRevision(params) {
137137
return wrapDataFetcherError(async () => {
138-
const { revision, tags } = await getRevision(params.spaceId, params.revisionId, {
139-
metadata: params.metadata,
140-
computed: false,
141-
});
138+
const { revision, tags } = await getRevisionAndTags(
139+
params.spaceId,
140+
params.revisionId,
141+
{
142+
metadata: params.metadata,
143+
computed: false,
144+
}
145+
);
142146

143147
if (
144148
Object.values(revision.pages).some(
145149
(page) => page.type === RevisionPageType.Computed
146150
)
147151
) {
148-
const { revision } = await getRevision(params.spaceId, params.revisionId, {
149-
metadata: params.metadata,
150-
computed: true,
151-
tags,
152-
});
152+
const { revision } = await getRevisionAndTags(
153+
params.spaceId,
154+
params.revisionId,
155+
{
156+
metadata: params.metadata,
157+
computed: true,
158+
tags,
159+
}
160+
);
153161
return revision;
154162
}
155163

@@ -200,17 +208,25 @@ async function getDataFetcherV1(): Promise<GitBookDataFetcher> {
200208

201209
getRevisionPages(params) {
202210
return wrapDataFetcherError(async () => {
203-
const { pages, tags } = await getRevisionPages(params.spaceId, params.revisionId, {
204-
metadata: params.metadata,
205-
computed: false,
206-
});
211+
const { pages, tags } = await getRevisionPagesAndTags(
212+
params.spaceId,
213+
params.revisionId,
214+
{
215+
metadata: params.metadata,
216+
computed: false,
217+
}
218+
);
207219

208220
if (pages.some((page) => page.type === RevisionPageType.Computed)) {
209-
const { pages } = await getRevisionPages(params.spaceId, params.revisionId, {
210-
metadata: params.metadata,
211-
computed: true,
212-
tags,
213-
});
221+
const { pages } = await getRevisionPagesAndTags(
222+
params.spaceId,
223+
params.revisionId,
224+
{
225+
metadata: params.metadata,
226+
computed: true,
227+
tags,
228+
}
229+
);
214230

215231
return pages;
216232
}

0 commit comments

Comments
 (0)