refactor: switch to vercel blob for docs

This commit is contained in:
iCrawl
2023-11-13 23:15:16 +01:00
parent ffc3ea5c3f
commit 01c63d2e0f
9 changed files with 278 additions and 69 deletions

View File

@@ -159,7 +159,7 @@ export async function fetchVersions(pkg: string) {
export async function fetchVersionDocs(pkg: string, version: string) {
const response = await request(`https://docs.discordjs.dev/docs/${pkg}/${version}.api.json`);
return response.body.json() as Promise<Record<any, any>>;
return response.body.json();
}
export async function generateAllIndices({

View File

@@ -1,6 +1,7 @@
import { readFile } from 'node:fs/promises';
import process, { cwd } from 'node:process';
import { create } from '@actions/glob';
import { put } from '@vercel/blob';
import { createPool } from '@vercel/postgres';
const pool = createPool({
@@ -16,14 +17,29 @@ for await (const file of globber.globGenerator()) {
if (parsed?.groups) {
console.log(parsed.groups.semver, file);
try {
await pool.sql`insert into documentation (version, data) values (${parsed.groups.semver}, ${data}) on conflict (name, version) do update set data = EXCLUDED.data`;
const { name } = JSON.parse(data);
const { url } = await put(`${name.replace('@discordjs/', '')}/${parsed.groups.semver}.json`, data, {
access: 'public',
addRandomSuffix: false,
});
await pool.sql`insert into documentation (name, version, url) values (${name.replace('@discordjs/', '')}, ${
parsed.groups.semver
}, ${url}) on conflict (name, version) do update set url = EXCLUDED.url`;
} catch (error) {
console.error(error);
}
} else {
console.log('main', file);
try {
await pool.sql`insert into documentation (version, data) values (${'main'}, ${data}) on conflict (name, version) do update set data = EXCLUDED.data`;
const { name } = JSON.parse(data);
const { url } = await put(`${name.replace('@discordjs/', '')}/main.json`, data, {
access: 'public',
addRandomSuffix: false,
});
await pool.sql`insert into documentation (name, version, url) values (${name.replace(
'@discordjs/',
'',
)}, ${'main'}, ${url}) on conflict (name, version) do update set url = EXCLUDED.url`;
} catch (error) {
console.error(error);
}