react-native-audio-api
Version:
react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification
57 lines (56 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.assertWorkletsEnabled = assertWorkletsEnabled;
exports.base64ToArrayBuffer = base64ToArrayBuffer;
exports.clamp = clamp;
exports.headersFromRequestInit = headersFromRequestInit;
Object.defineProperty(exports, "isFfmpegEnabled", {
enumerable: true,
get: function () {
return _flags.isFfmpegEnabled;
}
});
var _AudioAPIModule = _interopRequireDefault(require("../AudioAPIModule"));
var _errors = require("../errors");
var _flags = require("./flags");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function assertWorkletsEnabled() {
if (!_AudioAPIModule.default.areWorkletsAvailable) {
throw new _errors.AudioApiError('[react-native-audio-api]: Worklets are not available. Please install react-native-worklets to use this feature.');
}
if (!_AudioAPIModule.default.isWorkletsVersionSupported) {
throw new _errors.AudioApiError(`[react-native-audio-api]: Worklets version ${_AudioAPIModule.default.workletsVersion} is not supported.
Please install react-native-worklets of one of the following versions: [${_AudioAPIModule.default.supportedWorkletsVersion.join(', ')}] to use this feature.`);
}
}
function clamp(value, min, max) {
return Math.min(Math.max(value, min), max);
}
function base64ToArrayBuffer(base64) {
const binaryString = globalThis.atob(base64);
const len = binaryString.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
return bytes.buffer;
}
function headersFromRequestInit(fetchOptions) {
if (!fetchOptions?.headers) {
return undefined;
}
if (fetchOptions.headers instanceof Headers) {
const headers = {};
fetchOptions.headers.forEach((value, key) => {
headers[key] = value;
});
return headers;
}
if (Array.isArray(fetchOptions.headers)) {
return Object.fromEntries(fetchOptions.headers);
}
return fetchOptions.headers;
}
//# sourceMappingURL=index.js.map