|
1 | 1 | import Ajv from "ajv"; |
2 | | -import { v4 as uuidv4 } from "uuid"; |
3 | 2 | import { ValidationError, isBase64 } from "./validation"; |
4 | 3 |
|
5 | | -import { CloudEvent } from "./cloudevent"; |
6 | | -import { CloudEventV1, CloudEventV1Attributes, CloudEventV03, CloudEventV03Attributes } from "./interfaces"; |
| 4 | +import { CloudEventV1, CloudEventV03 } from "./interfaces"; |
7 | 5 | import { schemaV03, schemaV1 } from "./schemas"; |
8 | 6 | import CONSTANTS from "../constants"; |
9 | 7 |
|
10 | 8 | const ajv = new Ajv({ extendRefs: true }); |
11 | 9 | const isValidAgainstSchemaV1 = ajv.compile(schemaV1); |
12 | 10 | const isValidAgainstSchemaV03 = ajv.compile(schemaV03); |
13 | 11 |
|
14 | | -export function createV1(attributes: CloudEventV1Attributes): CloudEventV1 { |
15 | | - const event: CloudEventV1 = { |
16 | | - specversion: schemaV1.definitions.specversion.const, |
17 | | - id: uuidv4(), |
18 | | - time: new Date().toISOString(), |
19 | | - ...attributes, |
20 | | - }; |
21 | | - return new CloudEvent(event); |
22 | | -} |
23 | | - |
24 | 12 | export function validateV1(event: CloudEventV1): boolean { |
25 | 13 | if (!isValidAgainstSchemaV1(event)) { |
26 | 14 | throw new ValidationError("invalid payload", isValidAgainstSchemaV1.errors); |
27 | 15 | } |
28 | 16 | return true; |
29 | 17 | } |
30 | 18 |
|
31 | | -export function createV03(attributes: CloudEventV03Attributes): CloudEventV03 { |
32 | | - const event: CloudEventV03 = { |
33 | | - specversion: schemaV03.definitions.specversion.const, |
34 | | - id: uuidv4(), |
35 | | - time: new Date().toISOString(), |
36 | | - ...attributes, |
37 | | - }; |
38 | | - return new CloudEvent(event); |
39 | | -} |
40 | | - |
41 | 19 | export function validateV03(event: CloudEventV03): boolean { |
42 | 20 | if (!isValidAgainstSchemaV03(event)) { |
43 | 21 | throw new ValidationError("invalid payload", isValidAgainstSchemaV03.errors); |
|
0 commit comments