feeds.delete()
Permanently delete a feed and all its entries.
Signature
feeds.delete(feedId: string): Promise<void>Parameters
feedId
- Type:
string - Required: Yes
- Description: The UUID of the feed to delete
Returns
- Type:
Promise<void>
Returns nothing on success. Throws error if deletion fails.
Usage
Basic Example
const feedId = '123e4567-e89b-12d3-a456-426614174000';
await grapevine.feeds.delete(feedId);
console.log('Feed deleted successfully');With Confirmation
async function deleteFeedWithConfirmation(feedId: string) {
// Get feed details first
const feed = await grapevine.feeds.get(feedId);
console.log(`About to delete: ${feed.name}`);
console.log(`This will delete ${feed.total_entries} entries`);
// Confirm deletion (in a real app, get user confirmation)
const confirmed = true; // await getUserConfirmation();
if (confirmed) {
await grapevine.feeds.delete(feedId);
console.log('Feed and all entries deleted');
}
}Batch Deletion
async function deleteMultipleFeeds(feedIds: string[]) {
const results = await Promise.allSettled(
feedIds.map(id => grapevine.feeds.delete(id))
);
results.forEach((result, index) => {
if (result.status === 'fulfilled') {
console.log(`Deleted feed ${feedIds[index]}`);
} else {
console.error(`Failed to delete ${feedIds[index]}:`, result.reason);
}
});
}Behind the Scenes
This method:
- Validates the feed ID format
- Gets authentication headers (nonce + signature)
- Makes DELETE request to
/v1/feeds/{feedId} - Handles 402 payment if required
- Deletes feed and all associated entries
Error Handling
try {
await grapevine.feeds.delete(feedId);
console.log('Feed deleted');
} catch (error) {
if (error.message.includes('404')) {
console.error('Feed not found');
} else if (error.message.includes('403')) {
console.error('Not authorized - you can only delete your own feeds');
} else if (error.message.includes('402')) {
console.error('Payment required for deletion');
} else {
console.error('Error:', error.message);
}
}Notes
- Authentication: Required - must be feed owner
- Permanent: This action cannot be undone
- Cascading: Deletes all entries in the feed
- Payment: May require x402 micropayment (handled automatically)
- Ownership: Can only delete feeds you own
Related
- feeds.update() - Update feed (use to deactivate instead)
- feeds.get() - Check feed before deletion
- entries.delete() - Delete individual entries