mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 19:43:29 +01:00
docs: split docs.api.json into multiple json files
This commit is contained in:
10
packages/actions/src/uploadSplitDocumentation/action.yml
Normal file
10
packages/actions/src/uploadSplitDocumentation/action.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
name: 'Upload split documentation'
|
||||
description: 'Splits and uploads the docs.api.json file into more fine-grained [item].api.json files'
|
||||
inputs:
|
||||
package:
|
||||
description: 'The package string'
|
||||
version:
|
||||
description: 'The semver string'
|
||||
runs:
|
||||
using: node20
|
||||
main: ../../dist/uploadSplitDocumentation/index.js
|
||||
34
packages/actions/src/uploadSplitDocumentation/index.ts
Normal file
34
packages/actions/src/uploadSplitDocumentation/index.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import { basename } from 'node:path';
|
||||
import process from 'node:process';
|
||||
import { getInput, setFailed } from '@actions/core';
|
||||
import { create } from '@actions/glob';
|
||||
import { put } from '@vercel/blob';
|
||||
import { createPool } from '@vercel/postgres';
|
||||
|
||||
if (!process.env.DATABASE_URL) {
|
||||
setFailed('DATABASE_URL is not set');
|
||||
}
|
||||
|
||||
const pkg = getInput('package') || '*';
|
||||
const version = getInput('version') || 'main';
|
||||
|
||||
const pool = createPool({
|
||||
connectionString: process.env.DATABASE_URL,
|
||||
});
|
||||
|
||||
const globber = await create(`packages/${pkg}/docs/split/main.*.*.api.json`);
|
||||
for await (const file of globber.globGenerator()) {
|
||||
const data = await readFile(file, 'utf8');
|
||||
try {
|
||||
console.log(`Uploading ${file} with ${version}...`);
|
||||
const name = basename(file).replace('main.', '');
|
||||
const { url } = await put(`${version}.${name}`, data, {
|
||||
access: 'public',
|
||||
addRandomSuffix: false,
|
||||
});
|
||||
await pool.sql`insert into documentation (name, version, url) values (${name}, ${version}, ${url}) on conflict (name, version) do update set url = EXCLUDED.url`;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user