A DELETE request tells the server to remove a resource. You specify what to delete by URL. No request body is needed.
import { FetchHttpClient, HttpClient, HttpClientRequest,} from "effect/unstable/http";import { Effect } from "effect";
function deleteProduct(productId: number) { return Effect.gen(function* () { const client = yield* HttpClient.HttpClient;
const request = HttpClientRequest.del( `https://dummyjson.com/products/${productId}`, );
const response = yield* client.execute(request); const data = yield* response.json;
return data; }).pipe(Effect.provide(FetchHttpClient.layer));}
// Test itEffect.runPromise(deleteProduct(1)).then((data) => { console.log("Deleted:", data.title); console.log("isDeleted:", data.isDeleted); console.log("deletedOn:", data.deletedOn);});Output:
Deleted: Essence Mascara Lash PrincessisDeleted: truedeletedOn: 2026-02-18T14:27:54.479ZThe method is called HttpClientRequest.del() — not delete — because delete is a reserved keyword in JavaScript. The same applies to the client’s shorthand: client.del(url) instead of client.delete(url).
Note that the dummyJSON API simulates deletion by returning the product data with isDeleted: true and a deletedOn timestamp.