UNPKG

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
"use strict"; 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