class CoolHttpClient extends Effect.Service<CoolHttpClient>()(
'CoolHttpClient',
{
effect: Effect.gen(function* () {
return (yield* HttpClient.HttpClient).pipe(
HttpClient.mapRequest(HttpClientRequest.setHeader('client', 'cool')),
);
}),
dependencies: [NodeHttpClient.layerUndici],
},
) {}
const program = Effect.gen(function* () {
const client = yield* CoolHttpClient;
const response = yield* client.get('https://example.com/api/v1/thing');
const json = yield* response.json;
console.log(json);
}).pipe(Effect.provide([CoolHttpClient.Default]));
Effect.runPromise(program);
class CoolHttpClient extends Effect.Service<CoolHttpClient>()(
'CoolHttpClient',
{
effect: Effect.gen(function* () {
return (yield* HttpClient.HttpClient).pipe(
HttpClient.mapRequest(HttpClientRequest.setHeader('client', 'cool')),
);
}),
dependencies: [NodeHttpClient.layerUndici],
},
) {}
const program = Effect.gen(function* () {
const client = yield* CoolHttpClient;
const response = yield* client.get('https://example.com/api/v1/thing');
const json = yield* response.json;
console.log(json);
}).pipe(Effect.provide([CoolHttpClient.Default]));
Effect.runPromise(program);