-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
datasources.ts
36 lines (33 loc) · 1.27 KB
/
datasources.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { getDatasources } from '../../lib/datasource';
import { readFile, updateFile } from '../utils';
import {
formatDescription,
formatUrls,
getDisplayName,
replaceContent,
} from './utils';
export async function generateDatasources(dist: string): Promise<void> {
const dsList = getDatasources();
let datasourceContent =
'\nSupported values for `datasource` are: ' +
[...dsList.keys()].map((v) => `\`${v}\``).join(', ') +
'.\n\n';
for (const [datasource, definition] of dsList) {
const { id, urls, defaultConfig } = definition;
const displayName = getDisplayName(datasource, definition);
datasourceContent += `\n### ${displayName} Datasource\n\n`;
datasourceContent += `**Identifier**: \`${id}\`\n\n`;
datasourceContent += formatUrls(urls);
datasourceContent += await formatDescription('datasource', datasource);
if (defaultConfig) {
datasourceContent +=
'**Default configuration**:\n\n```json\n' +
JSON.stringify(defaultConfig, undefined, 2) +
'\n```\n';
}
datasourceContent += `\n----\n\n`;
}
let indexContent = await readFile(`docs/usage/modules/datasource.md`);
indexContent = replaceContent(indexContent, datasourceContent);
await updateFile(`${dist}/modules/datasource.md`, indexContent);
}