[{"data":1,"prerenderedAt":2282},["ShallowReactive",2],{"blog-the-usenetflux":3},{"id":4,"title":5,"body":6,"date":2265,"description":181,"extension":2266,"meta":2267,"navigation":547,"path":2270,"published":547,"seo":2271,"stem":2272,"tags":2273,"__hash__":2281},"blog/blog/the-usenetflux.md","The useNetFlux",{"type":7,"value":8},"minimark",[9,14,19,34,37,40,43,46,49,52,55,58,61,69,77,79,91,112,116,126,170,175,299,303,309,336,340,426,430,454,458,474,477,481,488,491,510,616,623,626,642,726,733,736,765,865,872,878,899,1052,1059,1062,1074,1142,1149,1152,1181,1215,1219,1224,1227,1396,1401,1404,1456,1460,1509,1513,1519,1523,1697,1701,1844,1848,1852,1915,1919,2061,2065,2201,2205,2252,2255,2261],[10,11,13],"h2",{"id":12},"a-powerful-utility-library-for-managing-api-requests","A powerful utility library for managing API requests",[15,16,18],"h3",{"id":17},"project-links","Project Links",[20,21,22,29],"p",{},[23,24,28],"a",{"href":25,"rel":26},"https://netflux.nuxt.space/",[27],"nofollow","API Playground",[23,30,33],{"href":31,"rel":32},"https://github.com/dh00mk3tu/usenetflux",[27],"GitHub",[35,36],"hr",{},[20,38,39],{},"Jumping onto any new technology, framework or library to build apps etc is a challenge in itself. After a certain while, you hit the blocker that how do we make API calls in this environment; because naturally you have to consume data from the network at some point. Eventually you end up watching tutorials and reading documentation, but there is still no structure to it.",[20,41,42],{},"This composable helps to provide you with that structure.",[20,44,45],{},"I'm calling it a composable in general and not just in the terms of NUXT. It is a utility method for you that provides you a with very granular and precise control over your network calls.",[20,47,48],{},"I wanted to build a logic, or perhaps a wrapper around my API calls that will cancel a previous request and process a new one if the payload and the request endpoint aern't the same of even if they are same and we want to request new data.",[20,50,51],{},"I wanted to have this control in my hands. Each request gets into a stack, and if it's an async it's executed in parallel to the other requests; else if it's a sync reuest it get's checked if we should override it or not.",[20,53,54],{},"I also wanted to cache the results, and take the headache of caching results from the hands of the developer, and let the developer focus on the fact that for long do they want to cache the results for, if they want to.",[20,56,57],{},"This will be a lot more technical and lot less theoretical, unlike my last blog.",[20,59,60],{},"Though, again this project has been built with NUXT; but I plan to abstract it out as a normal JS/TS package adn test it out witht other frameworks as well. If you wish to help in this area or to contribute to this project - you're most welcome.",[20,62,63,64,68],{},"useNetFlux also comes with a playground where you can test out the API calls and see how they behave. You can find the playground ",[23,65,67],{"href":25,"rel":66},[27],"here",".",[20,70,71,72,76],{},"Let's understand the ",[73,74,75],"code",{},"override"," logic.",[35,78],{},[20,80,81],{},[82,83,84,85,87,88],"em",{},"Understanding the ",[73,86,75],{}," Flag in ",[73,89,90],{},"useNetflux",[20,92,93,94,96,97,99,100,102,103,107,108,111],{},"The ",[73,95,75],{}," flag in ",[73,98,90],{}," provides control over how API requests; how should they behave when a similar request is already in progress. This flag is especially useful in scenarios where multiple requests might be triggered for the same endpoint, and you need to determine whether to wait for the existing request to complete or start a new one. Here's how the ",[73,101,75],{}," flag can be used to manage both ",[104,105,106],"strong",{},"asynchronous"," and ",[104,109,110],{},"synchronous"," API calls:",[15,113,115],{"id":114},"_1-asynchronous-requests","1. Asynchronous Requests",[20,117,118,119,122,123,125],{},"When you make an asynchronous API request (using the ",[73,120,121],{},"async"," option), the ongoing request doesn't block the subsequent code execution, and the application can continue its operation. If another request to the same endpoint is initiated, the ",[73,124,75],{}," flag determines whether the new request should cancel the ongoing one or let it continue.",[127,128,129,151],"ul",{},[130,131,132,139],"li",{},[104,133,134,135,138],{},"With ",[73,136,137],{},"override: true",":",[127,140,141,148],{},[130,142,143,144,147],{},"If a request is already being made to the same endpoint, it will ",[104,145,146],{},"cancel the existing request"," and make a new one.",[130,149,150],{},"This is useful when you don't want to wait for the existing request to finish and want to get fresh data immediately.",[130,152,153,158],{},[104,154,134,155,138],{},[73,156,157],{},"override: false",[127,159,160,167],{},[130,161,162,163,166],{},"If an existing request is already in progress, the new request will be ",[104,164,165],{},"ignored",", and the original request will continue running.",[130,168,169],{},"This helps prevent redundant requests and waits for the first request's completion before initiating another one.",[171,172,174],"h4",{"id":173},"example-of-asynchronous-behavior","Example of Asynchronous Behavior",[176,177,182],"pre",{"className":178,"code":179,"language":180,"meta":181,"style":181},"language-ts shiki shiki-themes tokyo-night","executeCall({\n  apiRequest: {\n    method: \"GET\",\n    endpoint: \"https://api.example.com/data\",\n  },\n  async: true, // Non-blocking request\n  override: true, // Cancel the ongoing request and make a new one\n});\n","ts","",[73,183,184,197,210,231,248,256,275,290],{"__ignoreMap":181},[185,186,189,193],"span",{"class":187,"line":188},"line",1,[185,190,192],{"class":191},"s3R4Z","executeCall",[185,194,196],{"class":195},"sgJMe","({\n",[185,198,200,204,207],{"class":187,"line":199},2,[185,201,203],{"class":202},"syYvs","  apiRequest",[185,205,138],{"class":206},"sAklC",[185,208,209],{"class":195}," {\n",[185,211,213,216,218,221,225,228],{"class":187,"line":212},3,[185,214,215],{"class":202},"    method",[185,217,138],{"class":206},[185,219,220],{"class":206}," \"",[185,222,224],{"class":223},"sPY7s","GET",[185,226,227],{"class":206},"\"",[185,229,230],{"class":206},",\n",[185,232,234,237,239,241,244,246],{"class":187,"line":233},4,[185,235,236],{"class":202},"    endpoint",[185,238,138],{"class":206},[185,240,220],{"class":206},[185,242,243],{"class":223},"https://api.example.com/data",[185,245,227],{"class":206},[185,247,230],{"class":206},[185,249,251,254],{"class":187,"line":250},5,[185,252,253],{"class":195},"  }",[185,255,230],{"class":206},[185,257,259,262,264,268,271],{"class":187,"line":258},6,[185,260,261],{"class":202},"  async",[185,263,138],{"class":206},[185,265,267],{"class":266},"sOJ5S"," true",[185,269,270],{"class":206},",",[185,272,274],{"class":273},"sbD-w"," // Non-blocking request\n",[185,276,278,281,283,285,287],{"class":187,"line":277},7,[185,279,280],{"class":202},"  override",[185,282,138],{"class":206},[185,284,267],{"class":266},[185,286,270],{"class":206},[185,288,289],{"class":273}," // Cancel the ongoing request and make a new one\n",[185,291,293,296],{"class":187,"line":292},8,[185,294,295],{"class":195},"})",[185,297,298],{"class":206},";\n",[15,300,302],{"id":301},"_2-synchronous-requests","2. Synchronous Requests",[20,304,305,306,308],{},"For synchronous API requests, the application waits for the current request to complete before proceeding with the next steps. The ",[73,307,75],{}," flag ensures proper behavior in this case too:",[127,310,311,322],{},[130,312,313,317],{},[104,314,134,315,138],{},[73,316,137],{},[127,318,319],{},[130,320,321],{},"Any ongoing request will be aborted, and the new one will take precedence. This is useful when you need the latest data immediately and are willing to sacrifice the in-progress request.",[130,323,324,328],{},[104,325,134,326,138],{},[73,327,157],{},[127,329,330,333],{},[130,331,332],{},"The request will not be made if there’s already one in progress, ensuring that the same request is not made multiple times before completion.",[130,334,335],{},"This ensures efficient API usage and avoids sending unnecessary network requests when one is already underway.",[171,337,339],{"id":338},"example-of-synchronous-behavior","Example of Synchronous Behavior",[176,341,343],{"className":178,"code":342,"language":180,"meta":181,"style":181},"executeCall({\n  apiRequest: {\n    method: \"GET\",\n    endpoint: \"https://api.example.com/data\",\n  },\n  async: false, // Block the execution until request completes\n  override: false, // Wait for the ongoing request to finish\n});\n",[73,344,345,351,359,373,387,393,407,420],{"__ignoreMap":181},[185,346,347,349],{"class":187,"line":188},[185,348,192],{"class":191},[185,350,196],{"class":195},[185,352,353,355,357],{"class":187,"line":199},[185,354,203],{"class":202},[185,356,138],{"class":206},[185,358,209],{"class":195},[185,360,361,363,365,367,369,371],{"class":187,"line":212},[185,362,215],{"class":202},[185,364,138],{"class":206},[185,366,220],{"class":206},[185,368,224],{"class":223},[185,370,227],{"class":206},[185,372,230],{"class":206},[185,374,375,377,379,381,383,385],{"class":187,"line":233},[185,376,236],{"class":202},[185,378,138],{"class":206},[185,380,220],{"class":206},[185,382,243],{"class":223},[185,384,227],{"class":206},[185,386,230],{"class":206},[185,388,389,391],{"class":187,"line":250},[185,390,253],{"class":195},[185,392,230],{"class":206},[185,394,395,397,399,402,404],{"class":187,"line":258},[185,396,261],{"class":202},[185,398,138],{"class":206},[185,400,401],{"class":266}," false",[185,403,270],{"class":206},[185,405,406],{"class":273}," // Block the execution until request completes\n",[185,408,409,411,413,415,417],{"class":187,"line":277},[185,410,280],{"class":202},[185,412,138],{"class":206},[185,414,401],{"class":266},[185,416,270],{"class":206},[185,418,419],{"class":273}," // Wait for the ongoing request to finish\n",[185,421,422,424],{"class":187,"line":292},[185,423,295],{"class":195},[185,425,298],{"class":206},[15,427,429],{"id":428},"use-case-scenarios","Use Case Scenarios",[127,431,432,445],{},[130,433,434,437,438,440,441,444],{},[104,435,436],{},"Real-time data fetching",": When building real-time applications or features like search suggestions, you might want to use ",[73,439,137],{}," with ",[73,442,443],{},"async: true"," to ensure that new data replaces outdated or stale requests. For example, in a search bar that triggers API requests as the user types, you might override the previous requests to avoid processing older results.",[130,446,447,450,451,453],{},[104,448,449],{},"Non-urgent data",": For data that doesn't need to be updated frequently, such as fetching a user profile or initial page load, ",[73,452,157],{}," ensures that redundant requests are avoided, saving bandwidth and preventing unnecessary server hits.",[15,455,457],{"id":456},"tldr","TL;DR",[127,459,460,468],{},[130,461,93,462,464,465,467],{},[73,463,75],{}," flag, when paired with ",[73,466,121],{}," requests, gives flexibility to either cancel an ongoing request and fetch new data or reuse the in-progress request.",[130,469,470,471,473],{},"In synchronous mode, ",[73,472,75],{}," controls whether to block subsequent calls or proceed with a new request once the ongoing one is completed.",[20,475,476],{},"This flag is essential for optimizing API behavior in scenarios where multiple requests to the same endpoint could be triggered and helps manage network resources efficiently.",[10,478,480],{"id":479},"key-features","Key Features",[15,482,484,485],{"id":483},"_1-retries","1. ",[104,486,487],{},"Retries",[20,489,490],{},"Automatically retry failed requests based on configurable settings.",[127,492,493,499,505],{},[130,494,495,498],{},[104,496,497],{},"Global Default",": 3 retries",[130,500,501,504],{},[104,502,503],{},"Customizable",": Set retries and retry delay per request",[130,506,507,138],{},[104,508,509],{},"Example",[176,511,513],{"className":178,"code":512,"language":180,"meta":181,"style":181},"executeCall({\n  apiRequest: {\n    method: \"GET\",\n\n    endpoint: \"https://api.example.com/data\",\n  },\n\n  retries: 5, // Retry up to 5 times\n\n  retryDelay: 2000, // 2-second delay between retries\n});\n",[73,514,515,521,529,543,549,563,569,573,588,593,609],{"__ignoreMap":181},[185,516,517,519],{"class":187,"line":188},[185,518,192],{"class":191},[185,520,196],{"class":195},[185,522,523,525,527],{"class":187,"line":199},[185,524,203],{"class":202},[185,526,138],{"class":206},[185,528,209],{"class":195},[185,530,531,533,535,537,539,541],{"class":187,"line":212},[185,532,215],{"class":202},[185,534,138],{"class":206},[185,536,220],{"class":206},[185,538,224],{"class":223},[185,540,227],{"class":206},[185,542,230],{"class":206},[185,544,545],{"class":187,"line":233},[185,546,548],{"emptyLinePlaceholder":547},true,"\n",[185,550,551,553,555,557,559,561],{"class":187,"line":250},[185,552,236],{"class":202},[185,554,138],{"class":206},[185,556,220],{"class":206},[185,558,243],{"class":223},[185,560,227],{"class":206},[185,562,230],{"class":206},[185,564,565,567],{"class":187,"line":258},[185,566,253],{"class":195},[185,568,230],{"class":206},[185,570,571],{"class":187,"line":277},[185,572,548],{"emptyLinePlaceholder":547},[185,574,575,578,580,583,585],{"class":187,"line":292},[185,576,577],{"class":202},"  retries",[185,579,138],{"class":206},[185,581,582],{"class":266}," 5",[185,584,270],{"class":206},[185,586,587],{"class":273}," // Retry up to 5 times\n",[185,589,591],{"class":187,"line":590},9,[185,592,548],{"emptyLinePlaceholder":547},[185,594,596,599,601,604,606],{"class":187,"line":595},10,[185,597,598],{"class":202},"  retryDelay",[185,600,138],{"class":206},[185,602,603],{"class":266}," 2000",[185,605,270],{"class":206},[185,607,608],{"class":273}," // 2-second delay between retries\n",[185,610,612,614],{"class":187,"line":611},11,[185,613,295],{"class":195},[185,615,298],{"class":206},[15,617,619,620],{"id":618},"_2-timeouts","2. ",[104,621,622],{},"Timeouts",[20,624,625],{},"Set time limits on API requests to avoid indefinite waiting.",[127,627,628,633,638],{},[130,629,630,632],{},[104,631,497],{},": 5 seconds",[130,634,635,637],{},[104,636,503],{},": Timeout can be set per request",[130,639,640,138],{},[104,641,509],{},[176,643,645],{"className":178,"code":644,"language":180,"meta":181,"style":181},"executeCall({\n  apiRequest: {\n    method: \"POST\",\n\n    endpoint: \"https://api.example.com/create\",\n\n    timeout: 10000, // 10-second timeout\n  },\n});\n",[73,646,647,653,661,676,680,695,699,714,720],{"__ignoreMap":181},[185,648,649,651],{"class":187,"line":188},[185,650,192],{"class":191},[185,652,196],{"class":195},[185,654,655,657,659],{"class":187,"line":199},[185,656,203],{"class":202},[185,658,138],{"class":206},[185,660,209],{"class":195},[185,662,663,665,667,669,672,674],{"class":187,"line":212},[185,664,215],{"class":202},[185,666,138],{"class":206},[185,668,220],{"class":206},[185,670,671],{"class":223},"POST",[185,673,227],{"class":206},[185,675,230],{"class":206},[185,677,678],{"class":187,"line":233},[185,679,548],{"emptyLinePlaceholder":547},[185,681,682,684,686,688,691,693],{"class":187,"line":250},[185,683,236],{"class":202},[185,685,138],{"class":206},[185,687,220],{"class":206},[185,689,690],{"class":223},"https://api.example.com/create",[185,692,227],{"class":206},[185,694,230],{"class":206},[185,696,697],{"class":187,"line":258},[185,698,548],{"emptyLinePlaceholder":547},[185,700,701,704,706,709,711],{"class":187,"line":277},[185,702,703],{"class":202},"    timeout",[185,705,138],{"class":206},[185,707,708],{"class":266}," 10000",[185,710,270],{"class":206},[185,712,713],{"class":273}," // 10-second timeout\n",[185,715,716,718],{"class":187,"line":292},[185,717,253],{"class":195},[185,719,230],{"class":206},[185,721,722,724],{"class":187,"line":590},[185,723,295],{"class":195},[185,725,298],{"class":206},[15,727,729,730],{"id":728},"_3-caching","3. ",[104,731,732],{},"Caching",[20,734,735],{},"Cache responses for a specified duration to minimize redundant network calls.",[127,737,738,743,752,761],{},[130,739,740,742],{},[104,741,497],{},": Cached for 1 minute",[130,744,745,747,748,751],{},[104,746,503],{},": Set ",[73,749,750],{},"cacheDuration"," per request",[130,753,754,757,758],{},[104,755,756],{},"Skip Cache",": Force bypassing cache by setting ",[73,759,760],{},"skipCache: true",[130,762,763,138],{},[104,764,509],{},[176,766,768],{"className":178,"code":767,"language":180,"meta":181,"style":181},"executeCall({\n  apiRequest: {\n    method: \"GET\",\n\n    endpoint: \"https://api.example.com/data\",\n  },\n\n  cacheDuration: 120000, // Cache for 2 minutes\n\n  skipCache: false, // Enable cache by default\n});\n",[73,769,770,776,784,798,802,816,822,826,841,845,859],{"__ignoreMap":181},[185,771,772,774],{"class":187,"line":188},[185,773,192],{"class":191},[185,775,196],{"class":195},[185,777,778,780,782],{"class":187,"line":199},[185,779,203],{"class":202},[185,781,138],{"class":206},[185,783,209],{"class":195},[185,785,786,788,790,792,794,796],{"class":187,"line":212},[185,787,215],{"class":202},[185,789,138],{"class":206},[185,791,220],{"class":206},[185,793,224],{"class":223},[185,795,227],{"class":206},[185,797,230],{"class":206},[185,799,800],{"class":187,"line":233},[185,801,548],{"emptyLinePlaceholder":547},[185,803,804,806,808,810,812,814],{"class":187,"line":250},[185,805,236],{"class":202},[185,807,138],{"class":206},[185,809,220],{"class":206},[185,811,243],{"class":223},[185,813,227],{"class":206},[185,815,230],{"class":206},[185,817,818,820],{"class":187,"line":258},[185,819,253],{"class":195},[185,821,230],{"class":206},[185,823,824],{"class":187,"line":277},[185,825,548],{"emptyLinePlaceholder":547},[185,827,828,831,833,836,838],{"class":187,"line":292},[185,829,830],{"class":202},"  cacheDuration",[185,832,138],{"class":206},[185,834,835],{"class":266}," 120000",[185,837,270],{"class":206},[185,839,840],{"class":273}," // Cache for 2 minutes\n",[185,842,843],{"class":187,"line":590},[185,844,548],{"emptyLinePlaceholder":547},[185,846,847,850,852,854,856],{"class":187,"line":595},[185,848,849],{"class":202},"  skipCache",[185,851,138],{"class":206},[185,853,401],{"class":266},[185,855,270],{"class":206},[185,857,858],{"class":273}," // Enable cache by default\n",[185,860,861,863],{"class":187,"line":611},[185,862,295],{"class":195},[185,864,298],{"class":206},[15,866,868,869],{"id":867},"_4-request-cancellation","4. ",[104,870,871],{},"Request Cancellation",[20,873,874,875,68],{},"Abort ongoing requests using an ",[73,876,877],{},"AbortController",[127,879,880,886,895],{},[130,881,882,885],{},[104,883,884],{},"Auto-Generated",": Timeout automatically triggers request cancellation",[130,887,888,891,892,894],{},[104,889,890],{},"Custom",": Pass your own ",[73,893,877],{}," to manually cancel requests",[130,896,897,138],{},[104,898,509],{},[176,900,902],{"className":178,"code":901,"language":180,"meta":181,"style":181},"const controller = new AbortController();\n\nexecuteCall({\n  apiRequest: {\n    method: \"GET\",\n\n    endpoint: \"https://api.example.com/data\",\n  },\n\n  cancellationToken: controller,\n});\n\n// Cancel the request after 2 seconds\n\nsetTimeout(() => controller.abort(), 2000);\n",[73,903,904,928,932,938,946,960,964,978,984,988,1000,1006,1011,1017,1022],{"__ignoreMap":181},[185,905,906,910,914,917,920,923,926],{"class":187,"line":188},[185,907,909],{"class":908},"sN7LL","const",[185,911,913],{"class":912},"sd1Qi"," controller",[185,915,916],{"class":206}," =",[185,918,919],{"class":206}," new",[185,921,922],{"class":191}," AbortController",[185,924,925],{"class":195},"()",[185,927,298],{"class":206},[185,929,930],{"class":187,"line":199},[185,931,548],{"emptyLinePlaceholder":547},[185,933,934,936],{"class":187,"line":212},[185,935,192],{"class":191},[185,937,196],{"class":195},[185,939,940,942,944],{"class":187,"line":233},[185,941,203],{"class":202},[185,943,138],{"class":206},[185,945,209],{"class":195},[185,947,948,950,952,954,956,958],{"class":187,"line":250},[185,949,215],{"class":202},[185,951,138],{"class":206},[185,953,220],{"class":206},[185,955,224],{"class":223},[185,957,227],{"class":206},[185,959,230],{"class":206},[185,961,962],{"class":187,"line":258},[185,963,548],{"emptyLinePlaceholder":547},[185,965,966,968,970,972,974,976],{"class":187,"line":277},[185,967,236],{"class":202},[185,969,138],{"class":206},[185,971,220],{"class":206},[185,973,243],{"class":223},[185,975,227],{"class":206},[185,977,230],{"class":206},[185,979,980,982],{"class":187,"line":292},[185,981,253],{"class":195},[185,983,230],{"class":206},[185,985,986],{"class":187,"line":590},[185,987,548],{"emptyLinePlaceholder":547},[185,989,990,993,995,998],{"class":187,"line":595},[185,991,992],{"class":202},"  cancellationToken",[185,994,138],{"class":206},[185,996,913],{"class":997},"sE3pS",[185,999,230],{"class":206},[185,1001,1002,1004],{"class":187,"line":611},[185,1003,295],{"class":195},[185,1005,298],{"class":206},[185,1007,1009],{"class":187,"line":1008},12,[185,1010,548],{"emptyLinePlaceholder":547},[185,1012,1014],{"class":187,"line":1013},13,[185,1015,1016],{"class":273},"// Cancel the request after 2 seconds\n",[185,1018,1020],{"class":187,"line":1019},14,[185,1021,548],{"emptyLinePlaceholder":547},[185,1023,1025,1028,1031,1034,1036,1038,1041,1043,1045,1047,1050],{"class":187,"line":1024},15,[185,1026,1027],{"class":191},"setTimeout",[185,1029,1030],{"class":195},"(()",[185,1032,1033],{"class":912}," =>",[185,1035,913],{"class":997},[185,1037,68],{"class":206},[185,1039,1040],{"class":191},"abort",[185,1042,925],{"class":195},[185,1044,270],{"class":206},[185,1046,603],{"class":266},[185,1048,1049],{"class":195},")",[185,1051,298],{"class":206},[15,1053,1055,1056],{"id":1054},"_5-global-configuration","5. ",[104,1057,1058],{},"Global Configuration",[20,1060,1061],{},"Define global defaults for retries, timeouts, caching, and more.",[127,1063,1064,1070],{},[130,1065,1066,1069],{},[104,1067,1068],{},"Flexible",": Update default settings for all requests",[130,1071,1072,138],{},[104,1073,509],{},[176,1075,1077],{"className":178,"code":1076,"language":180,"meta":181,"style":181},"updateGlobalConfig({\n  retries: 5, // Set global retries to 5\n\n  timeout: 15000, // Set global timeout to 15 seconds\n\n  logging: true, // Enable logging globally\n});\n",[73,1078,1079,1086,1099,1103,1118,1122,1136],{"__ignoreMap":181},[185,1080,1081,1084],{"class":187,"line":188},[185,1082,1083],{"class":191},"updateGlobalConfig",[185,1085,196],{"class":195},[185,1087,1088,1090,1092,1094,1096],{"class":187,"line":199},[185,1089,577],{"class":202},[185,1091,138],{"class":206},[185,1093,582],{"class":266},[185,1095,270],{"class":206},[185,1097,1098],{"class":273}," // Set global retries to 5\n",[185,1100,1101],{"class":187,"line":212},[185,1102,548],{"emptyLinePlaceholder":547},[185,1104,1105,1108,1110,1113,1115],{"class":187,"line":233},[185,1106,1107],{"class":202},"  timeout",[185,1109,138],{"class":206},[185,1111,1112],{"class":266}," 15000",[185,1114,270],{"class":206},[185,1116,1117],{"class":273}," // Set global timeout to 15 seconds\n",[185,1119,1120],{"class":187,"line":250},[185,1121,548],{"emptyLinePlaceholder":547},[185,1123,1124,1127,1129,1131,1133],{"class":187,"line":258},[185,1125,1126],{"class":202},"  logging",[185,1128,138],{"class":206},[185,1130,267],{"class":266},[185,1132,270],{"class":206},[185,1134,1135],{"class":273}," // Enable logging globally\n",[185,1137,1138,1140],{"class":187,"line":277},[185,1139,295],{"class":195},[185,1141,298],{"class":206},[15,1143,1145,1146],{"id":1144},"_6-logging","6. ",[104,1147,1148],{},"Logging",[20,1150,1151],{},"Get real-time logging information about request behavior.",[127,1153,1154,1160,1176],{},[130,1155,1156,1159],{},[104,1157,1158],{},"Global Setting",": Enable or disable logging in the global configuration",[130,1161,1162,1165,1166,1169,1170,1169,1173],{},[104,1163,1164],{},"Log Levels",": ",[73,1167,1168],{},"info",", ",[73,1171,1172],{},"warn",[73,1174,1175],{},"error",[130,1177,1178,1180],{},[104,1179,509],{}," log output:",[176,1182,1186],{"className":1183,"code":1184,"language":1185,"meta":181,"style":181},"language-log shiki shiki-themes tokyo-night","\n[INFO]: Starting API call { url: 'https://api.example.com/data', method: 'GET' }\n\n[WARN]: Retrying... Attempt 2 { endpoint: 'https://api.example.com/data' }\n\n[ERROR]: API call failed { endpoint: 'https://api.example.com/data', error: 'Timeout' }\n\n","log",[73,1187,1188,1192,1197,1201,1206,1210],{"__ignoreMap":181},[185,1189,1190],{"class":187,"line":188},[185,1191,548],{"emptyLinePlaceholder":547},[185,1193,1194],{"class":187,"line":199},[185,1195,1196],{},"[INFO]: Starting API call { url: 'https://api.example.com/data', method: 'GET' }\n",[185,1198,1199],{"class":187,"line":212},[185,1200,548],{"emptyLinePlaceholder":547},[185,1202,1203],{"class":187,"line":233},[185,1204,1205],{},"[WARN]: Retrying... Attempt 2 { endpoint: 'https://api.example.com/data' }\n",[185,1207,1208],{"class":187,"line":250},[185,1209,548],{"emptyLinePlaceholder":547},[185,1211,1212],{"class":187,"line":258},[185,1213,1214],{},"[ERROR]: API call failed { endpoint: 'https://api.example.com/data', error: 'Timeout' }\n",[10,1216,1218],{"id":1217},"methods","Methods",[15,1220,1222],{"id":1221},"executecall",[73,1223,192],{},[20,1225,1226],{},"The core method to make API requests with enhanced features like retries, caching, timeouts, and logging.",[176,1228,1230],{"className":178,"code":1229,"language":180,"meta":181,"style":181},"async function executeCall({\n  apiRequest,\n\n  retries = 3,\n\n  retryDelay = 1000,\n\n  timeout = 5000,\n\n  cacheDuration = 60000,\n\n  skipCache = false,\n\n  cancellationToken,\n\n  async = false,\n\n  override = false,\n}: ExecuteCallParams): Promise\u003Cany>;\n",[73,1231,1232,1248,1255,1259,1270,1274,1285,1289,1300,1304,1315,1319,1329,1333,1339,1343,1354,1359,1370],{"__ignoreMap":181},[185,1233,1234,1236,1239,1242,1245],{"class":187,"line":188},[185,1235,121],{"class":908},[185,1237,1238],{"class":912}," function",[185,1240,1241],{"class":191}," executeCall",[185,1243,1244],{"class":195},"(",[185,1246,1247],{"class":206},"{\n",[185,1249,1250,1253],{"class":187,"line":199},[185,1251,203],{"class":1252},"sT800",[185,1254,230],{"class":206},[185,1256,1257],{"class":187,"line":212},[185,1258,548],{"emptyLinePlaceholder":547},[185,1260,1261,1263,1265,1268],{"class":187,"line":233},[185,1262,577],{"class":1252},[185,1264,916],{"class":206},[185,1266,1267],{"class":266}," 3",[185,1269,230],{"class":206},[185,1271,1272],{"class":187,"line":250},[185,1273,548],{"emptyLinePlaceholder":547},[185,1275,1276,1278,1280,1283],{"class":187,"line":258},[185,1277,598],{"class":1252},[185,1279,916],{"class":206},[185,1281,1282],{"class":266}," 1000",[185,1284,230],{"class":206},[185,1286,1287],{"class":187,"line":277},[185,1288,548],{"emptyLinePlaceholder":547},[185,1290,1291,1293,1295,1298],{"class":187,"line":292},[185,1292,1107],{"class":1252},[185,1294,916],{"class":206},[185,1296,1297],{"class":266}," 5000",[185,1299,230],{"class":206},[185,1301,1302],{"class":187,"line":590},[185,1303,548],{"emptyLinePlaceholder":547},[185,1305,1306,1308,1310,1313],{"class":187,"line":595},[185,1307,830],{"class":1252},[185,1309,916],{"class":206},[185,1311,1312],{"class":266}," 60000",[185,1314,230],{"class":206},[185,1316,1317],{"class":187,"line":611},[185,1318,548],{"emptyLinePlaceholder":547},[185,1320,1321,1323,1325,1327],{"class":187,"line":1008},[185,1322,849],{"class":1252},[185,1324,916],{"class":206},[185,1326,401],{"class":266},[185,1328,230],{"class":206},[185,1330,1331],{"class":187,"line":1013},[185,1332,548],{"emptyLinePlaceholder":547},[185,1334,1335,1337],{"class":187,"line":1019},[185,1336,992],{"class":1252},[185,1338,230],{"class":206},[185,1340,1341],{"class":187,"line":1024},[185,1342,548],{"emptyLinePlaceholder":547},[185,1344,1346,1348,1350,1352],{"class":187,"line":1345},16,[185,1347,261],{"class":1252},[185,1349,916],{"class":206},[185,1351,401],{"class":266},[185,1353,230],{"class":206},[185,1355,1357],{"class":187,"line":1356},17,[185,1358,548],{"emptyLinePlaceholder":547},[185,1360,1362,1364,1366,1368],{"class":187,"line":1361},18,[185,1363,280],{"class":1252},[185,1365,916],{"class":206},[185,1367,401],{"class":266},[185,1369,230],{"class":206},[185,1371,1373,1376,1379,1381,1383,1386,1389,1393],{"class":187,"line":1372},19,[185,1374,1375],{"class":206},"}:",[185,1377,1378],{"class":997}," ExecuteCallParams",[185,1380,1049],{"class":195},[185,1382,138],{"class":206},[185,1384,1385],{"class":997}," Promise",[185,1387,1388],{"class":206},"\u003C",[185,1390,1392],{"class":1391},"sySf4","any",[185,1394,1395],{"class":206},">;\n",[15,1397,1399],{"id":1398},"updateglobalconfig",[73,1400,1083],{},[20,1402,1403],{},"Modify global configurations for all requests.",[176,1405,1407],{"className":178,"code":1406,"language":180,"meta":181,"style":181},"function updateGlobalConfig(\n  newConfig: Partial\u003Ctypeof defaultConfig.value>\n): void;\n",[73,1408,1409,1420,1445],{"__ignoreMap":181},[185,1410,1411,1414,1417],{"class":187,"line":188},[185,1412,1413],{"class":912},"function",[185,1415,1416],{"class":191}," updateGlobalConfig",[185,1418,1419],{"class":195},"(\n",[185,1421,1422,1425,1427,1430,1433,1436,1438,1442],{"class":187,"line":199},[185,1423,1424],{"class":1252},"  newConfig",[185,1426,138],{"class":206},[185,1428,1429],{"class":997}," Partial",[185,1431,1432],{"class":206},"\u003Ctypeof",[185,1434,1435],{"class":997}," defaultConfig",[185,1437,68],{"class":206},[185,1439,1441],{"class":1440},"su0L4","value",[185,1443,1444],{"class":206},">\n",[185,1446,1447,1449,1451,1454],{"class":187,"line":212},[185,1448,1049],{"class":195},[185,1450,138],{"class":206},[185,1452,1453],{"class":1391}," void",[185,1455,298],{"class":206},[15,1457,1459],{"id":1458},"example-updating-global-config","Example: Updating Global Config",[176,1461,1463],{"className":178,"code":1462,"language":180,"meta":181,"style":181},"updateGlobalConfig({\n  retries: 4, // Update retries globally to 4\n\n  cacheDuration: 300000, // Cache for 5 minutes\n});\n",[73,1464,1465,1471,1485,1489,1503],{"__ignoreMap":181},[185,1466,1467,1469],{"class":187,"line":188},[185,1468,1083],{"class":191},[185,1470,196],{"class":195},[185,1472,1473,1475,1477,1480,1482],{"class":187,"line":199},[185,1474,577],{"class":202},[185,1476,138],{"class":206},[185,1478,1479],{"class":266}," 4",[185,1481,270],{"class":206},[185,1483,1484],{"class":273}," // Update retries globally to 4\n",[185,1486,1487],{"class":187,"line":212},[185,1488,548],{"emptyLinePlaceholder":547},[185,1490,1491,1493,1495,1498,1500],{"class":187,"line":233},[185,1492,830],{"class":202},[185,1494,138],{"class":206},[185,1496,1497],{"class":266}," 300000",[185,1499,270],{"class":206},[185,1501,1502],{"class":273}," // Cache for 5 minutes\n",[185,1504,1505,1507],{"class":187,"line":250},[185,1506,295],{"class":195},[185,1508,298],{"class":206},[10,1510,1512],{"id":1511},"api-request-structure","API Request Structure",[20,1514,1515,1518],{},[73,1516,1517],{},"apiRequest"," object defines the structure of the API call, which includes the HTTP method, endpoint, headers, and body.",[15,1520,1522],{"id":1521},"structure","Structure:",[176,1524,1526],{"className":178,"code":1525,"language":180,"meta":181,"style":181},"interface ApiRequest {\n  method: \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\"; // HTTP method\n\n  endpoint: string; // API endpoint\n\n  headers?: Record\u003Cstring, string>; // Optional headers\n\n  queryParams?: Record\u003Cstring, string | number>; // Optional query parameters\n\n  body?: any; // Optional body for POST, PUT, etc.\n}\n",[73,1527,1528,1538,1593,1597,1612,1616,1642,1646,1673,1677,1692],{"__ignoreMap":181},[185,1529,1530,1533,1536],{"class":187,"line":188},[185,1531,1532],{"class":912},"interface",[185,1534,1535],{"class":997}," ApiRequest",[185,1537,209],{"class":195},[185,1539,1540,1543,1545,1547,1549,1551,1554,1556,1558,1560,1562,1564,1567,1569,1571,1573,1576,1578,1580,1582,1585,1587,1590],{"class":187,"line":199},[185,1541,1542],{"class":202},"  method",[185,1544,138],{"class":206},[185,1546,220],{"class":206},[185,1548,224],{"class":223},[185,1550,227],{"class":206},[185,1552,1553],{"class":206}," |",[185,1555,220],{"class":206},[185,1557,671],{"class":223},[185,1559,227],{"class":206},[185,1561,1553],{"class":206},[185,1563,220],{"class":206},[185,1565,1566],{"class":223},"PUT",[185,1568,227],{"class":206},[185,1570,1553],{"class":206},[185,1572,220],{"class":206},[185,1574,1575],{"class":223},"DELETE",[185,1577,227],{"class":206},[185,1579,1553],{"class":206},[185,1581,220],{"class":206},[185,1583,1584],{"class":223},"PATCH",[185,1586,227],{"class":206},[185,1588,1589],{"class":206},";",[185,1591,1592],{"class":273}," // HTTP method\n",[185,1594,1595],{"class":187,"line":212},[185,1596,548],{"emptyLinePlaceholder":547},[185,1598,1599,1602,1604,1607,1609],{"class":187,"line":233},[185,1600,1601],{"class":202},"  endpoint",[185,1603,138],{"class":206},[185,1605,1606],{"class":1391}," string",[185,1608,1589],{"class":206},[185,1610,1611],{"class":273}," // API endpoint\n",[185,1613,1614],{"class":187,"line":250},[185,1615,548],{"emptyLinePlaceholder":547},[185,1617,1618,1621,1624,1627,1629,1632,1634,1636,1639],{"class":187,"line":258},[185,1619,1620],{"class":202},"  headers",[185,1622,1623],{"class":206},"?:",[185,1625,1626],{"class":997}," Record",[185,1628,1388],{"class":206},[185,1630,1631],{"class":1391},"string",[185,1633,270],{"class":206},[185,1635,1606],{"class":1391},[185,1637,1638],{"class":206},">;",[185,1640,1641],{"class":273}," // Optional headers\n",[185,1643,1644],{"class":187,"line":277},[185,1645,548],{"emptyLinePlaceholder":547},[185,1647,1648,1651,1653,1655,1657,1659,1661,1663,1665,1668,1670],{"class":187,"line":292},[185,1649,1650],{"class":202},"  queryParams",[185,1652,1623],{"class":206},[185,1654,1626],{"class":997},[185,1656,1388],{"class":206},[185,1658,1631],{"class":1391},[185,1660,270],{"class":206},[185,1662,1606],{"class":1391},[185,1664,1553],{"class":206},[185,1666,1667],{"class":1391}," number",[185,1669,1638],{"class":206},[185,1671,1672],{"class":273}," // Optional query parameters\n",[185,1674,1675],{"class":187,"line":590},[185,1676,548],{"emptyLinePlaceholder":547},[185,1678,1679,1682,1684,1687,1689],{"class":187,"line":595},[185,1680,1681],{"class":202},"  body",[185,1683,1623],{"class":206},[185,1685,1686],{"class":1391}," any",[185,1688,1589],{"class":206},[185,1690,1691],{"class":273}," // Optional body for POST, PUT, etc.\n",[185,1693,1694],{"class":187,"line":611},[185,1695,1696],{"class":195},"}\n",[15,1698,1700],{"id":1699},"example","Example:",[176,1702,1704],{"className":178,"code":1703,"language":180,"meta":181,"style":181},"const apiRequest = {\n  method: \"POST\",\n\n  endpoint: \"https://api.example.com/create\",\n\n  headers: {\n    Authorization: \"Bearer token\",\n  },\n\n  body: {\n    name: \"New Item\",\n\n    description: \"This is a new item\",\n  },\n};\n",[73,1705,1706,1717,1731,1735,1749,1753,1761,1777,1783,1787,1795,1811,1815,1831,1837],{"__ignoreMap":181},[185,1707,1708,1710,1713,1715],{"class":187,"line":188},[185,1709,909],{"class":908},[185,1711,1712],{"class":912}," apiRequest",[185,1714,916],{"class":206},[185,1716,209],{"class":195},[185,1718,1719,1721,1723,1725,1727,1729],{"class":187,"line":199},[185,1720,1542],{"class":202},[185,1722,138],{"class":206},[185,1724,220],{"class":206},[185,1726,671],{"class":223},[185,1728,227],{"class":206},[185,1730,230],{"class":206},[185,1732,1733],{"class":187,"line":212},[185,1734,548],{"emptyLinePlaceholder":547},[185,1736,1737,1739,1741,1743,1745,1747],{"class":187,"line":233},[185,1738,1601],{"class":202},[185,1740,138],{"class":206},[185,1742,220],{"class":206},[185,1744,690],{"class":223},[185,1746,227],{"class":206},[185,1748,230],{"class":206},[185,1750,1751],{"class":187,"line":250},[185,1752,548],{"emptyLinePlaceholder":547},[185,1754,1755,1757,1759],{"class":187,"line":258},[185,1756,1620],{"class":202},[185,1758,138],{"class":206},[185,1760,209],{"class":195},[185,1762,1763,1766,1768,1770,1773,1775],{"class":187,"line":277},[185,1764,1765],{"class":202},"    Authorization",[185,1767,138],{"class":206},[185,1769,220],{"class":206},[185,1771,1772],{"class":223},"Bearer token",[185,1774,227],{"class":206},[185,1776,230],{"class":206},[185,1778,1779,1781],{"class":187,"line":292},[185,1780,253],{"class":195},[185,1782,230],{"class":206},[185,1784,1785],{"class":187,"line":590},[185,1786,548],{"emptyLinePlaceholder":547},[185,1788,1789,1791,1793],{"class":187,"line":595},[185,1790,1681],{"class":202},[185,1792,138],{"class":206},[185,1794,209],{"class":195},[185,1796,1797,1800,1802,1804,1807,1809],{"class":187,"line":611},[185,1798,1799],{"class":202},"    name",[185,1801,138],{"class":206},[185,1803,220],{"class":206},[185,1805,1806],{"class":223},"New Item",[185,1808,227],{"class":206},[185,1810,230],{"class":206},[185,1812,1813],{"class":187,"line":1008},[185,1814,548],{"emptyLinePlaceholder":547},[185,1816,1817,1820,1822,1824,1827,1829],{"class":187,"line":1013},[185,1818,1819],{"class":202},"    description",[185,1821,138],{"class":206},[185,1823,220],{"class":206},[185,1825,1826],{"class":223},"This is a new item",[185,1828,227],{"class":206},[185,1830,230],{"class":206},[185,1832,1833,1835],{"class":187,"line":1019},[185,1834,253],{"class":195},[185,1836,230],{"class":206},[185,1838,1839,1842],{"class":187,"line":1024},[185,1840,1841],{"class":195},"}",[185,1843,298],{"class":206},[10,1845,1847],{"id":1846},"example-usage","Example Usage",[15,1849,1851],{"id":1850},"simple-get-request","Simple GET Request",[176,1853,1855],{"className":178,"code":1854,"language":180,"meta":181,"style":181},"executeCall({\n  apiRequest: {\n    method: \"GET\",\n\n    endpoint: \"https://api.example.com/data\",\n  },\n});\n",[73,1856,1857,1863,1871,1885,1889,1903,1909],{"__ignoreMap":181},[185,1858,1859,1861],{"class":187,"line":188},[185,1860,192],{"class":191},[185,1862,196],{"class":195},[185,1864,1865,1867,1869],{"class":187,"line":199},[185,1866,203],{"class":202},[185,1868,138],{"class":206},[185,1870,209],{"class":195},[185,1872,1873,1875,1877,1879,1881,1883],{"class":187,"line":212},[185,1874,215],{"class":202},[185,1876,138],{"class":206},[185,1878,220],{"class":206},[185,1880,224],{"class":223},[185,1882,227],{"class":206},[185,1884,230],{"class":206},[185,1886,1887],{"class":187,"line":233},[185,1888,548],{"emptyLinePlaceholder":547},[185,1890,1891,1893,1895,1897,1899,1901],{"class":187,"line":250},[185,1892,236],{"class":202},[185,1894,138],{"class":206},[185,1896,220],{"class":206},[185,1898,243],{"class":223},[185,1900,227],{"class":206},[185,1902,230],{"class":206},[185,1904,1905,1907],{"class":187,"line":258},[185,1906,253],{"class":195},[185,1908,230],{"class":206},[185,1910,1911,1913],{"class":187,"line":277},[185,1912,295],{"class":195},[185,1914,298],{"class":206},[15,1916,1918],{"id":1917},"post-request-with-retries-and-timeout","POST Request with Retries and Timeout",[176,1920,1922],{"className":178,"code":1921,"language":180,"meta":181,"style":181},"executeCall({\n  apiRequest: {\n    method: \"POST\",\n\n    endpoint: \"https://api.example.com/create\",\n\n    body: { name: \"New Item\" },\n  },\n\n  retries: 5, // Retry up to 5 times\n\n  retryDelay: 2000, // 2-second delay between retries\n\n  timeout: 10000, // 10-second timeout\n});\n",[73,1923,1924,1930,1938,1952,1956,1970,1974,2001,2007,2011,2023,2027,2039,2043,2055],{"__ignoreMap":181},[185,1925,1926,1928],{"class":187,"line":188},[185,1927,192],{"class":191},[185,1929,196],{"class":195},[185,1931,1932,1934,1936],{"class":187,"line":199},[185,1933,203],{"class":202},[185,1935,138],{"class":206},[185,1937,209],{"class":195},[185,1939,1940,1942,1944,1946,1948,1950],{"class":187,"line":212},[185,1941,215],{"class":202},[185,1943,138],{"class":206},[185,1945,220],{"class":206},[185,1947,671],{"class":223},[185,1949,227],{"class":206},[185,1951,230],{"class":206},[185,1953,1954],{"class":187,"line":233},[185,1955,548],{"emptyLinePlaceholder":547},[185,1957,1958,1960,1962,1964,1966,1968],{"class":187,"line":250},[185,1959,236],{"class":202},[185,1961,138],{"class":206},[185,1963,220],{"class":206},[185,1965,690],{"class":223},[185,1967,227],{"class":206},[185,1969,230],{"class":206},[185,1971,1972],{"class":187,"line":258},[185,1973,548],{"emptyLinePlaceholder":547},[185,1975,1976,1979,1981,1984,1988,1990,1992,1994,1996,1999],{"class":187,"line":277},[185,1977,1978],{"class":202},"    body",[185,1980,138],{"class":206},[185,1982,1983],{"class":195}," {",[185,1985,1987],{"class":1986},"sJ0GE"," name",[185,1989,138],{"class":206},[185,1991,220],{"class":206},[185,1993,1806],{"class":223},[185,1995,227],{"class":206},[185,1997,1998],{"class":195}," }",[185,2000,230],{"class":206},[185,2002,2003,2005],{"class":187,"line":292},[185,2004,253],{"class":195},[185,2006,230],{"class":206},[185,2008,2009],{"class":187,"line":590},[185,2010,548],{"emptyLinePlaceholder":547},[185,2012,2013,2015,2017,2019,2021],{"class":187,"line":595},[185,2014,577],{"class":202},[185,2016,138],{"class":206},[185,2018,582],{"class":266},[185,2020,270],{"class":206},[185,2022,587],{"class":273},[185,2024,2025],{"class":187,"line":611},[185,2026,548],{"emptyLinePlaceholder":547},[185,2028,2029,2031,2033,2035,2037],{"class":187,"line":1008},[185,2030,598],{"class":202},[185,2032,138],{"class":206},[185,2034,603],{"class":266},[185,2036,270],{"class":206},[185,2038,608],{"class":273},[185,2040,2041],{"class":187,"line":1013},[185,2042,548],{"emptyLinePlaceholder":547},[185,2044,2045,2047,2049,2051,2053],{"class":187,"line":1019},[185,2046,1107],{"class":202},[185,2048,138],{"class":206},[185,2050,708],{"class":266},[185,2052,270],{"class":206},[185,2054,713],{"class":273},[185,2056,2057,2059],{"class":187,"line":1024},[185,2058,295],{"class":195},[185,2060,298],{"class":206},[15,2062,2064],{"id":2063},"request-with-custom-cancellation-token","Request with Custom Cancellation Token",[176,2066,2068],{"className":178,"code":2067,"language":180,"meta":181,"style":181},"const controller = new AbortController();\n\nexecuteCall({\n  apiRequest: {\n    method: \"GET\",\n\n    endpoint: \"https://api.example.com/data\",\n  },\n\n  cancellationToken: controller, // Use a custom token to cancel the request\n});\n\n// Cancel the request after 2 seconds\n\nsetTimeout(() => controller.abort(), 2000);\n",[73,2069,2070,2086,2090,2096,2104,2118,2122,2136,2142,2146,2159,2165,2169,2173,2177],{"__ignoreMap":181},[185,2071,2072,2074,2076,2078,2080,2082,2084],{"class":187,"line":188},[185,2073,909],{"class":908},[185,2075,913],{"class":912},[185,2077,916],{"class":206},[185,2079,919],{"class":206},[185,2081,922],{"class":191},[185,2083,925],{"class":195},[185,2085,298],{"class":206},[185,2087,2088],{"class":187,"line":199},[185,2089,548],{"emptyLinePlaceholder":547},[185,2091,2092,2094],{"class":187,"line":212},[185,2093,192],{"class":191},[185,2095,196],{"class":195},[185,2097,2098,2100,2102],{"class":187,"line":233},[185,2099,203],{"class":202},[185,2101,138],{"class":206},[185,2103,209],{"class":195},[185,2105,2106,2108,2110,2112,2114,2116],{"class":187,"line":250},[185,2107,215],{"class":202},[185,2109,138],{"class":206},[185,2111,220],{"class":206},[185,2113,224],{"class":223},[185,2115,227],{"class":206},[185,2117,230],{"class":206},[185,2119,2120],{"class":187,"line":258},[185,2121,548],{"emptyLinePlaceholder":547},[185,2123,2124,2126,2128,2130,2132,2134],{"class":187,"line":277},[185,2125,236],{"class":202},[185,2127,138],{"class":206},[185,2129,220],{"class":206},[185,2131,243],{"class":223},[185,2133,227],{"class":206},[185,2135,230],{"class":206},[185,2137,2138,2140],{"class":187,"line":292},[185,2139,253],{"class":195},[185,2141,230],{"class":206},[185,2143,2144],{"class":187,"line":590},[185,2145,548],{"emptyLinePlaceholder":547},[185,2147,2148,2150,2152,2154,2156],{"class":187,"line":595},[185,2149,992],{"class":202},[185,2151,138],{"class":206},[185,2153,913],{"class":997},[185,2155,270],{"class":206},[185,2157,2158],{"class":273}," // Use a custom token to cancel the request\n",[185,2160,2161,2163],{"class":187,"line":611},[185,2162,295],{"class":195},[185,2164,298],{"class":206},[185,2166,2167],{"class":187,"line":1008},[185,2168,548],{"emptyLinePlaceholder":547},[185,2170,2171],{"class":187,"line":1013},[185,2172,1016],{"class":273},[185,2174,2175],{"class":187,"line":1019},[185,2176,548],{"emptyLinePlaceholder":547},[185,2178,2179,2181,2183,2185,2187,2189,2191,2193,2195,2197,2199],{"class":187,"line":1024},[185,2180,1027],{"class":191},[185,2182,1030],{"class":195},[185,2184,1033],{"class":912},[185,2186,913],{"class":997},[185,2188,68],{"class":206},[185,2190,1040],{"class":191},[185,2192,925],{"class":195},[185,2194,270],{"class":206},[185,2196,603],{"class":266},[185,2198,1049],{"class":195},[185,2200,298],{"class":206},[15,2202,2204],{"id":2203},"updating-global-configuration","Updating Global Configuration",[176,2206,2208],{"className":178,"code":2207,"language":180,"meta":181,"style":181},"updateGlobalConfig({\n  retries: 2, // Update global retries to 2\n\n  logging: true, // Enable logging globally\n});\n",[73,2209,2210,2216,2230,2234,2246],{"__ignoreMap":181},[185,2211,2212,2214],{"class":187,"line":188},[185,2213,1083],{"class":191},[185,2215,196],{"class":195},[185,2217,2218,2220,2222,2225,2227],{"class":187,"line":199},[185,2219,577],{"class":202},[185,2221,138],{"class":206},[185,2223,2224],{"class":266}," 2",[185,2226,270],{"class":206},[185,2228,2229],{"class":273}," // Update global retries to 2\n",[185,2231,2232],{"class":187,"line":212},[185,2233,548],{"emptyLinePlaceholder":547},[185,2235,2236,2238,2240,2242,2244],{"class":187,"line":233},[185,2237,1126],{"class":202},[185,2239,138],{"class":206},[185,2241,267],{"class":266},[185,2243,270],{"class":206},[185,2245,1135],{"class":273},[185,2247,2248,2250],{"class":187,"line":250},[185,2249,295],{"class":195},[185,2251,298],{"class":206},[10,2253,33],{"id":2254},"github",[20,2256,2257,2258],{},"You can find the project ",[23,2259,67],{"href":31,"rel":2260},[27],[2262,2263,2264],"style",{},"html pre.shiki code .s3R4Z, html code.shiki .s3R4Z{--shiki-default:#7AA2F7}html pre.shiki code .sgJMe, html code.shiki .sgJMe{--shiki-default:#9ABDF5}html pre.shiki code .syYvs, html code.shiki .syYvs{--shiki-default:#73DACA}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .sPY7s, html code.shiki .sPY7s{--shiki-default:#9ECE6A}html pre.shiki code .sOJ5S, html code.shiki .sOJ5S{--shiki-default:#FF9E64}html pre.shiki code .sbD-w, html code.shiki .sbD-w{--shiki-default:#51597D;--shiki-default-font-style:italic}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sN7LL, html code.shiki .sN7LL{--shiki-default:#9D7CD8;--shiki-default-font-style:italic}html pre.shiki code .sd1Qi, html code.shiki .sd1Qi{--shiki-default:#BB9AF7}html pre.shiki code .sE3pS, html code.shiki .sE3pS{--shiki-default:#C0CAF5}html pre.shiki code .sT800, html code.shiki .sT800{--shiki-default:#E0AF68}html pre.shiki code .sySf4, html code.shiki .sySf4{--shiki-default:#0DB9D7}html pre.shiki code .su0L4, html code.shiki .su0L4{--shiki-default:#7DCFFF}html pre.shiki code .sJ0GE, html code.shiki .sJ0GE{--shiki-default:#41A6B5}","2024-06-30T18:53:06+05:30","md",{"draft":2268,"toc":2268,"images":2269},false,null,"/blog/the-usenetflux",{"title":5,"description":181},"blog/the-usenetflux",[2274,2275,2276,2277,2278,2279,2280],"TypeScript","State Mangement","Redux","NUXT","Pinia","API","Components","62wHa2luwIpbMBs4EBYGtPfcSn4d9nE02t3mJ8FLC7w",1774791157418]