53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
|
|
import prettier from 'prettier'
|
||
|
|
import { corePlugins } from '../src/corePlugins'
|
||
|
|
import colors from '../src/public/colors'
|
||
|
|
import fs from 'fs'
|
||
|
|
import path from 'path'
|
||
|
|
|
||
|
|
fs.writeFileSync(
|
||
|
|
path.join(process.cwd(), 'types', 'generated', 'corePluginList.d.ts'),
|
||
|
|
`export type CorePluginList = ${Object.keys(corePlugins)
|
||
|
|
.map((p) => `'${p}'`)
|
||
|
|
.join(' | ')}`
|
||
|
|
)
|
||
|
|
|
||
|
|
let colorsWithoutDeprecatedColors = Object.fromEntries(
|
||
|
|
Object.entries(Object.getOwnPropertyDescriptors(colors))
|
||
|
|
.filter(([_, { value }]) => {
|
||
|
|
return typeof value !== 'undefined'
|
||
|
|
})
|
||
|
|
.map(([name, definition]) => [name, definition.value])
|
||
|
|
)
|
||
|
|
|
||
|
|
let deprecatedColors = Object.entries(Object.getOwnPropertyDescriptors(colors))
|
||
|
|
.filter(([_, { value }]) => {
|
||
|
|
return typeof value === 'undefined'
|
||
|
|
})
|
||
|
|
.map(([name, definition]) => {
|
||
|
|
let warn = console.warn
|
||
|
|
let messages = []
|
||
|
|
console.warn = (...args) => messages.push(args.pop())
|
||
|
|
definition.get()
|
||
|
|
console.warn = warn
|
||
|
|
let message = messages.join(' ').trim()
|
||
|
|
let newColor = message.match(/renamed to `(.*)`/)[1]
|
||
|
|
return `/** @deprecated ${message} */${name}: DefaultColors['${newColor}'],`
|
||
|
|
})
|
||
|
|
.join('\n')
|
||
|
|
|
||
|
|
fs.writeFileSync(
|
||
|
|
path.join(process.cwd(), 'types', 'generated', 'colors.d.ts'),
|
||
|
|
prettier.format(
|
||
|
|
`export interface DefaultColors { ${JSON.stringify(colorsWithoutDeprecatedColors).slice(
|
||
|
|
1,
|
||
|
|
-1
|
||
|
|
)}\n${deprecatedColors}\n}`,
|
||
|
|
{
|
||
|
|
semi: false,
|
||
|
|
singleQuote: true,
|
||
|
|
printWidth: 100,
|
||
|
|
parser: 'typescript',
|
||
|
|
}
|
||
|
|
)
|
||
|
|
)
|