1
0
mirror of synced 2026-01-03 06:04:16 -05:00
Files
docs/src/rest/docs.js
2024-02-21 12:11:17 +00:00

80 lines
2.7 KiB
JavaScript
Executable File

#!/usr/bin/env node
import chalk from 'chalk'
import { readFile } from 'fs/promises'
import { allVersions } from '#src/versions/lib/all-versions.js'
// Translate the docs versioning nomenclature back to the OpenAPI names
const invertedVersionMapping = JSON.parse(await readFile('src/rest/lib/config.json')).versionMapping
const versionMapping = {}
Object.assign(
versionMapping,
...Object.entries(invertedVersionMapping).map(([a, b]) => ({ [b]: a })),
)
const openApiVersions = Object.values(allVersions)
.map((version) => version.openApiVersionName)
.map((version) => (version in versionMapping ? versionMapping[version] : version))
.join(', ')
const log = console.log
log(
chalk.green.bold(
'\nUse this script to build a local docs preview. You can build specific versions of the REST and Webhook docs.\n',
),
)
log(chalk.white.bold(' Versions that can be built: ', openApiVersions, '\n'))
log(chalk.green.bold('To start the local development server run:\n'))
log(chalk.white.bold(' npm run dev\n'))
log(chalk.green.bold.underline('REST docs script examples\n'))
log(chalk.green.bold(' Examples of ways you can build the REST docs locally:\n'))
log(
chalk.cyan.bold(' - REST All versions:') +
' ' +
chalk.magenta('npm run sync-rest ; npm run dev'),
)
log(
chalk.cyan.bold(' - REST Dotcom only:') +
' ' +
chalk.magenta('npm run sync-rest -- --versions api.github.com ; npm run dev'),
)
log(
chalk.cyan.bold(' - REST Two versions:') +
' ' +
chalk.magenta('npm run sync-rest -- --versions ghes-3.7 ghes-3.8 ; npm run dev'),
)
log(
chalk.cyan.bold(' - REST Dotcom and next calendar date version:') +
' ' +
chalk.magenta('npm run sync-rest -- --next --versions api.github.com ; npm run dev'),
)
log(
chalk.cyan.bold(' - REST Dotcom only, including unpublished operations:') +
' ' +
chalk.magenta(
'npm run sync-rest -- --versions api.github.com --include-unpublished ; npm run dev',
),
)
log(chalk.green.bold.underline('\nWebhook docs script examples\n'))
log(chalk.green.bold(' Examples of ways you can build the Webhook docs locally:\n'))
log(
chalk.cyan.bold(' - Webhooks All versions:') +
' ' +
chalk.magenta('npm run sync-webhooks ; npm run dev'),
)
log(
chalk.cyan.bold(' - Webhooks Dotcom only:') +
' ' +
chalk.magenta('npm run sync-webhooks -- --versions api.github.com ; npm run dev'),
)
log(
chalk.cyan.bold(' - Webhooks Two versions:') +
' ' +
chalk.magenta('npm run sync-webhooks -- --versions ghes-3.7 ghes-3.8 ; npm run dev'),
)
log(chalk.green.bold('\nFor more info and additional options, run:\n'))
log(chalk.white.bold(' npm run sync-rest -- --help'))
log(chalk.white(' or'))
log(chalk.white.bold(' npm run sync-webhooks -- --help'))
log('\n\n')