@@ -30,54 +30,59 @@ export async function resolveFormatForGiscus(
30
30
project : ProjectContext ,
31
31
format : Format ,
32
32
) {
33
- const comments = format . metadata [ kComments ] as Record < string , unknown > ;
34
- if ( comments ) {
35
- const giscusOptions = comments [ kGiscus ] as Record < string , unknown > ;
36
- if ( giscusOptions ) {
37
- // Giscus is configured, so we need to check whether the
38
- // the repo-id and category-id are set. If they are not,
39
- // we need to fetch them and populate them into the format
40
- if (
41
- giscusOptions [ kGiscusRepoId ] === undefined ||
42
- giscusOptions [ kGiscusCategoryId ] === undefined
43
- ) {
44
- const repo = giscusOptions . repo as string ;
45
- const fileName = `${ repo } .json` ;
33
+ const comments = format . metadata [ kComments ] as
34
+ | Record < string , unknown >
35
+ | false
36
+ | undefined ;
37
+ if ( ! comments ) return ;
46
38
47
- let giscusMeta : GithubDiscussionMetadata ;
48
- // The scratch directory used to cache metadata
49
- const giscusPath = projectScratchPath ( project . dir , kGiscusDir ) ;
50
- ensureDirSync ( giscusPath ) ;
39
+ const giscusOptions = comments [ kGiscus ] as
40
+ | Record < string , unknown >
41
+ | undefined ;
42
+ if ( ! giscusOptions ) return ;
51
43
52
- // The path to the metadata file for this repo
53
- const path = join (
54
- giscusPath ,
55
- fileName . replace ( "/" , "." ) ,
56
- ) ;
44
+ // Giscus is configured, so we need to check whether the
45
+ // the repo-id and category-id are set. If they are not,
46
+ // we need to fetch them and populate them into the format
47
+ if (
48
+ giscusOptions [ kGiscusRepoId ] !== undefined &&
49
+ giscusOptions [ kGiscusCategoryId ] !== undefined
50
+ ) return ;
57
51
58
- try {
59
- // Try to read the cached data and use that
60
- const giscusJson = Deno . readTextFileSync ( path ) ;
61
- giscusMeta = JSON . parse ( giscusJson ) ;
62
- } catch {
63
- // Couldn't read the cached metadata, fetch it
64
- removeIfExists ( path ) ;
65
- giscusMeta = await getGithubDiscussionsMetadata ( repo ) ;
66
- const jsonStr = JSON . stringify ( giscusMeta , undefined , 2 ) ;
67
- Deno . writeTextFileSync ( path , jsonStr ) ;
68
- }
52
+ const repo = giscusOptions . repo as string ;
53
+ const fileName = `${ repo } .json` ;
69
54
70
- // Populate the ids if need be
71
- if ( giscusOptions [ kGiscusRepoId ] === undefined ) {
72
- giscusOptions [ kGiscusRepoId ] = giscusMeta . repositoryId ;
73
- }
74
- if ( giscusOptions [ kGiscusCategoryId ] === undefined ) {
75
- giscusOptions [ kGiscusCategoryId ] = getDiscussionCategoryId (
76
- ( giscusOptions [ kGiscusCategoryId ] || "" ) as string ,
77
- giscusMeta ,
78
- ) ;
79
- }
80
- }
81
- }
55
+ let giscusMeta : GithubDiscussionMetadata ;
56
+ // The scratch directory used to cache metadata
57
+ const giscusPath = projectScratchPath ( project . dir , kGiscusDir ) ;
58
+ ensureDirSync ( giscusPath ) ;
59
+
60
+ // The path to the metadata file for this repo
61
+ const path = join (
62
+ giscusPath ,
63
+ fileName . replace ( "/" , "." ) ,
64
+ ) ;
65
+
66
+ try {
67
+ // Try to read the cached data and use that
68
+ const giscusJson = Deno . readTextFileSync ( path ) ;
69
+ giscusMeta = JSON . parse ( giscusJson ) ;
70
+ } catch {
71
+ // Couldn't read the cached metadata, fetch it
72
+ removeIfExists ( path ) ;
73
+ giscusMeta = await getGithubDiscussionsMetadata ( repo ) ;
74
+ const jsonStr = JSON . stringify ( giscusMeta , undefined , 2 ) ;
75
+ Deno . writeTextFileSync ( path , jsonStr ) ;
76
+ }
77
+
78
+ // Populate the ids if need be
79
+ if ( giscusOptions [ kGiscusRepoId ] === undefined ) {
80
+ giscusOptions [ kGiscusRepoId ] = giscusMeta . repositoryId ;
81
+ }
82
+ if ( giscusOptions [ kGiscusCategoryId ] === undefined ) {
83
+ giscusOptions [ kGiscusCategoryId ] = getDiscussionCategoryId (
84
+ ( giscusOptions [ kGiscusCategoryId ] || "" ) as string ,
85
+ giscusMeta ,
86
+ ) ;
82
87
}
83
88
}
0 commit comments