mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-23 19:42:19 +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);
|