arayts
Version:
让 TypeScript 开发如丝般顺滑。ArayTS 提供了一套高效、优雅的算法工具集,包含常用的数据结构与算法实现,帮助开发者轻松构建可靠的应用程序。
88 lines (87 loc) • 3.15 kB
JavaScript
;
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;