From 899e8d97c8a1f49eab85692b47fc9f61bc9e3bc6 Mon Sep 17 00:00:00 2001 From: "Irsyad A. Panjaitan" <44585532+irsyadadl@users.noreply.github.com> Date: Thu, 5 Jun 2025 12:15:32 +0700 Subject: [PATCH] feat: auto-detect ui path --- src/commands/diff.command.ts | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/commands/diff.command.ts b/src/commands/diff.command.ts index 7c402bc..9913161 100644 --- a/src/commands/diff.command.ts +++ b/src/commands/diff.command.ts @@ -4,6 +4,12 @@ import { Command } from "@effect/cli" import { HttpClient, HttpClientRequest, HttpClientResponse } from "@effect/platform" import { Console, Effect } from "effect" import { app } from "~/lib/app" +import { + isLaravel, + isNextWithSrc, + isNextWithoutSrc, + isRemix, +} from "~/lib/check-current-user-project" const REMOTE_BASE = app.repo.ui @@ -51,7 +57,21 @@ export const diffCommand = Command.make("diff", {}, () => return } - const alias: string = config.aliases?.ui ?? "components/ui" + let alias: string | undefined = config.aliases?.ui + + if (!alias) { + const nextWithSrc = yield* Effect.tryPromise(() => isNextWithSrc(cwd)) + const nextWithoutSrc = yield* Effect.tryPromise(() => isNextWithoutSrc(cwd)) + const remix = yield* Effect.tryPromise(() => isRemix(cwd)) + const laravel = yield* Effect.tryPromise(() => isLaravel(cwd)) + + if (nextWithSrc) alias = "src/components/ui" + else if (nextWithoutSrc) alias = "components/ui" + else if (remix) alias = "app/components/ui" + else if (laravel) alias = "resources/components/ui" + else alias = "components/ui" + } + const uiPath = Path.isAbsolute(alias.replace(/^@\//, "")) ? alias.replace(/^@\//, "") : Path.join(cwd, alias.replace(/^@\//, "")) @@ -72,12 +92,10 @@ export const diffCommand = Command.make("diff", {}, () => const localContent = yield* Effect.tryPromise(() => FS.readFile(file, "utf8")) const remoteContent = yield* HttpClientRequest.get(remoteUrl).pipe( client.execute, - // @ts-ignore Effect.flatMap(HttpClientResponse.text), Effect.catchAll(() => Effect.succeed("")), ) if (localContent !== remoteContent) { - // @ts-ignore diffs.push({ file: relative, diff: simpleDiff(localContent, remoteContent) }) } }