1
1
import { headers } from 'next/headers' ;
2
+ import { assert } from 'ts-essentials' ;
2
3
3
4
import { SiteContentPointer , SpaceContentPointer } from './api' ;
4
5
@@ -7,28 +8,34 @@ import { SiteContentPointer, SpaceContentPointer } from './api';
7
8
*/
8
9
export async function getSiteContentPointer ( ) : Promise < SiteContentPointer > {
9
10
const headersList = await headers ( ) ;
11
+
10
12
const spaceId = headersList . get ( 'x-gitbook-content-space' ) ;
13
+ assert ( spaceId , 'x-gitbook-content-space should be set in the headers by the middleware' ) ;
14
+
11
15
const siteId = headersList . get ( 'x-gitbook-content-site' ) ;
16
+ assert ( siteId , 'x-gitbook-content-site should be set in the headers by the middleware' ) ;
17
+
12
18
const organizationId = headersList . get ( 'x-gitbook-content-organization' ) ;
13
- const siteSpaceId = headersList . get ( 'x-gitbook-content-site-space' ) ;
14
- const siteSectionId = headersList . get ( 'x-gitbook-content-site-section' ) ;
15
- const siteShareKey = headersList . get ( 'x-gitbook-content-site-share-key' ) ;
19
+ assert (
20
+ organizationId ,
21
+ 'x-gitbook-content-organization should be set in the headers by the middleware' ,
22
+ ) ;
16
23
17
- if ( ! spaceId || ! siteId || ! organizationId ) {
18
- throw new Error (
19
- 'getSiteContentPointer is called outside the scope of a request processed by the middleware' ,
20
- ) ;
21
- }
24
+ const siteSectionId = headersList . get ( 'x-gitbook-content-site-section' ) ?? undefined ;
25
+ const siteSpaceId = headersList . get ( 'x-gitbook-content-site-space' ) ?? undefined ;
26
+ const siteShareKey = headersList . get ( 'x-gitbook-content-site-share-key' ) ?? undefined ;
27
+ const revisionId = headersList . get ( 'x-gitbook-content-revision' ) ?? undefined ;
28
+ const changeRequestId = headersList . get ( 'x-gitbook-content-changerequest' ) ?? undefined ;
22
29
23
30
const pointer : SiteContentPointer = {
24
31
siteId,
25
32
spaceId,
26
- siteSectionId : siteSectionId ?? undefined ,
27
- siteSpaceId : siteSpaceId ?? undefined ,
28
- siteShareKey : siteShareKey ?? undefined ,
29
33
organizationId,
30
- revisionId : headersList . get ( 'x-gitbook-content-revision' ) ?? undefined ,
31
- changeRequestId : headersList . get ( 'x-gitbook-content-changerequest' ) ?? undefined ,
34
+ siteSectionId,
35
+ siteSpaceId,
36
+ siteShareKey,
37
+ revisionId,
38
+ changeRequestId,
32
39
} ;
33
40
34
41
return pointer ;
@@ -40,17 +47,17 @@ export async function getSiteContentPointer(): Promise<SiteContentPointer> {
40
47
*/
41
48
export async function getSpacePointer ( ) : Promise < SpaceContentPointer > {
42
49
const headersList = await headers ( ) ;
50
+
43
51
const spaceId = headersList . get ( 'x-gitbook-content-space' ) ;
44
- if ( ! spaceId ) {
45
- throw new Error (
46
- 'getSpacePointer is called outside the scope of a request processed by the middleware' ,
47
- ) ;
48
- }
52
+ assert ( spaceId , 'x-gitbook-content-space should be set in the headers by the middleware' ) ;
53
+
54
+ const revisionId = headersList . get ( 'x-gitbook-content-revision' ) ?? undefined ;
55
+ const changeRequestId = headersList . get ( 'x-gitbook-content-changerequest' ) ?? undefined ;
49
56
50
57
const pointer : SpaceContentPointer = {
51
58
spaceId,
52
- revisionId : headersList . get ( 'x-gitbook-content-revision' ) ?? undefined ,
53
- changeRequestId : headersList . get ( 'x-gitbook-content-changerequest' ) ?? undefined ,
59
+ revisionId,
60
+ changeRequestId,
54
61
} ;
55
62
56
63
return pointer ;
0 commit comments