Let toSeconds return an object

This commit is contained in:
Simon Warta
2021-02-16 12:07:30 +01:00
parent 058ce1b166
commit 470c37bf42
2 changed files with 15 additions and 14 deletions
+10 -10
View File
@@ -122,43 +122,43 @@ describe("dates", () => {
it("works", () => {
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26Z");
expect(toSeconds(date)).toEqual([1608029846, 0]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 0 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.7Z");
expect(toSeconds(date)).toEqual([1608029846, 700000000]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 700000000 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.77Z");
expect(toSeconds(date)).toEqual([1608029846, 770000000]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 770000000 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.778Z");
expect(toSeconds(date)).toEqual([1608029846, 778000000]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 778000000 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.7789Z");
expect(toSeconds(date)).toEqual([1608029846, 778900000]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 778900000 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.77809Z");
expect(toSeconds(date)).toEqual([1608029846, 778090000]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 778090000 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.778009Z");
expect(toSeconds(date)).toEqual([1608029846, 778009000]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 778009000 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.7780009Z");
expect(toSeconds(date)).toEqual([1608029846, 778000900]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 778000900 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.77800009Z");
expect(toSeconds(date)).toEqual([1608029846, 778000090]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 778000090 });
}
{
const date = fromRfc3339WithNanoseconds("2020-12-15T10:57:26.778000009Z");
expect(toSeconds(date)).toEqual([1608029846, 778000009]);
expect(toSeconds(date)).toEqual({ seconds: 1608029846, nanos: 778000009 });
}
});
});
+5 -4
View File
@@ -43,10 +43,11 @@ export function fromSeconds(seconds: number, nanos = 0): DateWithNanoseconds {
* [.google.protobuf.Timestamp](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Timestamp)
* or any other system that does not use millisecond precision.
*/
export function toSeconds(date: ReadonlyDateWithNanoseconds): [number, number] {
const seconds = Math.floor(date.getTime() / 1000);
const nanos = (date.getTime() % 1000) * 1000000 + (date.nanoseconds ?? 0);
return [seconds, nanos];
export function toSeconds(date: ReadonlyDateWithNanoseconds): { seconds: number; nanos: number } {
return {
seconds: Math.floor(date.getTime() / 1000),
nanos: (date.getTime() % 1000) * 1000000 + (date.nanoseconds ?? 0),
};
}
/** @deprecated Use fromRfc3339WithNanoseconds/toRfc3339WithNanoseconds instead */