UNPKG

@vtex/api

Version:
35 lines (34 loc) 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Events = void 0; const util_1 = require("util"); const InfraClient_1 = require("./InfraClient"); const ANY_APP = ''; const eventRoute = (route) => `/events/${route}`; const isResourceVRN = (appIdOrResource) => (0, util_1.isObject)(appIdOrResource) && !(0, util_1.isNullOrUndefined)(appIdOrResource.service); class Events extends InfraClient_1.InfraClient { constructor({ recorder, ...context }, options) { super('courier@0.x', context, options); this.sendEvent = (appIdOrResource, route, message, tracingConfig) => { const resource = this.resourceFor(appIdOrResource); return this.http.put(eventRoute(route), message, { metric: 'events-send', params: { resource }, tracing: { requestSpanNameSuffix: 'events-send', ...tracingConfig === null || tracingConfig === void 0 ? void 0 : tracingConfig.tracing, }, }); }; this.resourceFor = (appIdOrResource) => { if (appIdOrResource === ANY_APP) { return ANY_APP; } const { service, path } = isResourceVRN(appIdOrResource) ? appIdOrResource : { service: 'apps', path: `/apps/${appIdOrResource}` }; return `vrn:${service}:${this.context.region}:${this.context.account}:${this.context.workspace}:${path}`; }; } } exports.Events = Events;