@@ -52,6 +52,17 @@ export const devCenterProjectConfig: DevCenterProjectConfig = {
52
52
connectionUri : DEVCENTER_CONNECTION_URI ,
53
53
} ;
54
54
55
+ /**
56
+ Predefined values for sourceType that we want to use in our Pages.
57
+ */
58
+ export type SourceTypeName =
59
+ | "tech-docs"
60
+ | "devcenter"
61
+ | "marketing"
62
+ | "university-content"
63
+ | "tech-docs-external"
64
+ | "book-external" ;
65
+
55
66
const mongoDbUniversitySourceConstructor = async ( ) => {
56
67
const universityDataApiKey = UNIVERSITY_DATA_API_KEY ;
57
68
assert ( ! ! universityDataApiKey , "UNIVERSITY_DATA_API_KEY required" ) ;
@@ -67,34 +78,37 @@ const mongoDbUniversitySourceConstructor = async () => {
67
78
return makeMongoDbUniversityDataSource ( universityConfig ) ;
68
79
} ;
69
80
70
- export const mongoDbCorpDataSourceConfig : MakeMdOnGithubDataSourceParams = {
71
- name : "mongodb-corp" ,
72
- repoUrl : "https://github.com/mongodb/chatbot/" ,
73
- repoLoaderOptions : {
74
- branch : "main" ,
75
- ignoreFiles : [ / ^ (? ! ^ \/ m o n g o d b - c o r p \/ ) .* / , / ^ ( m o n g o d b - c o r p \/ R E A D M E \. m d ) $ / ] ,
76
- } ,
77
- pathToPageUrl ( _ , frontMatter ) {
78
- if ( ! frontMatter ?. url ) {
79
- throw new Error ( "frontMatter.url must be specified" ) ;
80
- }
81
- return frontMatter ?. url as string ;
82
- } ,
83
- extractMetadata ( _ , frontMatter ) {
84
- if ( ! frontMatter ) {
85
- throw new Error ( "frontMatter must be specified" ) ;
86
- }
87
- const frontMatterCopy = { ...frontMatter } ;
88
- delete frontMatterCopy . url ;
89
- return frontMatterCopy ;
90
- } ,
91
- extractTitle : ( _ , frontmatter ) => ( frontmatter ?. title as string ) ?? null ,
92
- } ;
81
+ export const mongoDbCorpDataSourceConfig : MakeMdOnGithubDataSourceParams < SourceTypeName > =
82
+ {
83
+ name : "mongodb-corp" ,
84
+ repoUrl : "https://github.com/mongodb/chatbot/" ,
85
+ repoLoaderOptions : {
86
+ branch : "main" ,
87
+ ignoreFiles : [ / ^ (? ! ^ \/ m o n g o d b - c o r p \/ ) .* / , / ^ ( m o n g o d b - c o r p \/ R E A D M E \. m d ) $ / ] ,
88
+ } ,
89
+ pathToPageUrl ( _ , frontMatter ) {
90
+ if ( ! frontMatter ?. url ) {
91
+ throw new Error ( "frontMatter.url must be specified" ) ;
92
+ }
93
+ return frontMatter ?. url as string ;
94
+ } ,
95
+ extractMetadata ( _ , frontMatter ) {
96
+ if ( ! frontMatter ) {
97
+ throw new Error ( "frontMatter must be specified" ) ;
98
+ }
99
+ const frontMatterCopy = { ...frontMatter } ;
100
+ delete frontMatterCopy . url ;
101
+ return frontMatterCopy ;
102
+ } ,
103
+ extractTitle : ( _ , frontmatter ) => ( frontmatter ?. title as string ) ?? null ,
104
+ } ;
93
105
const mongoDbCorpDataSource = async ( ) => {
94
- return await makeMdOnGithubDataSource ( mongoDbCorpDataSourceConfig ) ;
106
+ return await makeMdOnGithubDataSource < SourceTypeName > (
107
+ mongoDbCorpDataSourceConfig
108
+ ) ;
95
109
} ;
96
110
97
- export const mongoDbUniMetadataDataSourceConfig : MakeMdOnGithubDataSourceParams =
111
+ export const mongoDbUniMetadataDataSourceConfig : MakeMdOnGithubDataSourceParams < SourceTypeName > =
98
112
{
99
113
name : "university-meta" ,
100
114
repoUrl : "https://github.com/mongodb/chatbot/" ,
@@ -117,24 +131,28 @@ export const mongoDbUniMetadataDataSourceConfig: MakeMdOnGithubDataSourceParams
117
131
return frontMatterCopy ;
118
132
} ,
119
133
extractTitle : ( _ , frontmatter ) => ( frontmatter ?. title as string ) ?? null ,
134
+ sourceType : "university-content" ,
120
135
metadata : {
121
136
siteTitle : "MongoDB University" ,
122
137
} ,
123
138
} ;
124
139
const mongoDbUniMetadataSource = async ( ) => {
125
- return await makeMdOnGithubDataSource ( mongoDbUniMetadataDataSourceConfig ) ;
140
+ return await makeMdOnGithubDataSource < SourceTypeName > (
141
+ mongoDbUniMetadataDataSourceConfig
142
+ ) ;
126
143
} ;
127
144
128
145
export const terraformProviderSourceConstructor = async ( ) => {
129
146
const siteBaseUrl =
130
147
"https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs" ;
131
- return await makeGitDataSource ( {
148
+ return await makeGitDataSource < SourceTypeName > ( {
132
149
name : "atlas-terraform-provider" ,
133
150
repoUri : "https://github.com/mongodb/terraform-provider-mongodbatlas.git" ,
134
151
repoOptions : {
135
152
"--depth" : 1 ,
136
153
"--branch" : "master" ,
137
154
} ,
155
+ sourceType : "tech-docs-external" ,
138
156
metadata : {
139
157
productName : "mongodbatlas Terraform Provider" ,
140
158
tags : [ "docs" , "terraform" , "atlas" , "hcl" ] ,
@@ -147,7 +165,7 @@ export const terraformProviderSourceConstructor = async () => {
147
165
) ;
148
166
const url = getTerraformPageUrl ( siteBaseUrl , path ) ;
149
167
150
- const page : Omit < Page , "sourceName" > = {
168
+ const page : Omit < Page < SourceTypeName > , "sourceName" > = {
151
169
body : removeMarkdownImagesAndLinks ( body ) ,
152
170
format : "md" ,
153
171
url : url ,
0 commit comments