Skip to content

Commit 6834bc0

Browse files
committed
build: update API generator
1 parent f1bc622 commit 6834bc0

File tree

2 files changed

+54
-61
lines changed

2 files changed

+54
-61
lines changed

packages/docs/build/.eslintrc.json

Lines changed: 0 additions & 16 deletions
This file was deleted.

packages/docs/build/api.js

Lines changed: 54 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#!/usr/bin/env node
2+
23
'use strict'
34

4-
const docgen = require('react-docgen-typescript')
5-
const fs = require('fs').promises
6-
const path = require('path')
5+
const fs = require('node:fs').promises
6+
const path = require('node:path')
77
const globby = require('globby')
8+
const docgen = require('react-docgen-typescript')
89

910
const GLOB = ['**/src/**/*.tsx']
1011
const GLOBBY_OPTIONS = {
@@ -22,59 +23,67 @@ const options = {
2223

2324
const PRO_COMPONENTS = []
2425

26+
const replace = (text) =>
27+
text
28+
.replaceAll('(<', '(\\<')
29+
.replace(/<C(.*)\/>/g, '`<C$1/>`')
30+
.replaceAll('\n', '<br/>')
31+
2532
async function createMdx(file, filename, name, props) {
26-
if (typeof props === 'undefined') return
33+
if (typeof props === 'undefined') {
34+
return
35+
}
2736

2837
const pro = PRO_COMPONENTS.some((v) => file.includes(v))
2938
const relativeFilename = file.replace(GLOBBY_OPTIONS.cwd, '').replace('coreui-', '')
3039

31-
let content = `
32-
\`\`\`jsx
33-
import { ${name} } from '@coreui/${relativeFilename.split('/')[1]}${pro ? '-pro' : ''}'
34-
// or
35-
import ${name} from '@coreui${relativeFilename.replace('.tsx', '')}'
36-
\`\`\`\n
37-
`
40+
let content = `\n`
41+
content += `\`\`\`jsx\n`
42+
content += `import { ${name} } from '@coreui/${relativeFilename.split('/')[1]}${
43+
pro ? '-pro' : ''
44+
}'\n`
45+
content += `// or\n`
46+
content += `import ${name} from '@coreui${relativeFilename.replace('.tsx', '')}'\n`
47+
content += `\`\`\`\n\n`
3848

3949
let index = 0
4050
for (const [key, value] of Object.entries(props).sort()) {
4151
if (
42-
!value.parent.fileName.includes('@types/react/index.d.ts') &&
43-
typeof value.tags.ignore === 'undefined'
52+
value.parent.fileName.includes('@types/react/index.d.ts') ||
53+
value.parent.fileName.includes('@types/react/ts5.0/index.d.ts')
4454
) {
45-
if (index === 0) {
46-
content += `| Property | Description | Type | Default |\n`
47-
content += `| --- | --- | --- | --- |\n`
48-
}
49-
let name = value.name || ''
50-
const since = value.tags.since ? ` **_${value.tags.since}+_**` : ''
51-
const deprecated = value.tags.deprecated ? ` **_Deprecated ${value.tags.deprecated}+_**` : ''
52-
const description = value.description || '-'
53-
const type = value.type
54-
? value.type.name.includes('ReactElement')
55-
? 'ReactElement'
56-
: value.type.name
57-
: ''
58-
const defaultValue = value.defaultValue
59-
? value.defaultValue.value.replace('undefined', '-')
60-
: '-'
61-
const types = []
62-
type.split(' | ').map((element) => {
63-
types.push(`\`${element.replace(/"/g, "'")}\``)
64-
})
65-
66-
const replace = (text) =>
67-
text
68-
.replaceAll('(<', '(\\<')
69-
.replace(/<C(.*)\/>/g, '`<C$1/>`')
70-
.replaceAll('\n', '<br/>')
71-
72-
content += `| **${name}**${since}${deprecated} | ${replace(description)} | ${types.join(
73-
' \\| ',
74-
)} | ${replace(defaultValue)} |\n`
75-
console.log(`${filename} - ${key}`)
76-
index++
55+
continue
7756
}
57+
58+
if (value.tags.ignore === '') {
59+
continue
60+
}
61+
62+
if (index === 0) {
63+
content += `| Property | Description | Type | Default |\n`
64+
content += `| --- | --- | --- | --- |\n`
65+
}
66+
let name = value.name || ''
67+
const since = value.tags.since ? ` **_${value.tags.since}+_**` : ''
68+
const deprecated = value.tags.deprecated ? ` **_Deprecated ${value.tags.deprecated}+_**` : ''
69+
const description = value.description || '-'
70+
const type = value.type
71+
? (value.type.name.includes('ReactElement')
72+
? 'ReactElement'
73+
: value.type.name)
74+
: ''
75+
const defaultValue = value.defaultValue
76+
? value.defaultValue.value.replace('undefined', '-')
77+
: '-'
78+
const types = []
79+
type.split(' | ').map((element) => {
80+
types.push(`\`${element.replace(/"/g, "'")}\``)
81+
})
82+
83+
content += `| **${name}**${since}${deprecated} | ${replace(description)} | ${types.join(
84+
' \\| ',
85+
)} | ${replace(defaultValue)} |\n`
86+
index++
7887
}
7988

8089
await fs

0 commit comments

Comments
 (0)