/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { CodatBankFeedsCore } from "../core.js"; import { SDKValidationError } from "../sdk/models/errors/sdkvalidationerror.js"; import * as shared from "../sdk/models/shared/index.js"; import { ERR, Result } from "../sdk/types/fp.js"; export async function validateWebhook(_client: CodatBankFeedsCore, { request: rawRequest, }: { request: { body: BodyInit; method: string; url: string; headers: Record | Headers; } | Request; }): Promise< Result< shared.ClientRateLimitWebhook | undefined | shared.SourceAccountWebhook, SDKValidationError > > { const request = normalizeRequest(rawRequest); const knownSchemas = [ shared.clientRateLimitWebhookFromJSON, shared.clientRateLimitWebhookFromJSON, shared.sourceAccountWebhookFromJSON, shared.sourceAccountWebhookFromJSON, ]; const jsonString = await request.text(); for (const schema of knownSchemas) { const ret = schema(jsonString); if (ret.ok) { return ret; } } return ERR( new SDKValidationError( "No matching schema found for the given webhook payload", jsonString, jsonString, ), ); } function normalizeRequest( request: { body: BodyInit; method: string; url: string; headers: Record | Headers; } | Request, ): Request { if (request instanceof Request) { return request; } return new Request(request.url, request); }