@peculiar/asn1-x509
Version:
ASN.1 schema for X.509 certificates, certificate revocation lists, and related profile structures defined in RFC 5280.
41 lines (40 loc) • 1.2 kB
JavaScript
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, } from "@peculiar/asn1-schema";
let Time = class Time {
utcTime;
generalTime;
constructor(time) {
if (time) {
if (typeof time === "string" || typeof time === "number" || time instanceof Date) {
const date = new Date(time);
date.setMilliseconds(0);
if (date.getUTCFullYear() > 2049) {
this.generalTime = date;
}
else {
this.utcTime = date;
}
}
else {
Object.assign(this, time);
}
}
}
getTime() {
const time = this.utcTime || this.generalTime;
if (!time) {
throw new Error("Cannot get time from CHOICE object");
}
return time;
}
};
__decorate([
AsnProp({ type: AsnPropTypes.UTCTime })
], Time.prototype, "utcTime", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.GeneralizedTime })
], Time.prototype, "generalTime", void 0);
Time = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], Time);
export { Time };