Skip to content

Commit 45850e3

Browse files
authored
chore: consolidate HTTP parsers and header maps into single files (#267)
Signed-off-by: Grant Timmerman <timmerman+devrel@google.com>
1 parent 1613595 commit 45850e3

File tree

8 files changed

+46
-69
lines changed

8 files changed

+46
-69
lines changed

src/transport/http/binary_receiver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { CloudEvent, Version } from "../..";
22
import { CloudEventV1, validateV1 } from "../../event/v1";
33
import { CloudEventV03, validateV03 } from "../../event/v03";
44
import { Headers, validate } from "./headers";
5-
import { binaryParsers as v1Parsers } from "./v1/parsers";
6-
import { binaryParsers as v03Parsers } from "./v03/parsers";
5+
import { binaryParsers as v1Parsers } from "./v1";
6+
import { binaryParsers as v03Parsers } from "./v03";
77
import { parserByContentType, MappedParser } from "../../parsers";
88
import { isString, isBase64, ValidationError, isStringOrObjectOrThrow } from "../../event/validation";
99
import CONSTANTS from "../../constants";

src/transport/http/structured_receiver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { CloudEvent, Version } from "../..";
22
import { Headers, sanitize } from "./headers";
33
import { Parser, JSONParser, MappedParser } from "../../parsers";
44
import { parserByContentType } from "../../parsers";
5-
import { structuredParsers as v1Parsers } from "./v1/parsers";
6-
import { structuredParsers as v03Parsers } from "./v03/parsers";
5+
import { structuredParsers as v1Parsers } from "./v1";
6+
import { structuredParsers as v03Parsers } from "./v03";
77
import { isString, isBase64, ValidationError, isStringOrObjectOrThrow } from "../../event/validation";
88
import { CloudEventV1, validateV1 } from "../../event/v1";
99
import { CloudEventV03, validateV03 } from "../../event/v03";

src/transport/http/v03/parsers.ts renamed to src/transport/http/v03.ts

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,27 @@
1-
import { MappedParser, DateParser, PassThroughParser } from "../../../parsers";
2-
import CONSTANTS from "../../../constants";
1+
import { MappedParser, DateParser, PassThroughParser } from "../../parsers";
2+
import CONSTANTS from "../../constants";
33

4-
const passThrough = new PassThroughParser();
5-
function parser(name: string, parser = passThrough): MappedParser {
6-
return { name: name, parser: parser };
4+
function parser(header: string, parser = new PassThroughParser()): MappedParser {
5+
return { name: header, parser };
76
}
87

9-
const binaryParsers: Record<string, MappedParser> = Object.freeze({
8+
/**
9+
* A utility Map used to retrieve the header names for a CloudEvent
10+
* using the CloudEvent getter function.
11+
*/
12+
export const headerMap: Readonly<{ [key: string]: MappedParser }> = Object.freeze({
13+
[CONSTANTS.CE_ATTRIBUTES.CONTENT_TYPE]: parser(CONSTANTS.HEADER_CONTENT_TYPE),
14+
[CONSTANTS.CE_ATTRIBUTES.SUBJECT]: parser(CONSTANTS.CE_HEADERS.SUBJECT),
15+
[CONSTANTS.CE_ATTRIBUTES.TYPE]: parser(CONSTANTS.CE_HEADERS.TYPE),
16+
[CONSTANTS.CE_ATTRIBUTES.SPEC_VERSION]: parser(CONSTANTS.CE_HEADERS.SPEC_VERSION),
17+
[CONSTANTS.CE_ATTRIBUTES.SOURCE]: parser(CONSTANTS.CE_HEADERS.SOURCE),
18+
[CONSTANTS.CE_ATTRIBUTES.ID]: parser(CONSTANTS.CE_HEADERS.ID),
19+
[CONSTANTS.CE_ATTRIBUTES.TIME]: parser(CONSTANTS.CE_HEADERS.TIME),
20+
[CONSTANTS.STRUCTURED_ATTRS_03.CONTENT_ENCODING]: parser(CONSTANTS.BINARY_HEADERS_03.CONTENT_ENCODING),
21+
[CONSTANTS.STRUCTURED_ATTRS_03.SCHEMA_URL]: parser(CONSTANTS.BINARY_HEADERS_03.SCHEMA_URL),
22+
});
23+
24+
export const binaryParsers: Record<string, MappedParser> = Object.freeze({
1025
[CONSTANTS.CE_HEADERS.TYPE]: parser(CONSTANTS.CE_ATTRIBUTES.TYPE),
1126
[CONSTANTS.CE_HEADERS.SPEC_VERSION]: parser(CONSTANTS.CE_ATTRIBUTES.SPEC_VERSION),
1227
[CONSTANTS.CE_HEADERS.SOURCE]: parser(CONSTANTS.CE_ATTRIBUTES.SOURCE),
@@ -18,7 +33,7 @@ const binaryParsers: Record<string, MappedParser> = Object.freeze({
1833
[CONSTANTS.HEADER_CONTENT_TYPE]: parser(CONSTANTS.CE_ATTRIBUTES.CONTENT_TYPE),
1934
});
2035

21-
const structuredParsers: Record<string, MappedParser> = Object.freeze({
36+
export const structuredParsers: Record<string, MappedParser> = Object.freeze({
2237
[CONSTANTS.CE_ATTRIBUTES.TYPE]: parser(CONSTANTS.CE_ATTRIBUTES.TYPE),
2338
[CONSTANTS.CE_ATTRIBUTES.SPEC_VERSION]: parser(CONSTANTS.CE_ATTRIBUTES.SPEC_VERSION),
2439
[CONSTANTS.CE_ATTRIBUTES.SOURCE]: parser(CONSTANTS.CE_ATTRIBUTES.SOURCE),
@@ -30,5 +45,3 @@ const structuredParsers: Record<string, MappedParser> = Object.freeze({
3045
[CONSTANTS.CE_ATTRIBUTES.SUBJECT]: parser(CONSTANTS.CE_ATTRIBUTES.SUBJECT),
3146
[CONSTANTS.CE_ATTRIBUTES.DATA]: parser(CONSTANTS.CE_ATTRIBUTES.DATA),
3247
});
33-
34-
export { binaryParsers, structuredParsers };

src/transport/http/v03/headers.ts

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/transport/http/v03/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/transport/http/v1/parsers.ts renamed to src/transport/http/v1.ts

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,26 @@
1-
import { PassThroughParser, DateParser, MappedParser } from "../../../parsers";
2-
import CONSTANTS from "../../../constants";
1+
import { PassThroughParser, DateParser, MappedParser } from "../../parsers";
2+
import CONSTANTS from "../../constants";
33

4-
const passThrough = new PassThroughParser();
5-
6-
function parser(name: string, parser = passThrough): MappedParser {
4+
function parser(name: string, parser = new PassThroughParser()): MappedParser {
75
return { name: name, parser: parser };
86
}
97

10-
const binaryParsers: Record<string, MappedParser> = Object.freeze({
8+
/**
9+
* A utility Map used to retrieve the header names for a CloudEvent
10+
* using the CloudEvent getter function.
11+
*/
12+
export const headerMap: Readonly<{ [key: string]: MappedParser }> = Object.freeze({
13+
[CONSTANTS.CE_ATTRIBUTES.CONTENT_TYPE]: parser(CONSTANTS.HEADER_CONTENT_TYPE),
14+
[CONSTANTS.CE_ATTRIBUTES.SUBJECT]: parser(CONSTANTS.CE_HEADERS.SUBJECT),
15+
[CONSTANTS.CE_ATTRIBUTES.TYPE]: parser(CONSTANTS.CE_HEADERS.TYPE),
16+
[CONSTANTS.CE_ATTRIBUTES.SPEC_VERSION]: parser(CONSTANTS.CE_HEADERS.SPEC_VERSION),
17+
[CONSTANTS.CE_ATTRIBUTES.SOURCE]: parser(CONSTANTS.CE_HEADERS.SOURCE),
18+
[CONSTANTS.CE_ATTRIBUTES.ID]: parser(CONSTANTS.CE_HEADERS.ID),
19+
[CONSTANTS.CE_ATTRIBUTES.TIME]: parser(CONSTANTS.CE_HEADERS.TIME),
20+
[CONSTANTS.STRUCTURED_ATTRS_1.DATA_SCHEMA]: parser(CONSTANTS.BINARY_HEADERS_1.DATA_SCHEMA),
21+
});
22+
23+
export const binaryParsers: Record<string, MappedParser> = Object.freeze({
1124
[CONSTANTS.CE_HEADERS.TYPE]: parser(CONSTANTS.CE_ATTRIBUTES.TYPE),
1225
[CONSTANTS.CE_HEADERS.SPEC_VERSION]: parser(CONSTANTS.CE_ATTRIBUTES.SPEC_VERSION),
1326
[CONSTANTS.CE_HEADERS.SOURCE]: parser(CONSTANTS.CE_ATTRIBUTES.SOURCE),
@@ -19,7 +32,7 @@ const binaryParsers: Record<string, MappedParser> = Object.freeze({
1932
[CONSTANTS.HEADER_CONTENT_TYPE]: parser(CONSTANTS.CE_ATTRIBUTES.CONTENT_TYPE),
2033
});
2134

22-
const structuredParsers: Record<string, MappedParser> = Object.freeze({
35+
export const structuredParsers: Record<string, MappedParser> = Object.freeze({
2336
[CONSTANTS.CE_ATTRIBUTES.TYPE]: parser(CONSTANTS.CE_ATTRIBUTES.TYPE),
2437
[CONSTANTS.CE_ATTRIBUTES.SPEC_VERSION]: parser(CONSTANTS.CE_ATTRIBUTES.SPEC_VERSION),
2538
[CONSTANTS.CE_ATTRIBUTES.SOURCE]: parser(CONSTANTS.CE_ATTRIBUTES.SOURCE),
@@ -31,5 +44,3 @@ const structuredParsers: Record<string, MappedParser> = Object.freeze({
3144
[CONSTANTS.CE_ATTRIBUTES.DATA]: parser(CONSTANTS.CE_ATTRIBUTES.DATA),
3245
[CONSTANTS.STRUCTURED_ATTRS_1.DATA_BASE64]: parser(CONSTANTS.STRUCTURED_ATTRS_1.DATA_BASE64),
3346
});
34-
35-
export { structuredParsers, binaryParsers };

src/transport/http/v1/headers.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/transport/http/v1/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)