Skip to content

Commit

Permalink
refactor(sidetrack): use effect.fn for cli command to get better tracing
Browse files Browse the repository at this point in the history
  • Loading branch information
aniravi24 committed Feb 18, 2025
1 parent af952b0 commit 671e771
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 19 deletions.
5 changes: 5 additions & 0 deletions .changeset/sixty-games-hug.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"sidetrack": patch
---

use Effect.fn for better tracing of CLI function
37 changes: 18 additions & 19 deletions packages/sidetrack/src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,26 +26,25 @@ const databaseUrlFlag = Options.text("database-url")
const runCommand = Command.make(
"run",
{ databaseUrlFlag },
({ databaseUrlFlag }) => {
const databaseUrl = Option.match(databaseUrlFlag, {
onNone: () => Config.string("DATABASE_URL"),
onSome: (value) => Config.succeed(value),
});
({ databaseUrlFlag }) =>
Effect.fn("sidetrack.cli.migrations.run")(function* () {
const databaseUrlConfig = Option.match(databaseUrlFlag, {
onNone: () => Config.string("DATABASE_URL"),
onSome: (value) => Config.succeed(value),
});
const databaseUrl = yield* databaseUrlConfig.pipe(
Effect.mapError(
(error) =>
new MissingEnvError({
cause: error,
message:
"If a database url is not provided, the DATABASE_URL environment variable must be set.",
}),
),
);

return Effect.flatMap(databaseUrl, (dbUrl) =>
Effect.promise(() => runMigrations(dbUrl)),
).pipe(
Effect.catchTag(
"ConfigError",
(error) =>
new MissingEnvError({
cause: error,
message:
"If a database url is not provided, the DATABASE_URL environment variable must be set.",
}),
),
);
},
return yield* Effect.promise(() => runMigrations(databaseUrl));
})(),
);

const migrationsCommand = Command.make("migrations").pipe(
Expand Down

0 comments on commit 671e771

Please sign in to comment.