UNPKG

vue-ts-types

Version:

Lightweight TypeScript-first Vue prop type definitions

49 lines (48 loc) 2.41 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.isSymbol = exports.isOneOf = exports.isInteger = exports.isInstanceOf = void 0; exports.vuePropValidator = vuePropValidator; const vue_1 = __importDefault(require("vue")); /** * Creates a Vue prop validator that runs all type validators and the user validator (if specified). * @param userValidator Validator function specified by the user. * @param typeValidators Validator functions hard-coded by the prop type function. */ function vuePropValidator(userValidator, ...typeValidators) { const validators = userValidator ? [...typeValidators, userValidator] : typeValidators; if (validators.length === 0) { return undefined; } return (value) => { for (const validator of validators) { const errorMessage = validator(value); if (errorMessage) { if (typeof vue_1.default === 'object' && 'util' in vue_1.default) { // @ts-expect-error -- Vue.util is only available in Vue 2, but provides more context than console.warn // eslint-disable-next-line @typescript-eslint/no-unsafe-call vue_1.default.util.warn(`${errorMessage} (received: '${String(value)}')`); } else { console.warn(`${errorMessage} (received: '${String(value)}')`); } return false; } } return true; }; } // for internal use only var isInstanceOf_1 = require("./isInstanceOf"); Object.defineProperty(exports, "isInstanceOf", { enumerable: true, get: function () { return isInstanceOf_1.isInstanceOf; } }); var isInteger_1 = require("./isInteger"); Object.defineProperty(exports, "isInteger", { enumerable: true, get: function () { return isInteger_1.isInteger; } }); var isOneOf_1 = require("./isOneOf"); Object.defineProperty(exports, "isOneOf", { enumerable: true, get: function () { return isOneOf_1.isOneOf; } }); var isSymbol_1 = require("./isSymbol"); Object.defineProperty(exports, "isSymbol", { enumerable: true, get: function () { return isSymbol_1.isSymbol; } }); // custom validators provided for user convenience are exported from main entrypoint