mirror of
https://github.com/supabase/supabase.git
synced 2026-05-06 17:00:27 -04:00
81 lines
1.6 KiB
TypeScript
81 lines
1.6 KiB
TypeScript
import ApiGenerator from './api'
|
|
import CliGenerator from './cli'
|
|
import ConfigGenerator from './config'
|
|
import SdkGenerator from './sdk'
|
|
import LegacyGenerator from './legacy'
|
|
import { parseArgs } from 'node:util'
|
|
import { strict as assert } from 'node:assert'
|
|
|
|
const args = parseArgs({
|
|
options: {
|
|
input: {
|
|
type: 'string',
|
|
},
|
|
output: {
|
|
type: 'string',
|
|
short: 'n',
|
|
},
|
|
type: {
|
|
type: 'string',
|
|
short: 'n',
|
|
},
|
|
url: {
|
|
type: 'string',
|
|
short: 'n',
|
|
},
|
|
},
|
|
})
|
|
|
|
const allowedTypes = ['cli', 'config', 'sdk', 'api', 'legacy'] as const
|
|
type AllowedType = (typeof allowedTypes)[number]
|
|
|
|
assert(args.values.input, 'input is required')
|
|
assert(args.values.output, 'output is required')
|
|
assert(allowedTypes.includes(args.values.type as AllowedType), 'type is required')
|
|
|
|
DocGenerator({
|
|
input: args.values.input,
|
|
output: args.values.output,
|
|
type: args.values.type as AllowedType,
|
|
url: args.values.url,
|
|
})
|
|
|
|
export default async function DocGenerator({
|
|
input,
|
|
output,
|
|
type,
|
|
url,
|
|
}: {
|
|
input: string
|
|
output: string
|
|
type: AllowedType
|
|
url?: string
|
|
}) {
|
|
switch (type) {
|
|
case 'api':
|
|
await ApiGenerator(input, output, url || '')
|
|
break
|
|
|
|
case 'cli':
|
|
await CliGenerator(input, output)
|
|
break
|
|
|
|
case 'config':
|
|
await ConfigGenerator(input, output)
|
|
break
|
|
|
|
case 'sdk':
|
|
await SdkGenerator(input, output)
|
|
break
|
|
|
|
case 'legacy':
|
|
await LegacyGenerator(input, output)
|
|
break
|
|
|
|
default:
|
|
await console.log('Unrecognized type: ', type)
|
|
break
|
|
}
|
|
return 'Done'
|
|
}
|