UNPKG

@infinito/id3

Version:
51 lines (37 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = getID3; var _id = _interopRequireDefault(require("./get/id3.2.2.js")); var _id2 = _interopRequireDefault(require("./get/id3.2.3.js")); var _id3 = _interopRequireDefault(require("./get/id3.2.4.js")); var _valid = _interopRequireDefault(require("./valid.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function getID3(path, buf) { if (typeof path != 'string') { throw new TypeError('parameter path expects a string'); } if (!(buf instanceof Uint8Array)) { throw new TypeError('parameter buf expects a Uint8Array buffer'); } /* Detect which id3 tag to find, prefer id3v2.3 */ try { var taginfo = (0, _valid.default)(buf.buffer); } catch (error) { throw new Error("".concat(path, " does not contain valid id3 tags")); } switch (taginfo.ver) { case 4: return (0, _id3.default)(path, buf.buffer, taginfo.subver, taginfo.flags, taginfo.size); case 3: return (0, _id2.default)(path, buf.buffer, taginfo.subver, taginfo.flags, taginfo.size); case 2: return (0, _id.default)(path, buf.buffer, taginfo.subver, taginfo.flags, taginfo.size); default: console.log(path); console.log(taginfo); console.log(new Uint8Array(buf, 0, 20)); throw new Error("id3v" + taginfo.ver + "." + taginfo.subver + " not supported"); } }