Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

http-kit

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

http-kit - npm Package Compare versions

Comparing version
0.2.2
to
0.3.0
+0
-5
dist/exception.js

@@ -1,5 +0,1 @@

// export abstract class Err {
// abstract readonly _tag: string;
// constructor(readonly message: string) {}
// }
export class HttpError {

@@ -10,4 +6,3 @@ constructor(message, originalError) {

this._tag = "HttpError";
// super(message);
}
}
+12
-12
import * as Predicate from "@effect/data/Predicate";
import * as Effect from "@effect/io/Effect";
import { HttpError } from "./exception.js";
import { Res } from "./types.js";
export declare class JsonParseError {
export declare class DecodeError {
readonly response: Response;
readonly message: string;
readonly _tag = "JsonParseError";
constructor(response: Response, message: string);
readonly message?: string | undefined;
readonly _tag = "DecodeError";
constructor(response: Response, message?: string | undefined);
}
export declare class StatusError {
readonly response: Response;
readonly message: string;
readonly message?: string | undefined;
readonly _tag = "StatusError";
constructor(response: Response, message: string);
constructor(response: Response, message?: string | undefined);
}
export declare function toJson<T>(): <R, E, A extends Response>(fx: Effect.Effect<R, E, A>) => Effect.Effect<R, JsonParseError | E, T>;
export declare const toText: () => <R, E, A extends Response>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, HttpError | E, string>;
export declare const toArrayBuffer: () => <R, E, A extends Response>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, HttpError | E, ArrayBuffer>;
export declare const toBlob: () => <R, E, A extends Response>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, HttpError | E, Blob>;
export declare const toText: <R, E, A extends Response>(fx: Effect.Effect<R, E, A>) => Effect.Effect<R, DecodeError | E, string>;
export declare const toJson: <R, E, A extends Response>(fx: Effect.Effect<R, E, A>) => Effect.Effect<R, DecodeError | E, any>;
export declare const toJsonT: <T>() => <R, E, A extends Response>(fx: Effect.Effect<R, E, A>) => Effect.Effect<R, DecodeError | E, T>;
export declare const toArrayBuffer: <R, E, A extends Response>(fx: Effect.Effect<R, E, A>) => Effect.Effect<R, DecodeError | E, ArrayBuffer>;
export declare const toBlob: <R, E, A extends Response>(fx: Effect.Effect<R, E, A>) => Effect.Effect<R, DecodeError | E, Blob>;
export declare function filterStatus<A extends Res>(func: Predicate.Predicate<number>): <R, E>(fx: Effect.Effect<R, E, A>) => Effect.Effect<R, StatusError | E, A>;
export declare function filterStatusOk(): <R, E>(fx: Effect.Effect<R, E, Response>) => Effect.Effect<R, StatusError | E, Response>;
export declare function filterStatusOk<R, E, A extends Res>(fx: Effect.Effect<R, E, A>): Effect.Effect<R, StatusError | E, A>;
import { pipe } from "@effect/data/Function";
import * as Effect from "@effect/io/Effect";
import { HttpError } from "./exception.js";
export class JsonParseError {
export class DecodeError {
constructor(response, message) {
this.response = response;
this.message = message;
this._tag = "JsonParseError";
// super(message);
this._tag = "DecodeError";
}

@@ -17,26 +15,17 @@ }

this._tag = "StatusError";
// super(message);
}
}
export function toJson() {
function to(tryer, catcher) {
return (fx) => {
return pipe(fx, Effect.flatMap((res) => {
return Effect.tryPromise({
try: () => res.json(),
catch: () => new JsonParseError(res, "Unable to parse JSON"),
});
}));
};
}
function to(fn) {
return () => (effect) => {
return pipe(effect, Effect.flatMap((res) => Effect.tryPromise({
try: () => fn(res),
catch: (e) => new HttpError("Decode error", e),
return pipe(fx, Effect.flatMap((res) => Effect.tryPromise({
try: () => tryer(res),
catch: (e) => catcher(res, e),
})));
};
}
export const toText = to((res) => res.text());
export const toArrayBuffer = to((res) => res.arrayBuffer());
export const toBlob = to((res) => res.blob());
export const toText = to((res) => res.text(), (res) => new DecodeError(res, "Unable to decode Text"));
export const toJson = to((res) => res.json(), (res) => new DecodeError(res, "Unable to decode JSON"));
export const toJsonT = () => to((res) => res.json(), (res) => new DecodeError(res, "Unable to decode JSON"));
export const toArrayBuffer = to((res) => res.arrayBuffer(), (res) => new DecodeError(res, "Unable to decode to ArrayBuffer"));
export const toBlob = to((res) => res.blob(), (res) => new DecodeError(res, "Unable to decode to Blob"));
export function filterStatus(func) {

@@ -47,4 +36,4 @@ return (fx) => {

}
export function filterStatusOk() {
return filterStatus((status) => status >= 200 && status < 300);
export function filterStatusOk(fx) {
return pipe(fx, Effect.filterOrElse((res) => res.ok, (res) => Effect.fail(new StatusError(res))));
}
{
"name": "http-kit",
"version": "0.2.2",
"version": "0.3.0",
"type": "module",

@@ -5,0 +5,0 @@ "description": "Platform agnostic fetch kit for the Effect package",