UNPKG

@sequelize/core

Version:

Sequelize is a promise-based Node.js ORM tool for Postgres, MySQL, MariaDB, SQLite, Microsoft SQL Server, Amazon Redshift, Snowflake’s Data Cloud, Db2, and IBM i. It features solid transaction support, relations, eager and lazy loading, read replication a

111 lines (110 loc) 3.79 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var validator_extras_exports = {}; __export(validator_extras_exports, { extensions: () => extensions, validator: () => validator }); module.exports = __toCommonJS(validator_extras_exports); var import_cloneDeep = __toESM(require("lodash/cloneDeep")); var import_forEach = __toESM(require("lodash/forEach")); const validator = (0, import_cloneDeep.default)(require("validator")); const dayjs = require("dayjs"); const extensions = { extend(name, fn) { this[name] = fn; return this; }, notEmpty(str) { return !/^\s*$/.test(str); }, // TODO: accept { min, max } object len(str, min, max) { return this.isLength(str, min, max); }, isUrl(str) { return this.isURL(str); }, isIPv6(str) { return this.isIP(str, 6); }, isIPv4(str) { return this.isIP(str, 4); }, notIn(str, values) { return !this.isIn(str, values); }, regex(str, pattern, modifiers) { str = String(str); if (Object.prototype.toString.call(pattern).slice(8, -1) !== "RegExp") { pattern = new RegExp(pattern, modifiers); } return str.match(pattern); }, notRegex(str, pattern, modifiers) { return !this.regex(str, pattern, modifiers); }, isDecimal(str) { return str !== "" && Boolean(/^(?:-?\d+)?(?:\.\d*)?(?:[Ee][+-]?\d+)?$/.test(str)); }, min(str, val) { const number = Number.parseFloat(str); return Number.isNaN(number) || number >= val; }, max(str, val) { const number = Number.parseFloat(str); return Number.isNaN(number) || number <= val; }, not(str, pattern, modifiers) { return this.notRegex(str, pattern, modifiers); }, contains(str, elem) { return Boolean(elem) && str.includes(elem); }, notContains(str, elem) { return !this.contains(str, elem); }, is(str, pattern, modifiers) { return this.regex(str, pattern, modifiers); } }; validator.isImmutable = function(value, validatorArgs, field, modelInstance) { return modelInstance.isNewRecord || modelInstance.dataValues[field] === modelInstance._previousDataValues[field]; }; validator.notNull = function(val) { return val !== null && val !== void 0; }; (0, import_forEach.default)(extensions, (extend, key) => { validator[key] = extend; }); validator.isNull = validator.isEmpty; validator.isDate = function(dateString) { return dayjs(dateString).isValid(); }; //# sourceMappingURL=validator-extras.js.map