time.js 1.4 KB

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