History

Switch review preview timestamps to DateTimeUtc

- Emit Effect DateTime values from review and git diff previews - Tighten the contract to require UTC datetime output

Julius Marminge committed 6 months ago

Commit f73b8bc1 parent 92368024 files · +12 −16Browse files

Unified · Split

4 files
  1. apps/server/src/review/ReviewService.ts +8 −12
  2. apps/server/src/server.test.ts +1 −1
  3. apps/server/src/vcs/GitVcsDriverCore.ts +2 −2
  4. packages/contracts/src/review.ts +1 −1
apps/server/src/review/ReviewService.ts+8−12
@@ -1,4 +1,4 @@
1−import { Context, Effect, Layer } from "effect";
1+import { Context, DateTime, Effect, Layer } from "effect";
22
33 import {
44 VcsUnsupportedOperationError,
@@ -7,7 +7,7 @@ import { · 2 unmodified lines
77 type ReviewDiffPreviewResult,
88 } from "@t3tools/contracts";
99
10−import { GitVcsDriver } from "../vcs/GitVcsDriver.ts";
10+import * as GitVcsDriver from "../vcs/GitVcsDriver.ts";
1111 import * as VcsDriverRegistry from "../vcs/VcsDriverRegistry.ts";
1212
1313 export interface ReviewServiceShape {
@@ -20,24 +20,20 @@ export class ReviewService extends Context.Service<ReviewService, ReviewServiceS · 6 unmodified lines
2020 "t3/review/ReviewService",
2121 ) {}
2222
23−function emptyDiffPreview(input: ReviewDiffPreviewInput): ReviewDiffPreviewResult {
24− return {
25− cwd: input.cwd,
26− generatedAt: new Date().toISOString(),
27− sources: [],
28− };
29−}
30−
3123 export const make = Effect.fn("makeReviewService")(function* () {
3224 const vcsRegistry = yield* VcsDriverRegistry.VcsDriverRegistry;
33− const git = yield* GitVcsDriver;
25+ const git = yield* GitVcsDriver.GitVcsDriver;
3426
3527 const getDiffPreview: ReviewServiceShape["getDiffPreview"] = Effect.fn(
3628 "ReviewService.getDiffPreview",
3729 )(function* (input) {
3830 const handle = yield* vcsRegistry.detect({ cwd: input.cwd, requestedKind: "auto" });
3931 if (!handle) {
40− return emptyDiffPreview(input);
32+ return {
33+ cwd: input.cwd,
34+ generatedAt: yield* DateTime.now,
35+ sources: [],
36+ };
4137 }
4238
4339 const getDriverDiffPreview = handle.driver.getDiffPreview;
apps/server/src/server.test.ts+1−1
@@ -2526,7 +2526,7 @@ it.layer(NodeServices.layer)("server router seam", (it) => { · 2525 unmodified lines
25262526 getDiffPreview: (input) =>
25272527 Effect.succeed({
25282528 cwd: input.cwd,
2529− generatedAt: new Date(0).toISOString(),
2529+ generatedAt: DateTime.nowUnsafe(),
25302530 sources: [
25312531 {
25322532 id: "working-tree",
apps/server/src/vcs/GitVcsDriverCore.ts+2−2
@@ -1702,7 +1702,7 @@ export const makeGitVcsDriverCore = Effect.fn("makeGitVcsDriverCore")(function* · 1701 unmodified lines
17021702 if (!details.isRepo) {
17031703 return {
17041704 cwd: input.cwd,
1705− generatedAt: new Date().toISOString(),
1705+ generatedAt: yield* DateTime.now,
17061706 sources: [],
17071707 };
17081708 }
@@ -1791,7 +1791,7 @@ export const makeGitVcsDriverCore = Effect.fn("makeGitVcsDriverCore")(function* · 82 unmodified lines
17911791
17921792 return {
17931793 cwd: input.cwd,
1794− generatedAt: new Date().toISOString(),
1794+ generatedAt: yield* DateTime.now,
17951795 sources,
17961796 };
17971797 });
packages/contracts/src/review.ts+1−1
@@ -26,7 +26,7 @@ export type ReviewDiffPreviewSource = typeof ReviewDiffPreviewSource.Type; · 25 unmodified lines
2626
2727 export const ReviewDiffPreviewResult = Schema.Struct({
2828 cwd: TrimmedNonEmptyString,
29− generatedAt: Schema.String,
29+ generatedAt: Schema.DateTimeUtc,
3030 sources: Schema.Array(ReviewDiffPreviewSource),
3131 });
3232 export type ReviewDiffPreviewResult = typeof ReviewDiffPreviewResult.Type;