• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

yiming-liao / logry / 15999984610

01 Jul 2025 12:57PM UTC coverage: 92.796% (-0.4%) from 93.154%
15999984610

push

github

yiming-liao
chore(release): bump version to 1.1.3

447 of 501 branches covered (89.22%)

Branch coverage included in aggregate %.

4190 of 4496 relevant lines covered (93.19%)

4.66 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.32
/src/modules/normalizers/fields/normalize-timestamp.ts
1
import type {
1✔
2
  NormalizeFieldOptions,
1✔
3
  NormalizeTimestampExtraOptions,
1✔
4
} from "@/modules/normalizers/types";
1✔
5
import type {
1✔
6
  NormalizedTimestamp,
1✔
7
  RawTimestamp,
1✔
8
  SnapshotLogFields,
1✔
9
} from "@/shared/types/log-fields";
1✔
10
import { internalLog } from "@/internal";
1✔
11
import {
1✔
12
  DEFAULT_SHOW_TIME_ONLY,
1✔
13
  DEFAULT_TIMESTAMP_STYLE,
1✔
14
  DEFAULT_USE_UTC,
1✔
15
} from "@/modules/normalizers/constants";
1✔
16
import { buildTimestampString } from "@/modules/normalizers/utils/build-timestamp-string";
1✔
17
import { tryCustomNormalizer } from "@/modules/normalizers/utils/try-custom-normalizer";
1✔
18

1✔
19
export type TimestampStyle = "raw" | "pretty" | "iso" | "epoch";
1✔
20

1✔
21
export const normalizeTimestamp = (
1✔
22
  fieldValue: RawTimestamp,
6✔
23
  raw: SnapshotLogFields,
6✔
24
  options: NormalizeFieldOptions<
6✔
25
    RawTimestamp,
6✔
26
    NormalizedTimestamp,
6✔
27
    NormalizeTimestampExtraOptions
6✔
28
  > = {},
6✔
29
): NormalizedTimestamp => {
6✔
30
  const {
6✔
31
    style = DEFAULT_TIMESTAMP_STYLE,
6✔
32
    useUTC = DEFAULT_USE_UTC,
6✔
33
    showTimeOnly = DEFAULT_SHOW_TIME_ONLY,
6✔
34
    customNormalizer,
6✔
35
  } = options;
6✔
36

6✔
37
  // Use custom normalizer if provided
6✔
38
  const customized = tryCustomNormalizer({
6✔
39
    label: "timestamp",
6✔
40
    input: { fieldValue, raw },
6✔
41
    customNormalizer,
6✔
42
  });
6✔
43
  if (customized) {
6!
44
    return customized;
×
45
  }
×
46

6✔
47
  switch (style) {
6✔
48
    case "raw":
6!
49
      return fieldValue;
×
50
    case "iso":
6!
51
      return new Date(fieldValue).toISOString();
×
52
    case "epoch":
6!
53
      return Math.floor(fieldValue / 1000);
×
54
    case "pretty":
6✔
55
      return buildTimestampString({
6✔
56
        timestamp: fieldValue,
6✔
57
        useUTC,
6✔
58
        showTimeOnly,
6✔
59
      });
6✔
60
    default:
6!
61
      internalLog({
×
62
        type: "warn",
×
63
        message: `Unknown timestamp style "${style}", using "pretty" as fallback.`,
×
64
      });
×
65
      return buildTimestampString({
×
66
        timestamp: fieldValue,
×
67
        useUTC,
×
68
        showTimeOnly,
×
69
      });
×
70
  }
6✔
71
};
6✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc