@devix-tecnologia/directus-extension-inframe
Version:
DEPRECATED: Use 'directus-extension-inframe' instead. This package is no longer maintained.
74 lines (56 loc) • 2.44 kB
JavaScript
// Script para atualizar src/tests/directus-versions.js com as versões não-deprecadas do Directus
/* eslint-disable no-console */
import fs from 'node:fs';
import path from 'node:path';
import https from 'node:https';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const versionsPath = path.resolve(__dirname, '../../tests/directus-versions.js');
// Importa versões bloqueadas do arquivo de versões
import { blockedDirectusVersions } from '../../tests/directus-versions.js';
// Versões fixas que você quer sempre testar
const fixedVersions = ['9.23.1', '9.22.4', '9.24.0', '10.8.3', '11.10.2'];
function getAllDirectusVersions() {
return new Promise((resolve, reject) => {
https
.get('https://registry.npmjs.org/directus', (res) => {
let data = '';
res.on('data', (chunk) => (data += chunk));
res.on('end', () => {
try {
const json = JSON.parse(data);
const versions = Object.entries(json.versions)
.filter(([v, meta]) => !meta.deprecated && !blockedDirectusVersions.includes(v))
.map(([v]) => v)
.filter((v) => /^\d+\.\d+\.\d+$/.test(v));
resolve(versions);
} catch (e) {
reject(e);
}
});
})
.on('error', reject);
});
}
async function updateVersions() {
let allVersions = [];
try {
allVersions = await getAllDirectusVersions();
} catch {
console.warn('Não foi possível buscar as versões do Directus, mantendo apenas as fixas.');
}
// Mantém as últimas 5 versões não-deprecadas
const latestVersions = allVersions.slice(-5);
// Junta as fixas, as últimas e o "latest"
const uniqueVersions = Array.from(new Set([...fixedVersions, ...latestVersions, 'latest']));
// Lê o conteúdo atual do arquivo
let fileContent = fs.readFileSync(versionsPath, 'utf8');
// Substitui apenas o array directusVersions
const newArray = `export const directusVersions = [\n '${uniqueVersions.join("',\n '")}',\n];`;
fileContent = fileContent.replace(/export const directusVersions = \[[^\]]*\];/m, newArray);
fs.writeFileSync(versionsPath, fileContent);
console.log('Directus versions updated in directus-versions.js:', uniqueVersions);
console.log('Blocked Directus versions:', blockedDirectusVersions);
}
updateVersions();