build(website): build site from db data

This commit is contained in:
iCrawl
2023-04-01 02:50:24 +02:00
parent 34bc36ac4b
commit 311cab2d3f
63 changed files with 740 additions and 641 deletions

View File

@@ -40,18 +40,21 @@
"homepage": "https://discord.js.org",
"dependencies": {
"@actions/core": "^1.10.0",
"tslib": "^2.5.0"
"@actions/glob": "^0.4.0",
"@planetscale/database": "^1.6.0",
"tslib": "^2.5.0",
"undici": "^5.21.0"
},
"devDependencies": {
"@types/node": "16.18.21",
"@types/node": "16.18.23",
"@vitest/coverage-c8": "^0.29.8",
"cross-env": "^7.0.3",
"eslint": "^8.36.0",
"eslint": "^8.37.0",
"eslint-config-neon": "^0.1.41",
"eslint-formatter-pretty": "^5.0.0",
"prettier": "^2.8.7",
"tsup": "^6.7.0",
"typescript": "^5.0.2",
"typescript": "^5.0.3",
"vitest": "^0.29.8"
},
"engines": {

View File

@@ -0,0 +1,11 @@
name: 'Upload documentation'
description: 'Uploads the docs.json file to a planetscale database'
inputs:
package:
description: 'The package string'
required: true
semver:
description: 'The semver string'
runs:
using: node16
main: ../../dist/uploadDocumentation/index.mjs

View File

@@ -0,0 +1,29 @@
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';
if (!process.env.DATABASE_URL) {
process.exit(0);
}
const pkg = getInput('package', { required: true });
const version = getInput('version') || 'main';
const sql = connect({
fetch,
url: process.env.DATABASE_URL,
});
const globber = await create(`packages/${pkg}/docs/docs.api.json`);
for await (const file of globber.globGenerator()) {
const data = await readFile(file, 'utf8');
try {
await sql.execute('replace into documentation (version, data) values (?, ?)', [version, data]);
} catch (error) {
const err = error as Error;
setFailed(err.message);
}
}

View File

@@ -1,7 +1,7 @@
import { createTsupConfig } from '../../tsup.config.js';
export default createTsupConfig({
entry: ['src/index.ts', 'src/formatTag/index.ts'],
entry: ['src/index.ts', 'src/formatTag/index.ts', 'src/uploadDocumentation/index.ts'],
format: ['esm'],
minify: true,
});