@oxyhq/services
Version:
Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀
42 lines (38 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getFormDataConstructor = exports.ensureFormDataAvailable = void 0;
/**
* Polyfills for React Native environments that may be missing certain Web APIs
*/
// FormData polyfill for React Native/Hermes environments
if (typeof FormData === 'undefined') {
try {
const FormDataPolyfill = require('form-data');
// Use globalThis which is more universal than global
if (typeof globalThis !== 'undefined') {
globalThis.FormData = FormDataPolyfill;
}
} catch (error) {
console.warn('form-data package not found. File uploads may not work in React Native environments without native FormData support.');
}
}
// Export a helper to ensure FormData is available
const ensureFormDataAvailable = () => {
return typeof FormData !== 'undefined' || typeof require !== 'undefined';
};
// Get FormData constructor (either native or polyfilled)
exports.ensureFormDataAvailable = ensureFormDataAvailable;
const getFormDataConstructor = () => {
if (typeof FormData !== 'undefined') {
return FormData;
}
try {
return require('form-data');
} catch (error) {
throw new Error('FormData is not available and form-data package is not installed. Please install form-data for file upload support.');
}
};
exports.getFormDataConstructor = getFormDataConstructor;
//# sourceMappingURL=polyfills.js.map