@infinito/id3
Version:
ID3 Tag Reader/Writer
41 lines (28 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getTagBuffer;
var _fs = _interopRequireDefault(require("fs"));
var _constants = require("./constants.js");
var _valid = _interopRequireDefault(require("./valid.js"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getTagBuffer(path) {
if (typeof path != "string") {
throw new TypeError('parameter path must be a string');
}
if (!_fs.default.existsSync(path)) {
throw new Error("".concat(path, " not found"));
}
var fd = _fs.default.openSync(path, 'r');
var buf = new Uint8Array(_constants.constants.ID3_HEADER_LENGTH_BYTES);
if (_fs.default.readSync(fd, buf, 0, _constants.constants.ID3_HEADER_LENGTH_BYTES, 0) != _constants.constants.ID3_HEADER_LENGTH_BYTES) {
throw new Error('fs.readSync failed');
}
var tagInfo = (0, _valid.default)(buf.buffer);
buf = new Uint8Array(tagInfo.size + _constants.constants.ID3_HEADER_LENGTH_BYTES);
if (_fs.default.readSync(fd, buf, 0, tagInfo.size + _constants.constants.ID3_HEADER_LENGTH_BYTES, 0) != tagInfo.size + _constants.constants.ID3_HEADER_LENGTH_BYTES) {
throw new Error('fs.readSync failed');
}
return buf;
}