perf(cmpp): decouple supplier result callbacks

This commit is contained in:
hectorzhao
2026-08-20 14:19:42 +08:00
parent 485af688d2
commit 67b760a599
27 changed files with 1000 additions and 66 deletions
@@ -40,6 +40,17 @@ function assertIsoDateTime(value, field, file) {
function validateExample(fileName) {
const fullPath = join(examplesDir, fileName);
const payload = JSON.parse(readFileSync(fullPath, 'utf8'));
if (fileName === 'submit-result-outbox-event.json') {
for (const field of ['schemaVersion', 'eventId', 'eventType', 'path', 'messageId', 'channelId', 'submitId', 'payload', 'createdAt']) {
assert(Object.hasOwn(payload, field), `${fileName}: missing ${field}`);
}
assert(payload.schemaVersion === 'v1', `${fileName}: schemaVersion must be v1`);
assert(['submit_result', 'submit_segment_result'].includes(payload.eventType), `${fileName}: unsupported eventType`);
assert(['/gateway/events/submit-result', '/gateway/events/submit-segment-result'].includes(payload.path), `${fileName}: unsupported path`);
assert(payload.payload?.eventId === payload.eventId, `${fileName}: payload.eventId must match eventId`);
assertIsoDateTime(payload.createdAt, 'createdAt', fileName);
return `${fileName}: ${payload.eventType} ok`;
}
const type = payload.messageType;
assert(validTypes.has(type), `${fileName}: unsupported messageType ${type}`);