npm package diff
Package: @forge/events
Versions: 1.0.1 - 1.0.1-experimental-93876a6
File: package/src/appEvents.ts
Index: package/src/appEvents.ts
===================================================================
--- package/src/appEvents.ts
+++ package/src/appEvents.ts
@@ -0,0 +1,34 @@
+import { post } from './queries';
+import { AppEventResult, AppEventRequest, AppEventErrorType } from './types';
+import { __requestAtlassianAsApp } from '@forge/api';
+
+const errorTypes: Record<number, AppEventErrorType> = {
+ 400: 'VALIDATION_ERROR',
+ 401: 'AUTHENTICATION_ERROR',
+ 403: 'AUTHENTICATION_ERROR',
+ 429: 'RATE_LIMIT',
+ 500: 'SERVICE_UNAVAILABLE',
+ 503: 'SERVICE_UNAVAILABLE'
+};
+
+const endpoint = '/app/event?installationContext=${contextAri}&environmentId=${environmentId}&appId=${appId}';
+
+export const appEvents = {
+ async publishEvent(eventType: string): Promise<AppEventResult> {
+ const body: AppEventRequest = {
+ type: eventType
+ };
+
+ const response = await post(endpoint, body, __requestAtlassianAsApp);
+
+ if (!response.ok) {
+ const responseBody = await response.json();
+ return {
+ errorType: errorTypes[response.status] ?? 'OTHER',
+ errorMessage: responseBody?.errorMessage || ''
+ };
+ }
+
+ return {};
+ }
+};