V13-FE-011: finalize search list layout slice
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
import fs from 'node:fs'
|
||||
import path from 'node:path'
|
||||
|
||||
const root=process.cwd()
|
||||
const src=path.join(root,'packages/kbx-ui/src/registry/componentManifest.ts')
|
||||
const out=path.join(root,'generated/component-manifest.json')
|
||||
const text=fs.readFileSync(src,'utf8')
|
||||
const entries=[...text.matchAll(/\{\s*name:\s*'([^']+)'\s*,\s*category:\s*'([^']+)'\s*,\s*purpose:\s*'([^']+)'[\s\S]*?version:\s*'([^']+)'\s*\}/g)]
|
||||
.map(m=>({name:m[1],category:m[2],purpose:m[3],version:m[4]}))
|
||||
const duplicate=entries.filter((x,i,a)=>a.findIndex(y=>y.name===x.name)!==i)
|
||||
if(duplicate.length){console.error(`duplicate component manifest entries: ${duplicate.map(x=>x.name).join(', ')}`);process.exit(1)}
|
||||
fs.writeFileSync(out,JSON.stringify(entries,null,2)+'\n')
|
||||
console.log(`generated ${entries.length} component definitions -> ${path.relative(root,out)}`)
|
||||
Reference in New Issue
Block a user