Improving Code for Parsing JSON Inputs
is there better way to do this ?
on this code
(x) => Boolean(x.titleId && x.title && x.auth)(x) => Boolean(x.titleId && x.title && x.auth)on this code
class ParsJsonError extends Data.TaggedError("ParseJsonError")<{}> {}
class InvalidInputError extends Data.TaggedError("InvalidInputError")<{}> {}
type InputJson = {
titleId: string;
title: string;
auth: string;
};
const parseInputs = (request: Request) => {
Effect.tryPromise({
try: () => request.json() as Promise<InputJson>,
catch: () => new ParsJsonError(),
}).pipe(
Effect.filterOrFail(
(x) => Boolean(x.titleId && x.title && x.auth),
() => new InvalidInputError(),
),
Effect.map((x) => ({
titleId: x.titleId.trim(),
title: x.title.trim(),
auth: x.auth.trim(),
})),
Effect.filterOrFail(
(x) => Boolean(x.titleId && x.title && x.auth),
() => new InvalidInputError(),
),
);
};class ParsJsonError extends Data.TaggedError("ParseJsonError")<{}> {}
class InvalidInputError extends Data.TaggedError("InvalidInputError")<{}> {}
type InputJson = {
titleId: string;
title: string;
auth: string;
};
const parseInputs = (request: Request) => {
Effect.tryPromise({
try: () => request.json() as Promise<InputJson>,
catch: () => new ParsJsonError(),
}).pipe(
Effect.filterOrFail(
(x) => Boolean(x.titleId && x.title && x.auth),
() => new InvalidInputError(),
),
Effect.map((x) => ({
titleId: x.titleId.trim(),
title: x.title.trim(),
auth: x.auth.trim(),
})),
Effect.filterOrFail(
(x) => Boolean(x.titleId && x.title && x.auth),
() => new InvalidInputError(),
),
);
};