fix write to file

This commit is contained in:
Ayres Vitor
2025-07-31 15:25:08 -03:00
parent 4b287e1f41
commit 106852095d
4 changed files with 9 additions and 16 deletions

View File

@@ -7,7 +7,7 @@ import { throttling } from '@octokit/plugin-throttling';
import { writeFileSync } from 'node:fs';
import { GITHUB_CONTRIBUTORS_FILE } from './config';
import { checkAndWriteData } from './utils';
import { saveToFile } from './utils';
export interface Contributor {
login: string;
@@ -263,7 +263,7 @@ export async function fetchGitHubContributorsData() {
token: process.env.GITHUB_TOKEN,
contributionThreshold,
});
await checkAndWriteData(GITHUB_CONTRIBUTORS_FILE, statsCollector.run);
await saveToFile(GITHUB_CONTRIBUTORS_FILE, statsCollector.run);
} catch (error) {
console.error('Failed to collect contributors data:', error);
}

View File

@@ -1,6 +1,6 @@
import { GH_IMAGE_DIMENSION, GITHUB_SPONSORS_FILE } from './config';
import type { GitHubSponsor } from './types';
import { checkAndWriteData, q } from './utils';
import { saveToFile, q } from './utils';
const GITHUB_TOKEN = process.env.GITHUB_TOKEN;
@@ -39,5 +39,5 @@ async function fetchData() {
}
export async function fetchGitHubSponsors() {
await checkAndWriteData(GITHUB_SPONSORS_FILE, fetchData);
await saveToFile(GITHUB_SPONSORS_FILE, fetchData);
}

View File

@@ -6,7 +6,7 @@ import {
OPEN_COLLECTIVE_FILE,
} from './config';
import { type OpenCollectiveSponsor, type Tier } from './types';
import { checkAndWriteData, q } from './utils';
import { saveToFile, q } from './utils';
async function fetchData() {
const filteredSlugs = ['github-sponsors'];
@@ -69,5 +69,5 @@ async function fetchData() {
}
export async function fetchOpenCollectiveData() {
await checkAndWriteData(OPEN_COLLECTIVE_FILE, fetchData);
await saveToFile(OPEN_COLLECTIVE_FILE, fetchData);
}

View File

@@ -20,17 +20,10 @@ export async function q(query: string, url: string, name: string, headers?: any)
return data;
}
// TODO: override on prod
export async function checkAndWriteData(filePath: string, fetcher: any) {
export async function saveToFile(filePath: string, fetcher: any) {
try {
let data = [];
if (fs.existsSync(filePath)) {
data = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
} else {
data = await fetcher();
fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
}
return data;
const data = await fetcher();
fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
} catch (error) {
console.error(`Failed to fetch or write ${filePath}:`, error);
}