sakura/scripts/options-export/dump-options.ts

32 lines
883 B
TypeScript

import options from './options'
import { writeFileSync } from 'fs'
const exportOptions: { [key: string]: any } = {}
const optionTypesTemplate = (fill: string) => {
return `
// THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
// Generated by scripts/options-export/dump-options.ts
export interface SakuraOptions {
${fill}
}
`
}
let types = ''
Object.keys(options).forEach((tab) => {
options[tab].options.forEach((option) => {
if (option.depends) delete option.depends // remove function
exportOptions[option.namespace] = option
types += `'${option.namespace}': any, `
})
})
console.dir(exportOptions)
const optionTypes = optionTypesTemplate(types)
writeFileSync('./app/configs/options.json', JSON.stringify(exportOptions, null, 2), { flag: 'w+' })
writeFileSync('./src/admin/optionsType.ts', optionTypes, { flag: 'w+' })