kingdesign-valid
v0.1.6
Published
Standalone static validator for @king-design/vue SFC usage
Readme
kingdesign-valid
@king-design/vue 的独立静态校验项目。
当前项目内置:
generated_components_api/组件元数据src/编译检查、导入检查、props / events / slots / nesting校验tests/validate-tests/这条校验线的独立测试
src/ 当前按职责拆成:
src/core/校验入口、编译检查、元数据注册表src/analysis/SFC 脚本导入分析、模板表达式和模板遍历src/validators/props / events / slots / nesting规则校验src/shared/通用类型、常量、上下文、工具函数src/catalogs/错误类型常量和中文目录
用法
import { validateCode } from 'kingdesign-valid';const { validateCode } = require('kingdesign-valid');主要导出:
validateCode(code)validateCompilation(code)analyzeCode(code)
兼容别名也保留:
validateCodeWithGeneratedAPIvalidateCodeWithValidvalidateGeneratedApiCompilationanalyzeCodeWithGeneratedAPI
返回结构
validateCode(code) 返回:
interface ValidValidationResult {
passed: boolean;
compilation: {
name: string;
passed: boolean;
errors: Array<{
type: ValidCompilationErrorType;
message: string;
}>;
};
violations: Array<{
type: ValidRuleViolationType;
rule: string;
match: string;
suggestion: string;
}>;
summary: string;
}编译错误类型常量:
VALIDATION_COMPILATION_ERROR_TYPESVALIDATION_COMPILATION_ERROR_TYPE_CATALOG_ZH_CN
规则违规类型常量:
VALIDATION_VIOLATION_TYPESVALIDATION_VIOLATION_TYPE_CATALOG_ZH_CN
统一中文目录:
VALIDATION_TYPE_CATALOG_ZH_CNcompilationErrorsviolations
示例:
import {
validateCode,
VALIDATION_COMPILATION_ERROR_TYPES,
VALIDATION_VIOLATION_TYPES,
VALIDATION_VIOLATION_TYPE_CATALOG_ZH_CN,
} from 'kingdesign-valid';
const result = await validateCode(code);
if (!result.compilation.passed) {
for (const error of result.compilation.errors) {
if (error.type === VALIDATION_COMPILATION_ERROR_TYPES.SCRIPT_COMPILE_ERROR) {
console.log('脚本编译失败:', error.message);
}
}
}
for (const violation of result.violations) {
if (violation.type === VALIDATION_VIOLATION_TYPES.TEMPLATE_UNDEFINED_VARIABLE) {
const meta = VALIDATION_VIOLATION_TYPE_CATALOG_ZH_CN[violation.type];
console.log(meta.label, violation.match);
}
}发布内容
npm 包内会直接携带:
dist/generated_components_api/
安装后可直接运行校验,不需要再生成元数据。
开发
仓库开发场景下,如果你需要重新从 KPC 文档生成元数据:
yarn generate:api-docs 3.7.0 ksc-fe/kpc把 api/ 转成校验用元数据:
yarn generate:api-components快速查看 generated_components_api 里每个组件的 props / events / slots 数量:
yarn audit:generated-api-stats输出格式示例:
Button props:13 events:0 slots:0
Dialog props:18 events:6 slots:5
Select props:26 events:2 slots:5生成结果会写到项目根目录的:
api/generated_components_api/
