mirror of
https://github.com/juherr/kill-the-news.git
synced 2026-06-21 06:13:48 +00:00
refactor: invert application↔routes boundary (Track B — points 3, 6a)
- Point 3: move the feed/email storage-cleanup helpers (purgeFeedKeysStep, collectUnsubscribeUrls, purgeExpiredFeeds, deleteKeysWithConcurrency, deleteAttachmentsForEmails) out of routes/admin/helpers.ts into src/application/feed-cleanup.ts, so the application layer no longer imports from routes/. deleteFeedRecord no longer takes a Hono Context: it accepts a BackgroundScheduler ((task) => void) and the HTTP edge passes (p) => waitUntilSafe(c, p). Application/domain are now Hono-Context-free. - Point 6a: rename the misleadingly-named Feed.rename → Feed.editDetails (it edits title + description), and feed-service.renameFeed → editFeedDetails. CLAUDE.md source layout updated. 351 tests pass; tsc --noEmit clean. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -164,10 +164,10 @@ export class Feed {
|
||||
}
|
||||
|
||||
/**
|
||||
* In-place edit of the presentational fields only. Never touches expiry or the
|
||||
* sender policy — used by the dashboard's minimal title/description edit.
|
||||
* In-place edit of the presentational fields only (title + description). Never
|
||||
* touches expiry or the sender policy — used by the dashboard's minimal edit.
|
||||
*/
|
||||
rename(patch: { title?: string; description?: string }): void {
|
||||
editDetails(patch: { title?: string; description?: string }): void {
|
||||
if (patch.title !== undefined) this._config.title = patch.title;
|
||||
if (patch.description !== undefined) {
|
||||
this._config.description = patch.description;
|
||||
|
||||
Reference in New Issue
Block a user