diff --git a/src/llhttp/c-headers.ts b/src/llhttp/c-headers.ts index 8aa3444b..717ed6e3 100644 --- a/src/llhttp/c-headers.ts +++ b/src/llhttp/c-headers.ts @@ -18,7 +18,9 @@ export class CHeaders { const errorMap = enumToMap(constants.ERROR); const methodMap = enumToMap(constants.METHODS); - const httpMethodMap = enumToMap(constants.METHODS, constants.METHODS_HTTP); + const httpMethodMap = enumToMap(constants.METHODS, constants.METHODS_HTTP, [ + constants.METHODS.PRI, + ]); const rtspMethodMap = enumToMap(constants.METHODS, constants.METHODS_RTSP); res += this.buildEnum('llhttp_errno', 'HPE', errorMap); diff --git a/src/llhttp/utils.ts b/src/llhttp/utils.ts index 950d6228..cb4605b1 100644 --- a/src/llhttp/utils.ts +++ b/src/llhttp/utils.ts @@ -2,7 +2,11 @@ export interface IEnumMap { [key: string]: number; } -export function enumToMap(obj: any, filter?: ReadonlyArray): IEnumMap { +export function enumToMap( + obj: any, + filter?: ReadonlyArray, + exceptions?: ReadonlyArray, +): IEnumMap { const res: IEnumMap = {}; Object.keys(obj).forEach((key) => { @@ -13,6 +17,9 @@ export function enumToMap(obj: any, filter?: ReadonlyArray): IEnumMap { if (filter && !filter.includes(value)) { return; } + if (exceptions && exceptions.includes(value)) { + return; + } res[key] = value; });