UNPKG

@infinito/id3

Version:
41 lines (28 loc) 1.26 kB
"use strict"; 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; }