1*a5fb1ba8SEvan Bacon"use strict"; 226ad19fcSEvan Bacon/** 326ad19fcSEvan Bacon * Copyright (c) 650 Industries. 426ad19fcSEvan Bacon * Copyright (c) Facebook, Inc. and its affiliates. 526ad19fcSEvan Bacon * 626ad19fcSEvan Bacon * This source code is licensed under the MIT license found in the 726ad19fcSEvan Bacon * LICENSE file in the root directory of this source tree. 826ad19fcSEvan Bacon */ 9*a5fb1ba8SEvan Baconvar __importDefault = (this && this.__importDefault) || function (mod) { 10*a5fb1ba8SEvan Bacon return (mod && mod.__esModule) ? mod : { "default": mod }; 11*a5fb1ba8SEvan Bacon}; 12*a5fb1ba8SEvan BaconObject.defineProperty(exports, "__esModule", { value: true }); 13*a5fb1ba8SEvan Baconexports.fetchAsync = void 0; 14*a5fb1ba8SEvan Baconconst react_native_1 = require("react-native"); 1526ad19fcSEvan Bacon// @ts-expect-error 16*a5fb1ba8SEvan Baconconst RCTNetworking_1 = __importDefault(require("react-native/Libraries/Network/RCTNetworking")); 17*a5fb1ba8SEvan Baconfunction fetchAsync(url) { 1826ad19fcSEvan Bacon let id = null; 1926ad19fcSEvan Bacon let responseText = null; 2026ad19fcSEvan Bacon let headers = {}; 2126ad19fcSEvan Bacon let dataListener = null; 2226ad19fcSEvan Bacon let completeListener = null; 2326ad19fcSEvan Bacon let responseListener = null; 2426ad19fcSEvan Bacon return new Promise((resolve, reject) => { 25*a5fb1ba8SEvan Bacon const addListener = RCTNetworking_1.default.addListener; 2626ad19fcSEvan Bacon dataListener = addListener('didReceiveNetworkData', ([requestId, response]) => { 2726ad19fcSEvan Bacon if (requestId === id) { 2826ad19fcSEvan Bacon responseText = response; 2926ad19fcSEvan Bacon } 3026ad19fcSEvan Bacon }); 3126ad19fcSEvan Bacon responseListener = addListener('didReceiveNetworkResponse', ([requestId, status, responseHeaders]) => { 3226ad19fcSEvan Bacon if (requestId === id) { 3326ad19fcSEvan Bacon headers = responseHeaders; 3426ad19fcSEvan Bacon } 3526ad19fcSEvan Bacon }); 3626ad19fcSEvan Bacon completeListener = addListener('didCompleteNetworkResponse', ([requestId, error]) => { 3726ad19fcSEvan Bacon if (requestId === id) { 3826ad19fcSEvan Bacon if (error) { 3926ad19fcSEvan Bacon reject(error); 4026ad19fcSEvan Bacon } 4126ad19fcSEvan Bacon else { 4226ad19fcSEvan Bacon resolve({ body: responseText, headers }); 4326ad19fcSEvan Bacon } 4426ad19fcSEvan Bacon } 4526ad19fcSEvan Bacon }); 46*a5fb1ba8SEvan Bacon RCTNetworking_1.default.sendRequest('GET', 'asyncRequest', url, { 47*a5fb1ba8SEvan Bacon 'expo-platform': react_native_1.Platform.OS, 4826ad19fcSEvan Bacon }, '', 'text', false, 0, (requestId) => { 4926ad19fcSEvan Bacon id = requestId; 5026ad19fcSEvan Bacon }, true); 5126ad19fcSEvan Bacon }).finally(() => { 5226ad19fcSEvan Bacon dataListener?.remove(); 5326ad19fcSEvan Bacon completeListener?.remove(); 5426ad19fcSEvan Bacon responseListener?.remove(); 5526ad19fcSEvan Bacon }); 5626ad19fcSEvan Bacon} 57*a5fb1ba8SEvan Baconexports.fetchAsync = fetchAsync; 5826ad19fcSEvan Bacon//# sourceMappingURL=fetchAsync.native.js.map