mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-11-27 18:12:54 +03:00
38 lines
745 B
JavaScript
38 lines
745 B
JavaScript
import http from 'node:http';
|
|
|
|
const options = {
|
|
hostname: 'localhost',
|
|
port: 3000,
|
|
path: '/api/healthz',
|
|
method: 'GET',
|
|
};
|
|
|
|
const maxAttempts = 5;
|
|
const timeout = 1000;
|
|
let attempts = 0;
|
|
|
|
while (attempts < maxAttempts) {
|
|
await new Promise(resolve => setTimeout(resolve, timeout * (1 << attempts)));
|
|
await new Promise(resolve => {
|
|
const req = http.request(options, res => {
|
|
if (res.statusCode === 204) {
|
|
console.log('Server is ready');
|
|
process.exit(0);
|
|
} else {
|
|
console.log(`Unexpected response: ${res.statusCode}`);
|
|
}
|
|
resolve();
|
|
});
|
|
|
|
req.on('error', error => {
|
|
console.error(error);
|
|
resolve();
|
|
});
|
|
|
|
req.end();
|
|
attempts++;
|
|
});
|
|
}
|
|
|
|
process.exit(1);
|