time.js 1.4 KB

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