edsger-feedback
v0.1.0
Published
Submit user feedback to Edsger products programmatically
Maintainers
Readme
edsger-feedback
Submit user feedback to Edsger products programmatically.
Installation
npm install edsger-feedbackQuick Start
import { submitFeedback } from 'edsger-feedback'
const result = await submitFeedback({
slug: 'spoke-translator',
title: 'Add dark mode',
description: 'It would be great to have a dark mode option.',
category: 'feature_request',
reporterEmail: '[email protected]',
})
console.log('Feedback submitted:', result.id)API
submitFeedback(options)
Submit feedback for a product. Returns Promise<FeedbackResult>.
| Option | Type | Required | Description |
|--------|------|----------|-------------|
| slug | string | Yes | Product slug (e.g. "spoke-translator") |
| title | string | Yes | Feedback title (max 200 characters) |
| description | string | Yes | Feedback description (max 5000 characters) |
| category | FeedbackCategory | No | One of bug, feature_request, improvement, question, other. Defaults to other |
| reporterName | string | No | Reporter's name |
| reporterEmail | string | No | Reporter's email |
Returns:
{ id: string; createdAt: string }getFeedbackConfig(slug)
Get the feedback page configuration for a product. Returns Promise<FeedbackConfig>.
Returns:
{
productId: string
productName: string
customTitle: string | null
welcomeMessage: string | null
slug: string
}Error Handling
All errors are thrown as FeedbackError with a statusCode property.
import { submitFeedback, FeedbackError } from 'edsger-feedback'
try {
await submitFeedback({ ... })
} catch (err) {
if (err instanceof FeedbackError) {
console.error(err.message, err.statusCode)
// e.g. "Too many submissions..." 429
}
}Requirements
- Node.js >= 18 (uses native
fetch)
License
ISC
