yani teknik olarak tailwind'i compile ettiginde elinde zaten css dosyan oluyor, tam olarak html/css'e cevirmekten kastin ne oluyor?
tam olarak neyi anlamadin? lazy ile import ettigini /another
adresine girince yukluyor, build alip denediginde network'den bakabilirsin ayri ayri cagirdigina zaten, soru ne ya da neyi merak ettin anlamadim ben hicbir sey.
legacy-peer-deps
ile yuklemeyi denedin mi? bazi projelerde oldugu surumleriyle yukleme yapmak gerekebiliyor, bu flag hata vermeden yuklemeni sagliyor, legacy projelerde genelde kullaniyorum bende.
npm install --legacy-peer-deps
eline saglik dostum, yasina gore yaptiklarin cok basarili, 4 ay gibi kisa bir sureyi dusunursek ozellikle harika :)
mutlaka bunun uzerine dus, devam et, gelecek sende.
bir cok mail servisinin artik paketi var, ancak mail'i SMTP ile gonderecegini varsayarak en kullanisli paketi onerebilirim:
https://github.com/PHPMailer/PHPMailer
Şimdi istediğin 2 şey var:
- 1.si eğer x saniye içinde istek attığın yer cevap dönmezse isteği iptal etmek istiyorsun.
Bunun için fetch'de AbortController
sınıfını kullanabilirsin.
- 2.si ise eğer timeout olursa bunu yakalamak ve buna göre bir işlem yapmak istiyorsun.
Bunun içinde Promise.race
metodunu kullanabilirsin. Bunun içine verdiğin promise'lerden hangisi önce sözünü tutarsa onu döndürüyor. Bu mantıkta fetch zaten promise, senin 2. bir promise yazman lazım bu arkadaşta 5 saniye sonra reject olacak bir promise olacak. Böylece eğer 5 sn uzun süren bir isteğin varsa yazdığın 2. promise sözünü tutacağı için timeout olduğunu anlayacaksın.
Gelelim kodlara:
function fetchWithTimeoutAndAbort(url, timeout = 5000) {
const controller = new AbortController();
const signal = controller.signal;
// Zaman aşımı için bir promise oluştur
const timeoutPromise = new Promise((_, reject) => {
const timeoutId = setTimeout(() => {
controller.abort(); // Zaman aşımında isteği iptal et
reject(new Error('Request timed out and was aborted'));
}, timeout);
});
// Fetch isteği ve zaman aşımı promise'ını yarıştır
return Promise.race([
fetch(url, { signal }).then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.status; // her sey okey ise status'u dondur
}),
timeoutPromise
]);
}
kullanırken ise:
fetchWithTimeoutAndAbort('https://hedefsite.com', 5000)
.then(data => console.log(data)) // Başarılı yanıtı işle
.catch(error => {
if (error.name === 'AbortError') {
console.error('Fetch request was aborted due to timeout');
} else {
console.error('Fetch error:', error);
}
});
Güncelleme
Son çıkanlara baktığımda AbortSignal: timeout()
diye bir şey varmış, yani teknik olarak şöyle de kısaltılabilir:
fetch('https://hedefsite.com', { AbortSignal.timeout(5000) })
.then(res => console.log(res))
.catch(err => console.log(err))
@ebykdrms'de dedigi gibi, artik str_replace'de 2. parametrede null
kullanimi kaldirildi, onun yerine bos string olarak degistirirsen problemin cozulecektir.
kisaca projendeki butun su sekilde olan kodlarini:
str_replace($needle, null, $haystack)
soyle degistirmen gerekiyor:
str_replace($needle, '', $haystack)
Gecen PHP'nin yeni surumune gecerken ben de ayni problemi yasadim, uzucu :D eger 3. parti kullandigin class'lar vs. varsa onlarda hata cikarabilir, onlara da bir el atman gerekebilir.
bir div icine alip o div'e class verebilirsin, diger turlu hesaplamayi yapabilmek icin override eziyor sanirim proplari :/
buyur abi ihtiyacin olan regex:
^(?!0\.0[0-9]$)(?!0$)\d+(\.\d{2})?$
En dusuk 0.10'dan başlamasını sağlar, 0 ya da 0.00 ya da 0.01 ... 0.09 bu degerleri kabul etmez.
Bununla ilgili surada bir issue acilmis, cozumu ise:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer