You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
877 B

const axios = require('axios');
const { writeJsonSync } = require('fs-extra');
const path = require('path');
axios
.get('https://exp.host/--/versions')
.then(async ({ data }) => {
writeJsonSync(path.join(__dirname, '../caches/versions.json'), data);
for (const version of Object.keys(data.sdkVersions)) {
if (data.sdkVersions[version].isDeprecated) {
continue;
}
const {
data: { data: schema },
} = await axios.get(`https://exp.host/--/api/v2/project/configuration/schema/${version}`);
const filePath = path.join(__dirname, `../caches/schema-${version}.json`);
console.log('Writing', filePath);
writeJsonSync(filePath, schema);
}
})
.then(() => console.log('Caches updated.'))
.catch(error => {
console.error(error);
console.error('Updating caches failed.');
process.exit(1);
});