time.js 1.1 KB

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