@alova/wormhole
Version:
More modern openAPI generating solution for alova.js
71 lines (70 loc) • 2.59 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const normalizer_1 = require("./normalizer");
const convertTypeArray_1 = __importDefault(require("./rules/convertTypeArray"));
const handleEmptyType_1 = __importDefault(require("./rules/handleEmptyType"));
const inferType_1 = __importDefault(require("./rules/inferType"));
const mergeAnyOf_1 = __importDefault(require("./rules/mergeAnyOf"));
const normalizeCombiningKeywords_1 = __importDefault(require("./rules/normalizeCombiningKeywords"));
const normalizeEnum_1 = __importDefault(require("./rules/normalizeEnum"));
const normalizeNullType_1 = __importDefault(require("./rules/normalizeNullType"));
const removeRedundantKeywords_1 = __importDefault(require("./rules/removeRedundantKeywords"));
const simplifySingleType_1 = __importDefault(require("./rules/simplifySingleType"));
const validateSchema_1 = __importDefault(require("./rules/validateSchema"));
const normalizer = new normalizer_1.SchemaNormalizer();
// ================= 注册规则 =================
normalizer
.addRule({
name: 'inferType',
description: '从关键字推断类型',
handler: inferType_1.default,
})
.addRule({
name: 'normalizeNullType',
description: '规范化 null 类型',
handler: normalizeNullType_1.default,
})
.addRule({
name: 'convertTypeArray',
description: '将 type 数组转换为 anyOf 结构',
handler: convertTypeArray_1.default,
})
.addRule({
name: 'normalizeEnum',
description: '规范化枚举类型',
handler: normalizeEnum_1.default,
})
.addRule({
name: 'normalizeCombiningKeywords',
description: '规范化anyOf/oneOf/allOf 关键字',
handler: normalizeCombiningKeywords_1.default,
})
.addRule({
name: 'mergeAnyOf',
description: '合并anyOf中type相同的分支',
handler: mergeAnyOf_1.default,
})
.addRule({
name: 'removeRedundantKeywords',
description: '移除多余关键字',
handler: removeRedundantKeywords_1.default,
})
.addRule({
name: 'handleEmptyType',
description: '处理空类型定义',
handler: handleEmptyType_1.default,
})
.addRule({
name: 'simplifySingleType',
description: '简化单元素类型数组',
handler: simplifySingleType_1.default,
})
.addRule({
name: 'validateSchema',
description: '验证 schema 的有效性',
handler: validateSchema_1.default,
});
exports.default = normalizer;