UNPKG

asn1-ts

Version:

ASN.1 encoding and decoding, including BER, CER, and DER.

43 lines (42 loc) 2 kB
import * as errors from "../../errors.mjs"; import datetimeComponentValidator from "../../validators/datetimeComponentValidator.mjs"; export default class DURATION_INTERVAL_ENCODING { constructor(years, months, weeks, days, hours, minutes, seconds, fractional_part) { this.years = years; this.months = months; this.weeks = weeks; this.days = days; this.hours = hours; this.minutes = minutes; this.seconds = seconds; this.fractional_part = fractional_part; if (typeof weeks !== "undefined" && (years || months || days || hours || minutes || seconds)) { throw new errors.ASN1Error("DURATION-INTERVAL-ENCODING may not combine week components and date-time components."); } if (years) { datetimeComponentValidator("year", 0, Number.MAX_SAFE_INTEGER)("DURATION-INTERVAL-ENCODING", years); } if (months) { datetimeComponentValidator("month", 0, Number.MAX_SAFE_INTEGER)("DURATION-INTERVAL-ENCODING", months); } if (weeks) { datetimeComponentValidator("week", 0, Number.MAX_SAFE_INTEGER)("DURATION-INTERVAL-ENCODING", weeks); } if (days) { datetimeComponentValidator("day", 0, Number.MAX_SAFE_INTEGER)("DURATION-INTERVAL-ENCODING", days); } if (hours) { datetimeComponentValidator("hour", 0, Number.MAX_SAFE_INTEGER)("DURATION-INTERVAL-ENCODING", hours); } if (minutes) { datetimeComponentValidator("minute", 0, Number.MAX_SAFE_INTEGER)("DURATION-INTERVAL-ENCODING", minutes); } if (seconds) { datetimeComponentValidator("second", 0, Number.MAX_SAFE_INTEGER)("DURATION-INTERVAL-ENCODING", seconds); } if (fractional_part && !Number.isSafeInteger(fractional_part.fractional_value)) { throw new errors.ASN1Error("Malformed DURATION-INTERVAL-ENCODING fractional part."); } } }