summaryrefslogtreecommitdiff
path: root/u/server/filter
diff options
context:
space:
mode:
authorElizabeth <lizhunt@amazon.com>2025-05-28 15:05:38 -0700
committerElizabeth <lizhunt@amazon.com>2025-05-28 15:05:38 -0700
commit3005cc83e605fb89b079cf0e6fd0ec95cd27b30e (patch)
tree992c5933f2ec4a75e32469ddd772c61dbcb2e2fd /u/server/filter
parente3cf820b07e282221502cf2f116c9780b7375e0e (diff)
downloadci-3005cc83e605fb89b079cf0e6fd0ec95cd27b30e.tar.gz
ci-3005cc83e605fb89b079cf0e6fd0ec95cd27b30e.zip
Run prettier, add zed settings
Diffstat (limited to 'u/server/filter')
-rw-r--r--u/server/filter/json.ts69
-rw-r--r--u/server/filter/method.ts40
-rw-r--r--u/server/filter/mod.ts10
3 files changed, 63 insertions, 56 deletions
diff --git a/u/server/filter/json.ts b/u/server/filter/json.ts
index 4a2961e..79eabac 100644
--- a/u/server/filter/json.ts
+++ b/u/server/filter/json.ts
@@ -16,36 +16,39 @@ export interface JsonTransformer<R, ParsedJson = unknown> {
}
const ParseJsonMetric = Metric.fromName("JsonParse");
-export const jsonModel = <MessageT>(
- jsonTransformer: JsonTransformer<MessageT>,
-): RequestFilter<MessageT> =>
-(r: ITraceable<PenguenoRequest, ServerTrace>) =>
- r.bimap(TraceUtil.withMetricTrace(ParseJsonMetric))
- .map((j) =>
- Either.fromFailableAsync<Error, MessageT>(j.get().json())
- .then((either) =>
- either.mapLeft((errReason) => {
- j.trace.addTrace(LogLevel.WARN).trace(`${errReason}`);
- return new PenguenoError(
- "seems to be invalid JSON (>//<) can you fix?",
- 400,
- );
- })
- )
- )
- .peek(
- TraceUtil.promiseify((traceableEither) =>
- traceableEither.get().mapBoth(
- () => traceableEither.trace.trace(ParseJsonMetric.failure),
- () => traceableEither.trace.trace(ParseJsonMetric.success),
- )
- ),
- )
- .map(
- TraceUtil.promiseify((traceableEitherJson) =>
- traceableEitherJson.get()
- .mapRight(traceableEitherJson.move)
- .flatMap(jsonTransformer)
- ),
- )
- .get();
+export const jsonModel =
+ <MessageT>(
+ jsonTransformer: JsonTransformer<MessageT>,
+ ): RequestFilter<MessageT> =>
+ (r: ITraceable<PenguenoRequest, ServerTrace>) =>
+ r
+ .bimap(TraceUtil.withMetricTrace(ParseJsonMetric))
+ .map((j) =>
+ Either.fromFailableAsync<Error, MessageT>(j.get().json()).then(
+ (either) =>
+ either.mapLeft((errReason) => {
+ j.trace.addTrace(LogLevel.WARN).trace(`${errReason}`);
+ return new PenguenoError(
+ "seems to be invalid JSON (>//<) can you fix?",
+ 400,
+ );
+ }),
+ ),
+ )
+ .peek(
+ TraceUtil.promiseify((traceableEither) =>
+ traceableEither.get().mapBoth(
+ () => traceableEither.trace.trace(ParseJsonMetric.failure),
+ () => traceableEither.trace.trace(ParseJsonMetric.success),
+ ),
+ ),
+ )
+ .map(
+ TraceUtil.promiseify((traceableEitherJson) =>
+ traceableEitherJson
+ .get()
+ .mapRight(traceableEitherJson.move)
+ .flatMap(jsonTransformer),
+ ),
+ )
+ .get();
diff --git a/u/server/filter/method.ts b/u/server/filter/method.ts
index 6b0419d..9901c6f 100644
--- a/u/server/filter/method.ts
+++ b/u/server/filter/method.ts
@@ -20,22 +20,24 @@ type HttpMethod =
| "TRACE"
| "PATCH";
-export const requireMethod = (
- methods: Array<HttpMethod>,
-): RequestFilter<HttpMethod> =>
-(req: ITraceable<PenguenoRequest, ServerTrace>) =>
- req.bimap(TraceUtil.withFunctionTrace(requireMethod))
- .move(Promise.resolve(req.get()))
- .map(TraceUtil.promiseify((t) => {
- const { method: _method } = t.get();
- const method = <HttpMethod> _method;
- if (!methods.includes(method)) {
- const msg = "that's not how you pet me (⋟﹏⋞)~";
- t.trace.addTrace(LogLevel.WARN).trace(msg);
- return Either.left<PenguenoError, HttpMethod>(
- new PenguenoError(msg, 405),
- );
- }
- return Either.right<PenguenoError, HttpMethod>(method);
- }))
- .get();
+export const requireMethod =
+ (methods: Array<HttpMethod>): RequestFilter<HttpMethod> =>
+ (req: ITraceable<PenguenoRequest, ServerTrace>) =>
+ req
+ .bimap(TraceUtil.withFunctionTrace(requireMethod))
+ .move(Promise.resolve(req.get()))
+ .map(
+ TraceUtil.promiseify((t) => {
+ const { method: _method } = t.get();
+ const method = <HttpMethod>_method;
+ if (!methods.includes(method)) {
+ const msg = "that's not how you pet me (⋟﹏⋞)~";
+ t.trace.addTrace(LogLevel.WARN).trace(msg);
+ return Either.left<PenguenoError, HttpMethod>(
+ new PenguenoError(msg, 405),
+ );
+ }
+ return Either.right<PenguenoError, HttpMethod>(method);
+ }),
+ )
+ .get();
diff --git a/u/server/filter/mod.ts b/u/server/filter/mod.ts
index bbf37df..3b247fc 100644
--- a/u/server/filter/mod.ts
+++ b/u/server/filter/mod.ts
@@ -13,11 +13,13 @@ export enum ErrorSource {
export class PenguenoError extends Error {
public readonly source: ErrorSource;
- constructor(message: string, public readonly status: number) {
+ constructor(
+ message: string,
+ public readonly status: number,
+ ) {
super(message);
- this.source = Math.floor(status / 100) === 4
- ? ErrorSource.USER
- : ErrorSource.SYSTEM;
+ this.source =
+ Math.floor(status / 100) === 4 ? ErrorSource.USER : ErrorSource.SYSTEM;
}
}