UNPKG

nigerian-mobile-validator

Version:

The most rigorous, up-to-date library for validating Nigerian mobile numbers. Fully NCC-compliant, and security-focused, with enterprise-grade features to prevent the business risks of validation failures in regulated industries.

53 lines (52 loc) 1.86 kB
"use strict"; // src/numbering-plan/mobile-number-range.ts Object.defineProperty(exports, "__esModule", { value: true }); exports.MobileNumberRange = void 0; /** * Represents a range of NCC-assigned numbers. * * This class does not know whether it is storing the subscriber number part * or the local number part. In fact, all it knows is that it stores an ordered * set of 2 integers. * * NOTE: By definition the "local number" begins with the network access code (e.g. 08031234567) * while the "subscriber number" part does not include the access code (e.g. 1234567). */ class MobileNumberRange { constructor(lowerBound, upperBound) { this.lowerBound = lowerBound; this.upperBound = upperBound; if (lowerBound >= upperBound) { throw new Error('Lower bound must be less than upper bound'); } } /** * Checks whether the given MobileNumberRange is a subset of this object. */ isSubset(otherMobileNumberRange) { return otherMobileNumberRange.lowerBound >= this.lowerBound && otherMobileNumberRange.upperBound <= this.upperBound; } /** * Checks whether the given number lies within the lower and upperbounds of this object. */ isWithinRange(usersNumber) { return usersNumber >= this.lowerBound && usersNumber <= this.upperBound; } /** * Compares this range with another range. * Returns -1 if this range comes before, 1 if it comes after, 0 if they overlap. */ compareTo(otherMobileNumberRange) { if (this.upperBound < otherMobileNumberRange.lowerBound) { return -1; } else if (otherMobileNumberRange.upperBound < this.lowerBound) { return 1; } else { return 0; } } } exports.MobileNumberRange = MobileNumberRange;