1"use strict"; 2/** 3 * Copyright (c) 650 Industries. 4 * Copyright (c) Facebook, Inc. and its affiliates. 5 * 6 * This source code is licensed under the MIT license found in the 7 * LICENSE file in the root directory of this source tree. 8 */ 9var __importDefault = (this && this.__importDefault) || function (mod) { 10 return (mod && mod.__esModule) ? mod : { "default": mod }; 11}; 12Object.defineProperty(exports, "__esModule", { value: true }); 13exports.fetchAsync = void 0; 14const react_native_1 = require("react-native"); 15// @ts-expect-error 16const RCTNetworking_1 = __importDefault(require("react-native/Libraries/Network/RCTNetworking")); 17function fetchAsync(url) { 18 let id = null; 19 let responseText = null; 20 let headers = {}; 21 let dataListener = null; 22 let completeListener = null; 23 let responseListener = null; 24 return new Promise((resolve, reject) => { 25 const addListener = RCTNetworking_1.default.addListener; 26 dataListener = addListener('didReceiveNetworkData', ([requestId, response]) => { 27 if (requestId === id) { 28 responseText = response; 29 } 30 }); 31 responseListener = addListener('didReceiveNetworkResponse', ([requestId, status, responseHeaders]) => { 32 if (requestId === id) { 33 headers = responseHeaders; 34 } 35 }); 36 completeListener = addListener('didCompleteNetworkResponse', ([requestId, error]) => { 37 if (requestId === id) { 38 if (error) { 39 reject(error); 40 } 41 else { 42 resolve({ body: responseText, headers }); 43 } 44 } 45 }); 46 RCTNetworking_1.default.sendRequest('GET', 'asyncRequest', url, { 47 'expo-platform': react_native_1.Platform.OS, 48 }, '', 'text', false, 0, (requestId) => { 49 id = requestId; 50 }, true); 51 }).finally(() => { 52 dataListener?.remove(); 53 completeListener?.remove(); 54 responseListener?.remove(); 55 }); 56} 57exports.fetchAsync = fetchAsync; 58//# sourceMappingURL=fetchAsync.native.js.map