time.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. date.setMilliseconds(0);
  9. if (date.getUTCFullYear() > 2049) {
  10. this.generalTime = date;
  11. }
  12. else {
  13. this.utcTime = date;
  14. }
  15. }
  16. else {
  17. Object.assign(this, time);
  18. }
  19. }
  20. }
  21. getTime() {
  22. const time = this.utcTime || this.generalTime;
  23. if (!time) {
  24. throw new Error("Cannot get time from CHOICE object");
  25. }
  26. return time;
  27. }
  28. };
  29. __decorate([
  30. AsnProp({
  31. type: AsnPropTypes.UTCTime,
  32. })
  33. ], Time.prototype, "utcTime", void 0);
  34. __decorate([
  35. AsnProp({
  36. type: AsnPropTypes.GeneralizedTime,
  37. })
  38. ], Time.prototype, "generalTime", void 0);
  39. Time = __decorate([
  40. AsnType({ type: AsnTypeTypes.Choice })
  41. ], Time);
  42. export { Time };