time.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { __decorate } from "tslib";
  2. import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, } from "@peculiar/asn1-schema";
  3. let Time = class Time {
  4. utcTime;
  5. generalTime;
  6. constructor(time) {
  7. if (time) {
  8. if (typeof time === "string" || typeof time === "number" || time instanceof Date) {
  9. const date = new Date(time);
  10. date.setMilliseconds(0);
  11. if (date.getUTCFullYear() > 2049) {
  12. this.generalTime = date;
  13. }
  14. else {
  15. this.utcTime = date;
  16. }
  17. }
  18. else {
  19. Object.assign(this, time);
  20. }
  21. }
  22. }
  23. getTime() {
  24. const time = this.utcTime || this.generalTime;
  25. if (!time) {
  26. throw new Error("Cannot get time from CHOICE object");
  27. }
  28. return time;
  29. }
  30. };
  31. __decorate([
  32. AsnProp({ type: AsnPropTypes.UTCTime })
  33. ], Time.prototype, "utcTime", void 0);
  34. __decorate([
  35. AsnProp({ type: AsnPropTypes.GeneralizedTime })
  36. ], Time.prototype, "generalTime", void 0);
  37. Time = __decorate([
  38. AsnType({ type: AsnTypeTypes.Choice })
  39. ], Time);
  40. export { Time };