UNPKG

id3-parser

Version:
37 lines (34 loc) 975 B
import { IBytes, IID3Tag, ITags } from './interface'; import parseV1Tag from './parsers/v1parser'; import parseV2Tag from './parsers/v2parser'; function parse(bytes: IBytes) { const v1data = parseV1Tag(bytes); const v2data = parseV2Tag(bytes); if (!v2data && !v1data) { return false; } const defaultValue = { version: false }; const { version: v2, ...v2meta } = v2data || defaultValue; const { version: v1, ...v1meta } = v1data || defaultValue; const result: IID3Tag = { version: { v1, v2, }, ...v1meta, ...v2meta, }; /* tslint:disable:no-any */ if ((v1meta as ITags).comments) { result.comments = [{ value: (v1meta as ITags).comments, }, ...(v2meta && (v2meta as any).comments) ? (v2meta as any).comments : []]; } /* tslint:enable:no-any */ return result; } export default parse; export { parseV1Tag, parseV2Tag, };