← Public packages
@kentcdodds/audible
Personal Audible library app — browser re-auth, library, wishlist, NAS archive stub.
src/archive-remaining-helpers.ts
27 lines · 791 B · TypeScriptimport type { SlimLibraryItem } from './types.ts'
export type RemainingTitle = {
asin: string
title: string
}
export function isDownloadable(item: SlimLibraryItem): boolean {
const elig = item.archiveEligibility ?? 'downloadable'
return elig === 'downloadable' && Boolean(item.asin) && Boolean(item.title?.trim())
}
/** Pure NAS filter used by listRemainingToArchive / bulk UI. */
export function filterNotOnNas(
items: Array<{ asin: string; title?: string; onNas?: boolean }>,
onNasByAsin: Map<string, boolean>,
): RemainingTitle[] {
const out: RemainingTitle[] = []
for (const item of items) {
if (!item.asin) continue
if (onNasByAsin.get(item.asin)) continue
const title = item.title?.trim()
if (!title) continue
out.push({ asin: item.asin, title })
}
return out
}