UNPKG

arayts

Version:

让 TypeScript 开发如丝般顺滑。ArayTS 提供了一套高效、优雅的算法工具集,包含常用的数据结构与算法实现,帮助开发者轻松构建可靠的应用程序。

88 lines (87 loc) 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataConverter = exports.DataValidator = void 0; var DataValidator = /** @class */ (function () { function DataValidator(rules) { this.rules = rules; } // 数据验证方法 DataValidator.prototype.validate = function (data) { var errors = []; for (var key in this.rules) { var rule = this.rules[key]; var value = data[key]; // 检查是否存在值 if (rule.required && (value === undefined || value === null)) { errors.push("".concat(key, " is required.")); continue; } // 类型验证 if (value !== undefined && !this.isValidType(value, rule.type)) { errors.push("".concat(key, " should be of type ").concat(rule.type, ".")); continue; } // 转换数据 if (value !== undefined && rule.transform) { try { data[key] = rule.transform(value); } catch (error) { errors.push("Error in transforming ".concat(key, ": ").concat(error.message)); } } } return { isValid: errors.length === 0, errors: errors, }; }; // 检查数据类型 DataValidator.prototype.isValidType = function (value, type) { switch (type) { case 'string': return typeof value === 'string'; case 'number': return typeof value === 'number'; case 'boolean': return typeof value === 'boolean'; case 'date': return value instanceof Date && !isNaN(value.getTime()); case 'array': return Array.isArray(value); case 'object': return typeof value === 'object' && value !== null && !Array.isArray(value); default: return false; } }; return DataValidator; }()); exports.DataValidator = DataValidator; var DataConverter = /** @class */ (function () { function DataConverter() { } // 数据转换方法:字符串 -> 数字,数字 -> 字符串等 DataConverter.convert = function (value, targetType) { switch (targetType) { case 'string': return String(value); case 'number': return Number(value); case 'boolean': return Boolean(value); case 'date': return new Date(value); case 'array': return Array.isArray(value) ? value : [value]; default: throw new Error("Unsupported target type: ".concat(targetType)); } }; // 异常处理方法 DataConverter.handleError = function (error, context) { console.error("[DataConverter Error] Context: ".concat(context, " - ").concat(error.message)); }; return DataConverter; }()); exports.DataConverter = DataConverter;