Creates a new NotificationClient instance.
Protected ReadonlyloggerProtected ReadonlyproviderProtected ReadonlytracerAppend to a user's push tokens.
Promise resolving to either an error or successful response.
ProtectedcreateSign a user token for enhanced security.
Promise resolving to either an error or successful response.
Triggers a notification through third-party providers.
This method handles:
Promise resolving to either an error or successful response.
import { type NotificationClient } from "@clipboard-health/notifications";
import { type ExampleNotificationDo } from "./exampleNotification.constants";
export class ExampleNotificationService {
constructor(private readonly client: NotificationClient) {}
async sendNotification(params: ExampleNotificationDo) {
const { attempt, expiresAt, idempotencyKey, recipients, workflowKey, workplaceId } = params;
// Assume this comes from a database and are used as template variables...
// Use @clipboard-health/date-time's formatShortDateTime in your service for consistency.
const data = { favoriteColor: "blue", favoriteAt: new Date().toISOString(), secret: "2" };
// Important: Read the TypeDoc documentation for additional context.
return await this.client.trigger({
attempt,
body: {
data,
recipients,
workplaceId,
},
// Helpful when controlling notifications with feature flags.
dryRun: false,
expiresAt: new Date(expiresAt),
idempotencyKey,
keysToRedact: ["secret"],
workflowKey,
});
}
}
Creates or updates user notification preferences.
Promise resolving to either an error or successful response.
Updates or creates a workplace (tenant) in our provider.
Promise resolving to either an error or successful response.
Client for sending notifications through third-party providers.