kingdesign-valid
v0.1.8
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/
Versatile 元数据
项目也支持校验以下 @ksyun-internal/versatile 组件的导入和 props / events / slots:
IconTooltipLayoutContentProTableSearchTableColumnId
组件文档固定保存在 docs/versatile-extra/,源自本地 kpc-components 项目。更新文档后生成离线元数据:
yarn generate:versatile-api生成结果会写到:
generated_components_api/versatile/
生成过程不访问 node_modules 或外部文档目录;运行验证器时只读取随包发布的离线元数据。
