mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-18 23:44:12 +01:00
Add .oxfmtignore to skip generated bindings and wasm-pack output. Add npm format script, update DEVELOPMENT.md for Vite+ toolchain, and format all non-generated files with oxfmt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
import type { HttpRequest } from "@yaakapp-internal/models";
|
|
import { patchModelById } from "@yaakapp-internal/models";
|
|
import { createRequestAndNavigate } from "../lib/createRequestAndNavigate";
|
|
import { jotaiStore } from "../lib/jotai";
|
|
import { invokeCmd } from "../lib/tauri";
|
|
import { showToast } from "../lib/toast";
|
|
import { activeWorkspaceIdAtom } from "./useActiveWorkspace";
|
|
import { useFastMutation } from "./useFastMutation";
|
|
import { wasUpdatedExternally } from "./useRequestUpdateKey";
|
|
|
|
export function useImportCurl() {
|
|
return useFastMutation({
|
|
mutationKey: ["import_curl"],
|
|
mutationFn: async ({
|
|
overwriteRequestId,
|
|
command,
|
|
}: {
|
|
overwriteRequestId?: string;
|
|
command: string;
|
|
}) => {
|
|
const workspaceId = jotaiStore.get(activeWorkspaceIdAtom);
|
|
const importedRequest: HttpRequest = await invokeCmd("cmd_curl_to_request", {
|
|
command,
|
|
workspaceId,
|
|
});
|
|
|
|
let verb: string;
|
|
if (overwriteRequestId == null) {
|
|
verb = "Created";
|
|
await createRequestAndNavigate(importedRequest);
|
|
} else {
|
|
verb = "Updated";
|
|
await patchModelById(importedRequest.model, overwriteRequestId, (r: HttpRequest) => ({
|
|
...importedRequest,
|
|
id: r.id,
|
|
createdAt: r.createdAt,
|
|
workspaceId: r.workspaceId,
|
|
folderId: r.folderId,
|
|
name: r.name,
|
|
sortPriority: r.sortPriority,
|
|
}));
|
|
|
|
setTimeout(() => wasUpdatedExternally(overwriteRequestId), 100);
|
|
}
|
|
|
|
showToast({
|
|
color: "success",
|
|
message: `${verb} request from Curl`,
|
|
});
|
|
},
|
|
});
|
|
}
|