pinafore/bin/wait-for-mastodon-to-start.js
Nolan Lawson 16e66346d7
fix!: remove esm package, use native Node ES modules (#2064)
BREAKING CHANGE: Node v12.20+, v14.14+, or v16.0+ is required

* fix!: remove esm package, use native Node ES modules

* fix: fix some CJS imports
2021-07-04 20:19:04 -07:00

42 lines
1 KiB
JavaScript

import fetch from 'node-fetch'
import esMain from 'es-main'
export async function waitForMastodonUiToStart () {
while (true) {
try {
const html = await ((await fetch('http://127.0.0.1:3035/packs/common.js')).text())
if (html) {
break
}
} catch (err) {
console.log('Waiting for Mastodon UI to start up...')
await new Promise(resolve => setTimeout(resolve, 5000))
}
}
console.log('Mastodon UI started up')
}
export async function waitForMastodonApiToStart () {
while (true) {
try {
const json = await ((await fetch('http://127.0.0.1:3000/api/v1/instance')).json())
if (json.uri) {
break
}
} catch (err) {
console.log('Waiting for Mastodon API to start up...')
await new Promise(resolve => setTimeout(resolve, 5000))
}
}
console.log('Mastodon API started up')
}
if (esMain(import.meta)) {
Promise.resolve()
.then(waitForMastodonApiToStart)
.then(waitForMastodonUiToStart).catch(err => {
console.error(err)
process.exit(1)
})
}