tiny-engine/scripts/buildComponentSchemas.js

39 lines
1.2 KiB
JavaScript

/**
* Copyright (c) 2023 - present TinyEngine Authors.
* Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
const { resolve } = require('path')
const { readdirSync, readFileSync, existsSync, mkdirSync, rmSync, writeFileSync } = require('fs')
const dir = resolve(__dirname, '../packages/settings/design/src/assets/materials/ng-components')
const files = readdirSync(dir)
const schemas = []
files.forEach((fileName) => {
if (/\.json$/.test(fileName)) {
const content = readFileSync(resolve(dir, fileName)).toString()
schemas.push(JSON.parse(content))
}
})
const outDir = resolve(__dirname, '../dist')
const outFile = resolve(outDir, 'componentSchemas.json')
if (!existsSync(outDir)) {
mkdirSync(outDir)
}
if (existsSync(outFile)) {
rmSync(outFile)
}
writeFileSync(outFile, JSON.stringify(schemas, null, 2))