npm.io
0.2.14 • Published 2 years ago

address-range

Licence
MIT
Version
0.2.14
Deps
5
Size
40 kB
Vulns
3
Weekly
0

address-range

Install

npm install --save address-range
# or
yarn add address-range

API

AddressRange
class AddressRange {
  readonly startAddress: bigint
  readonly endAddress: bigint

  constructor(startAddress: bigint, endAddress: bigint)

  includes(address: bigint): boolean
  isSubSetOf(addressRange: AddressRange): boolean
  hasIntersectionOf(addressRange: AddressRange): boolean
  hasLeftIntersectionOf(addressRange: AddressRange): boolean
  hasRightIntersectionOf(addressRange: AddressRange): boolean
  toString(): string
}
IPv4AddressRange
class IPv4AddressRange extends AddressRange {
  static from(startAddress: string, endAddress: string): IPv4AddressRange
  static from(startAddress: string, hosts: number): IPv4AddressRange

  includes(address: string): boolean
  includes(address: bigint): boolean
  toString(): string
}
IPv6AddressRange
class IPv6AddressRange extends AddressRange {
  static from(startAddress: string, endAddress: string): IPv6AddressRange
  static from(startAddress: string, hosts: number): IPv6AddressRange

  includes(address: string): boolean
  includes(address: bigint): boolean
  toString(): string
}
concat
function concat<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

If the address ranges are concatenated at the beginning and end, concat the address ranges.

merge
function merge<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

If the address ranges have intersections, merge the address ranges.

removeSubsets
function removeSubsets<T extends AddressRange>(ranges: T[]): T[]

If the address range is a subset of another address range, remove the address range.

compress
function compress<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

Lossless compression of address ranges.

convertIPv4AddressBigIntToString
function convertIPv4AddressBigIntToString(address: bigint): string
convertIPv4AddressStringToBigInt
function convertIPv4AddressStringToBigInt(address: string): bigint
convertIPv6AddressBigIntToString
function convertIPv6AddressBigIntToString(address: bigint): string
convertIPv6AddressStringToBigInt
function convertIPv6AddressStringToBigInt(address: string): bigint