Skip to content

Commit

Permalink
Revert "feat(xrpc-server): add support for brotli incoming payload"
Browse files Browse the repository at this point in the history
This reverts commit e710c21.
  • Loading branch information
devinivy committed Feb 19, 2024
1 parent 71a83fd commit 31bc23e
Showing 1 changed file with 13 additions and 8 deletions.
21 changes: 13 additions & 8 deletions packages/xrpc-server/src/util.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import assert from 'assert'
import { Readable } from 'stream'
import { createBrotliDecompress, createDeflate, createGunzip } from 'zlib'
import { Readable, Transform } from 'stream'
import { createDeflate, createGunzip } from 'zlib'
import express from 'express'
import mime from 'mime-types'
import {
Expand All @@ -10,7 +10,7 @@ import {
LexXrpcQuery,
LexXrpcSubscription,
} from '@atproto/lexicon'
import { MaxSizeChecker } from '@atproto/common'
import { forwardStreamErrors, MaxSizeChecker } from '@atproto/common'
import {
UndecodedParams,
Params,
Expand Down Expand Up @@ -244,20 +244,25 @@ function decodeBodyStream(
throw new XRPCError(413, 'request entity too large')
}

let decoder: Transform | undefined
if (contentEncoding === 'gzip') {
stream = stream.compose(createGunzip())
decoder = createGunzip()
} else if (contentEncoding === 'deflate') {
stream = stream.compose(createDeflate())
} else if (contentEncoding === 'br') {
stream = stream.compose(createBrotliDecompress())
decoder = createDeflate()
}

if (decoder) {
forwardStreamErrors(stream, decoder)
stream = stream.pipe(decoder)
}

if (maxSize !== undefined) {
const maxSizeChecker = new MaxSizeChecker(
maxSize,
() => new XRPCError(413, 'request entity too large'),
)
stream = stream.compose(maxSizeChecker)
forwardStreamErrors(stream, maxSizeChecker)
stream = stream.pipe(maxSizeChecker)
}

return stream
Expand Down

0 comments on commit 31bc23e

Please sign in to comment.