mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { readFile } from 'node:fs/promises';
|
|
import { join } from 'node:path';
|
|
import { PACKAGES_WITH_ENTRY_POINTS } from './constants';
|
|
import { ENV } from './env';
|
|
|
|
export async function fetchNode({
|
|
entryPoint,
|
|
item,
|
|
packageName,
|
|
version,
|
|
}: {
|
|
readonly entryPoint?: string | undefined;
|
|
readonly item: any;
|
|
readonly packageName: string;
|
|
readonly version: string;
|
|
}) {
|
|
const hasEntryPoint = PACKAGES_WITH_ENTRY_POINTS.includes(packageName);
|
|
const normalizedEntryPoint = entryPoint ? `${entryPoint}.` : '';
|
|
const normalizeItem = item.replaceAll(':', '.').toLowerCase();
|
|
|
|
if (ENV.IS_LOCAL_DEV) {
|
|
try {
|
|
const fileContent = await readFile(
|
|
join(
|
|
process.cwd(),
|
|
`${hasEntryPoint || normalizedEntryPoint ? `../../../discord-api-types` : `../../packages/${packageName}`}/docs/${packageName}/split/${version}.${normalizedEntryPoint}${normalizeItem}.api.json`,
|
|
),
|
|
'utf8',
|
|
);
|
|
|
|
return JSON.parse(fileContent);
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
const isMain = version === 'main';
|
|
const fileContent = await fetch(
|
|
`${process.env.CF_R2_DOCS_BUCKET_URL}/${packageName}/${version}.${normalizedEntryPoint}${normalizeItem}.api.json`,
|
|
{ next: { revalidate: isMain ? 0 : 604_800 } },
|
|
);
|
|
|
|
if (!fileContent.ok) {
|
|
return null;
|
|
}
|
|
|
|
return fileContent.json();
|
|
}
|