ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
68 lines • 4.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.valuesAreObject = exports.isObject = exports.valuesAreDateString = exports.isDateString = exports.valuesAreDate = exports.isDate = exports.valuesAreArray = exports.isArray = exports.valuesAreEmail = exports.isEmail = exports.valuesAreImageUrl = exports.isImageUrl = exports.valuesAreUrl = exports.isUrl = exports.valuesAreHtml = exports.isHtml = exports.valuesAreString = exports.isString = exports.valuesAreBooleanString = exports.isBooleanString = exports.valuesAreBoolean = exports.isBoolean = exports.valuesAreInteger = exports.isInteger = exports.valuesAreNumeric = exports.isNumeric = void 0;
const date_fns_1 = require("date-fns");
const isNumeric = (value) => !isNaN(parseFloat(value)) && isFinite(value);
exports.isNumeric = isNumeric;
const valuesAreNumeric = (values) => values.every(exports.isNumeric);
exports.valuesAreNumeric = valuesAreNumeric;
const isInteger = (value) => Number.isInteger(value) || !isNaN(parseInt(value));
exports.isInteger = isInteger;
const valuesAreInteger = (values) => values.every(exports.isInteger);
exports.valuesAreInteger = valuesAreInteger;
const isBoolean = (value) => typeof value === 'boolean';
exports.isBoolean = isBoolean;
const valuesAreBoolean = (values) => values.every(exports.isBoolean);
exports.valuesAreBoolean = valuesAreBoolean;
const isBooleanString = (value) => ['true', 'false'].includes(value.toString().toLowerCase());
exports.isBooleanString = isBooleanString;
const valuesAreBooleanString = (values) => values.every(exports.isBooleanString);
exports.valuesAreBooleanString = valuesAreBooleanString;
const isString = (value) => typeof value === 'string';
exports.isString = isString;
const valuesAreString = (values) => values.every(exports.isString);
exports.valuesAreString = valuesAreString;
const HtmlRegexp = /<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)<\/\1>/i;
const isHtml = (value) => !value || HtmlRegexp.test(value);
exports.isHtml = isHtml;
const valuesAreHtml = (values) => values.every(exports.isHtml);
exports.valuesAreHtml = valuesAreHtml;
const UrlRegexp = /http(s*):\/\/.*/i;
const isUrl = (value) => !value || UrlRegexp.test(value);
exports.isUrl = isUrl;
const valuesAreUrl = (values) => values.every(exports.isUrl);
exports.valuesAreUrl = valuesAreUrl;
const ImageUrlRegexp = /^http(s*):\/\/.*\.(jpeg|jpg|jfif|pjpeg|pjp|png|svg|gif|webp|apng|bmp|ico|cur|tif|tiff)/i;
const isImageUrl = (value) => !value || ImageUrlRegexp.test(value);
exports.isImageUrl = isImageUrl;
const valuesAreImageUrl = (values) => values.every(exports.isImageUrl);
exports.valuesAreImageUrl = valuesAreImageUrl;
// This is a very simple regex to find emails
// It is NOT meant to validate emails as the spec is way more complicated but is
// enough for our inference needs
const EmailRegexp = /@{1}/;
const isEmail = (value) => !value || EmailRegexp.test(value);
exports.isEmail = isEmail;
const valuesAreEmail = (values) => values.every(exports.isEmail);
exports.valuesAreEmail = valuesAreEmail;
const isArray = (value) => Array.isArray(value);
exports.isArray = isArray;
const valuesAreArray = (values) => values.every(exports.isArray);
exports.valuesAreArray = valuesAreArray;
const isDate = (value) => !value || value instanceof Date;
exports.isDate = isDate;
const valuesAreDate = (values) => values.every(exports.isDate);
exports.valuesAreDate = valuesAreDate;
const isDateString = (value) => !value ||
(typeof value === 'string' &&
((0, date_fns_1.isMatch)(value, 'MM/dd/yyyy') ||
(0, date_fns_1.isMatch)(value, 'MM/dd/yy') ||
(0, date_fns_1.isValid)((0, date_fns_1.parseISO)(value))));
exports.isDateString = isDateString;
const valuesAreDateString = (values) => values.every(exports.isDateString);
exports.valuesAreDateString = valuesAreDateString;
const isObject = (value) => Object.prototype.toString.call(value) === '[object Object]';
exports.isObject = isObject;
const valuesAreObject = (values) => values.every(exports.isObject);
exports.valuesAreObject = valuesAreObject;
//# sourceMappingURL=assertions.js.map