@infinito/id3
Version:
ID3 Tag Reader/Writer
51 lines (37 loc) • 1.46 kB
JavaScript
;
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");
}
}