Skip to content

feat(response): save body to file with smart filename#13

Merged
mertbekci merged 1 commit into
mainfrom
feat/save-response
Apr 14, 2026
Merged

feat(response): save body to file with smart filename#13
mertbekci merged 1 commit into
mainfrom
feat/save-response

Conversation

@mertbekci

Copy link
Copy Markdown
Member

Kapatır #7.

Response panel header'ına Save butonu eklendi: sadece success durumunda görünür, native save dialog açar, body byte'ları aynen diske yazar (base64 -> Buffer, re-encode yok).

Akıllı dosya adı

  1. Content-Disposition: attachment; filename="..." (RFC 5987 filename* destekli)
  2. URL'in son path segment'i (query strip)
  3. response fallback

Uzantı Content-Type'tan türer: json -> .json, html -> .html, xml -> .xml, pdf -> .pdf, png -> .png, jpeg -> .jpg, gif -> .gif, webp -> .webp, text/plain -> .txt, octet-stream / bilinmeyen -> .bin. Dosya adında zaten uzantı varsa korunur.

Değişen yerler

  • apps/desktop/src/main/index.tsresponse:save IPC handler (dialog.showSaveDialog + fs.writeFile)
  • apps/desktop/src/preload/index.tssaveResponse bridge
  • packages/shared-types/src/index.tsScrapemanBridge.saveResponse tipi
  • apps/desktop/src/renderer/src/components/ResponseViewer.tsx — Save button + deriveFilename helper

Test

  • pnpm -r typecheck OK
  • pnpm -r test OK (125/125)
  • pnpm --filter=@scrapeman/desktop build OK

@mertbekci mertbekci added the ready for review PR ready for review label Apr 14, 2026
@mertbekci mertbekci self-assigned this Apr 14, 2026
@mertbekci
mertbekci merged commit c67d782 into main Apr 14, 2026
3 checks passed
@mertbekci
mertbekci deleted the feat/save-response branch April 14, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready for review PR ready for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant