mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
refactor: switch to vercel pg
This commit is contained in:
@@ -43,7 +43,7 @@
|
||||
"@actions/core": "^1.10.1",
|
||||
"@actions/glob": "^0.4.0",
|
||||
"@discordjs/scripts": "workspace:^",
|
||||
"@planetscale/database": "^1.11.0",
|
||||
"@vercel/postgres": "^0.5.1",
|
||||
"meilisearch": "^0.35.0",
|
||||
"tslib": "^2.6.2",
|
||||
"undici": "5.27.2"
|
||||
|
||||
@@ -2,8 +2,7 @@ import { readFile } from 'node:fs/promises';
|
||||
import process from 'node:process';
|
||||
import { getInput, setFailed } from '@actions/core';
|
||||
import { create } from '@actions/glob';
|
||||
import { connect } from '@planetscale/database';
|
||||
import { fetch } from 'undici';
|
||||
import { createPool } from '@vercel/postgres';
|
||||
|
||||
if (!process.env.DATABASE_URL) {
|
||||
setFailed('DATABASE_URL is not set');
|
||||
@@ -12,9 +11,8 @@ if (!process.env.DATABASE_URL) {
|
||||
const pkg = getInput('package') || '*';
|
||||
const version = getInput('version') || 'main';
|
||||
|
||||
const sql = connect({
|
||||
fetch,
|
||||
url: process.env.DATABASE_URL!,
|
||||
const pool = createPool({
|
||||
connectionString: process.env.DATABASE_URL,
|
||||
});
|
||||
|
||||
const globber = await create(`packages/${pkg}/docs/docs.api.json`);
|
||||
@@ -22,7 +20,7 @@ for await (const file of globber.globGenerator()) {
|
||||
const data = await readFile(file, 'utf8');
|
||||
try {
|
||||
console.log(`Uploading ${file} with ${version}...`);
|
||||
await sql.execute('replace into documentation (version, data) values (?, ?)', [version, data]);
|
||||
await pool.sql`insert into documentation (version, data) values (${version}, ${data}) on conflict (version) do update set data = EXCLUDED.data`;
|
||||
} catch (error) {
|
||||
const err = error as Error;
|
||||
setFailed(err.message);
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import process from 'node:process';
|
||||
import { setFailed } from '@actions/core';
|
||||
import { generateAllIndices } from '@discordjs/scripts';
|
||||
import { connect } from '@planetscale/database';
|
||||
import { createPool } from '@vercel/postgres';
|
||||
import { MeiliSearch } from 'meilisearch';
|
||||
import { fetch } from 'undici';
|
||||
|
||||
if (!process.env.DATABASE_URL) {
|
||||
setFailed('DATABASE_URL is not set');
|
||||
@@ -17,9 +16,8 @@ if (!process.env.SEARCH_API_KEY) {
|
||||
setFailed('SEARCH_API_KEY is not set');
|
||||
}
|
||||
|
||||
const sql = connect({
|
||||
fetch,
|
||||
url: process.env.DATABASE_URL!,
|
||||
const pool = createPool({
|
||||
connectionString: process.env.DATABASE_URL,
|
||||
});
|
||||
|
||||
const client = new MeiliSearch({
|
||||
@@ -32,20 +30,15 @@ try {
|
||||
const indices = await generateAllIndices({
|
||||
fetchPackageVersions: async (pkg) => {
|
||||
console.log(`Fetching versions for ${pkg}...`);
|
||||
const { rows } = await sql.execute('select version from documentation where name = ?', [pkg]);
|
||||
const { rows } = await pool.sql`select version from documentation where name = ${pkg}`;
|
||||
|
||||
// @ts-expect-error: https://github.com/planetscale/database-js/issues/71
|
||||
return rows.map((row) => row.version);
|
||||
},
|
||||
fetchPackageVersionDocs: async (pkg, version) => {
|
||||
console.log(`Fetching data for ${pkg} ${version}...`);
|
||||
const { rows } = await sql.execute('select data from documentation where name = ? and version = ?', [
|
||||
pkg,
|
||||
version,
|
||||
]);
|
||||
const { rows } = await pool.sql`select data from documentation where name = ${pkg} and version = ${version}`;
|
||||
|
||||
// @ts-expect-error: https://github.com/planetscale/database-js/issues/71
|
||||
return rows[0].data;
|
||||
return rows[0]?.data ?? null;
|
||||
},
|
||||
writeToFile: false,
|
||||
});
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
"@discordjs/api-extractor-utils": "workspace:^",
|
||||
"@microsoft/tsdoc": "0.14.2",
|
||||
"@microsoft/tsdoc-config": "0.16.2",
|
||||
"@planetscale/database": "^1.11.0",
|
||||
"@vercel/postgres": "^0.5.1",
|
||||
"tslib": "^2.6.2",
|
||||
"undici": "5.27.2",
|
||||
"yaml": "2.3.4"
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import process, { cwd } from 'node:process';
|
||||
import { create } from '@actions/glob';
|
||||
import { connect } from '@planetscale/database';
|
||||
import { createPool } from '@vercel/postgres';
|
||||
|
||||
const sql = connect({
|
||||
url: process.env.DATABASE_URL!,
|
||||
const pool = createPool({
|
||||
connectionString: process.env.DATABASE_URL,
|
||||
});
|
||||
|
||||
process.chdir(`${cwd()}/../../`);
|
||||
const globber = await create(`packages/*/docs/*.api.json`);
|
||||
// const globber2 = await create(`discord.js/*.json`);
|
||||
for await (const file of globber.globGenerator()) {
|
||||
const parsed = /(?<semver>\d+.\d+.\d+)-?.*/.exec(file);
|
||||
const data = await readFile(file, 'utf8');
|
||||
@@ -17,14 +16,14 @@ for await (const file of globber.globGenerator()) {
|
||||
if (parsed?.groups) {
|
||||
console.log(parsed.groups.semver, file);
|
||||
try {
|
||||
await sql.execute('replace into documentation (version, data) values (?, ?)', [parsed.groups.semver, data]);
|
||||
await pool.sql`insert into documentation (version, data) values (${parsed.groups.semver}, ${data}) on conflict (name, version) do update set data = EXCLUDED.data`;
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
} else {
|
||||
console.log('main', file);
|
||||
try {
|
||||
await sql.execute('replace into documentation (version, data) values (?, ?)', ['main', data]);
|
||||
await pool.sql`insert into documentation (version, data) values (${'main'}, ${data}) on conflict (name, version) do update set data = EXCLUDED.data`;
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user