UNPKG

taglib-wasm

Version:

TagLib-Wasm is the universal tagging library for TypeScript/JavaScript platforms: Browsers, Node.js, Deno, Bun, Cloudflare Workers, and Electron apps

43 lines (42 loc) 966 B
import { MetadataError, UnsupportedFormatError } from "../errors/classes.js"; const FRAME_ID_PATTERN = /^[A-Z0-9]{4}$/; function assertMp3(format) { if (format !== "MP3") { throw new UnsupportedFormatError(format, ["MP3"], { operation: "id3v2Frames" }); } } function assertFrameId(id, operation) { if (!FRAME_ID_PATTERN.test(id)) { throw new MetadataError( operation, `Invalid ID3v2 frame ID: "${id}". Frame IDs must match [A-Z0-9]{4}`, id ); } } function assertFrameBodies(id, data) { for (const body of data) { if (body.length === 0) { throw new MetadataError( "write", "Frame data must not be empty: zero-size ID3v2 frames are invalid", id ); } } } function toPublicFrame(frame) { return { id: frame.id, data: frame.data, ...frame.flags ? { flags: frame.flags } : {} }; } export { assertFrameBodies, assertFrameId, assertMp3, toPublicFrame };