UNPKG

ts-cast

Version:
29 lines (28 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.text = exports.textList = exports.textNum = exports.textInt = void 0; var array_1 = require("./array"); var engine_1 = require("../engine"); exports.textInt = (0, engine_1.createCaster)('text.integer', function (value) { return typeof value === 'string' && value !== ''; }, function (value, context, reportError) { var parsed = +value; if (Number.isInteger(parsed)) return parsed; return reportError("text.integer is expected".concat(context ? " in ".concat(context) : '', " but \"").concat(value, "\" received."), context); }); exports.textNum = (0, engine_1.createCaster)('text.number', function (value) { return typeof value === 'string' && value !== ''; }, function (value, context, reportError) { var parsed = +value; if (!Number.isNaN(parsed)) return parsed; return reportError("text.number is expected".concat(context ? " in ".concat(context) : '', " but \"").concat(value, "\" received."), context); }); var textList = function (itemCaster, separator) { if (separator === void 0) { separator = ','; } var castArray = (0, array_1.array)(itemCaster); return (0, engine_1.createCaster)("list(".concat(itemCaster.name, ")"), function (value) { return typeof value === 'string'; }, function (value, context, reportError) { return castArray(value === '' ? [] : value.split(separator), context, reportError); }); }; exports.textList = textList; exports.text = { integer: exports.textInt, number: exports.textNum, list: exports.textList, };