scripts/download-examples.mjs (20 lines of code) (raw):
import fs from 'fs';
import { Readable } from 'stream';
import { finished } from 'stream/promises';
function getExamplesUrl(version) {
return `https://raw.githubusercontent.com/elastic/built-docs/master/raw/en/elasticsearch/reference/${version}/alternatives_report.json`;
}
const packageJson = JSON.parse(fs.readFileSync('./package.json'));
const majorMinorVersion = packageJson.version.split(".").slice(0, 2).join(".");
let version = majorMinorVersion;
let response = await fetch(getExamplesUrl(version));
if (response.status === 404) {
version = 'current';
response = await fetch(getExamplesUrl(version));
}
if (response.status !== 200) {
throw new Error('Cannot download examples');
}
console.log(`Downloaded "${version}" examples for version ${majorMinorVersion}.`);
const fileStream = fs.createWriteStream('.examples.json');
await finished(Readable.fromWeb(response.body).pipe(fileStream));