UNPKG

node-web-mvc

Version:
106 lines (105 loc) 3.84 kB
"use strict"; /** * @module Assert * @description 断言工具集 */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const Javascript_1 = __importDefault(require("../../interface/Javascript")); class Assert { /** * 断言:value必须为指定类型 * @param value 值 * @param ctor 类型 */ static isType(value, ctor, message) { const typer = Javascript_1.default.createTyper(value === null || value === void 0 ? void 0 : value.constructor); if (!typer.isType(ctor)) { const type = Object.prototype.toString.call(value); const name = type.replace('[object ', '').replace(']', ''); throw new Error(`[Assertion failed] - ${message || 'the value must be type:' + name}`); } } /** * 断言:传入参数需要为:null或者undefined */ static isNull(value, message) { if (!(value === null || value === undefined)) { throw new Error(`[Assertion failed] - ${message || 'the value argument must be null'}`); } } /** * 断言:传入参数应该不为:null或者undefined */ static notNull(value, message) { if (value === null || value === undefined) { throw new Error(`[Assertion failed] - ${message || 'the value argument must not be null'}`); } } /** * 断言:传入参数需要为:null或者undefined或者空字符串,或者空数组(length === 0) */ static isEmpty(value, message) { if (!(value === null || value === undefined || value === '' || value.length === 0)) { throw new Error(`[Assertion failed] - ${message || 'the value argument must be empty'}`); } } /** * 断言:传入参数应该不为:null或者undefined或者空字符串或者空数组(length === 0) */ static notEmpty(value, message) { if (value === null || value === '' || value === undefined || value.length === 0) { throw new Error(`[Assertion failed] - ${message || 'the value argument must not be empty'}`); } } /** * 断言:需要包含指定字符串 * @param value * @param include * @param message */ static doesContain(value, include, message) { value = (value || '').toString(); if (value.indexOf(include) < 0) { throw new Error(`[Assertion failed] - ${message || 'the value argument dose contain: ' + include}`); } } /** * 断言: 不能包含指定字符串 * @param value * @param include * @param message */ static doesNotContain(value, include, message) { value = (value || '').toString(); if (value.indexOf(include) > -1) { throw new Error(`[Assertion failed] - ${message || 'the value argument must does not contain: ' + include}`); } } /** * 断言: 数组项中不能存在空项(null,undefined) * @param value * @param message */ static noNullElements(value, message) { value = value || []; const find = value.filter((v) => (v === null || v === undefined)); if (find.length > 0) { throw new Error(`[Assertion failed] - ${message || 'the value array must not contain null or undefined'}`); } } /** * 断言:value 必须为type的实例 * @param value * @param type */ static isInstanceOf(value, type, message) { if (!(value instanceof type)) { const defaultMessage = message || `value must instanceof ${type.name}`; throw new Error(`[Assertion failed] - ${defaultMessage}`); } } } exports.default = Assert;