chore(cli): improve

This commit is contained in:
Benjamin Canac
2024-12-11 11:44:51 +01:00
parent efd104a10f
commit 52e2a4d68f
2 changed files with 24 additions and 9 deletions

View File

@@ -32,6 +32,10 @@ export default defineCommand({
content: { content: {
type: 'boolean', type: 'boolean',
description: 'Create a content component (with --pro).' description: 'Create a content component (with --pro).'
},
template: {
type: 'string',
description: 'Only generate template.'
} }
}, },
async setup({ args }) { async setup({ args }) {
@@ -53,6 +57,10 @@ export default defineCommand({
const path = resolve('.') const path = resolve('.')
for (const template of Object.keys(templates)) { for (const template of Object.keys(templates)) {
if (args.template && template !== args.template) {
continue
}
const { filename, contents } = templates[template](args) const { filename, contents } = templates[template](args)
if (!contents) { if (!contents) {
continue continue
@@ -70,6 +78,10 @@ export default defineCommand({
consola.success(`🪄 Generated ${filePath}!`) consola.success(`🪄 Generated ${filePath}!`)
} }
if (args.template) {
return
}
const themePath = resolve(path, `src/theme/${args.prose ? 'prose/' : ''}${args.content ? 'content/' : ''}index.ts`) const themePath = resolve(path, `src/theme/${args.prose ? 'prose/' : ''}${args.content ? 'content/' : ''}index.ts`)
await appendFile(themePath, `export { default as ${camelCase(name)} } from './${kebabCase(name)}'`) await appendFile(themePath, `export { default as ${camelCase(name)} } from './${kebabCase(name)}'`)
await sortFile(themePath) await sortFile(themePath)

View File

@@ -163,15 +163,18 @@ describe('${upperName}', () => {
} }
} }
const doc = ({ name, pro }) => { const docs = ({ name, pro, primitive }) => {
const kebabName = kebabCase(name) const kebabName = kebabCase(name)
const upperName = splitByCase(name).map(p => upperFirst(p)).join('') const upperName = splitByCase(name).map(p => upperFirst(p)).join('')
return { return {
filename: `docs/content/${pro ? 'pro' : '3.components'}/${kebabName}.md`, filename: `docs/content/3.components/${kebabName}.md`,
contents: `--- contents: `---
description: description: ''${pro
links: ${pro ? `
module: ui-pro`
: ''}
links: ${primitive
? '' ? ''
: ` : `
- label: ${upperName} - label: ${upperName}
@@ -190,19 +193,19 @@ links: ${pro
### Props ### Props
:component-props :component-props${pro ? '{pro}' : ''}
### Slots ### Slots
:component-slots :component-slots${pro ? '{pro}' : ''}
### Emits ### Emits
:component-emits :component-emits${pro ? '{pro}' : ''}
## Theme ## Theme
:component-theme :component-theme${pro ? '{pro}' : ''}
` `
} }
} }
@@ -212,5 +215,5 @@ export default {
component, component,
theme, theme,
test, test,
doc docs
} }