fix: SQL import in Docker images #202

Merged
Anri merged 8 commits from fix-sql into main 2024-11-02 18:26:02 +01:00
13 changed files with 26 additions and 20 deletions

View file

@ -5,5 +5,3 @@
!package-lock.json
!LICENSE
!tsconfig.json
src/tests/

View file

@ -1 +1,2 @@
dist
tests

View file

@ -14,7 +14,7 @@ jobs:
uses: actions/checkout@v4
- name: Install dependencies
run: npm install
run: npm ci
- name: Run lint
run: npm run lint

View file

@ -14,7 +14,7 @@ COPY --chown=node:node . .
ENV NODE_ENV=production
RUN npm ci --omit=dev && \
npx tsc && \
npm run compile && \
rm -r src/ tsconfig.json && \
npm uninstall typescript @types/sqlite3 && \
npm cache clean --force

6
package-lock.json generated
View file

@ -1454,9 +1454,9 @@
}
},
"node_modules/@sapphire/async-queue": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.3.tgz",
"integrity": "sha512-x7zadcfJGxFka1Q3f8gCts1F0xMwCKbZweM85xECGI0hBTeIZJGGCrHgLggihBoprlQ/hBmDR5LKfIPqnmHM3w==",
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.4.tgz",
"integrity": "sha512-id65RxAx34DCk8KAVTPWwcephJSkStiS9M15F87+zvK2gK47wf7yeRIo8WiuKeXQS6bsyo/uQ/t0QW1cLmSb+A==",
"license": "MIT",
"engines": {
"node": ">=v14.0.0",

View file

@ -4,13 +4,13 @@
"description": "Bot discord",
"main": "src/index.js",
"scripts": {
"compile": "rm -r dist 2> /dev/null; npx tsc",
"compile": "rm -r dist 2> /dev/null; npx tsc && cp -r ./src/sql ./dist/sql",
"main": "npm run compile && node ./dist/index.js",
"debug": "npx tsnd --respawn ./src/index.ts",
"lint": "npx eslint src",
"format-check": "npx prettier --check src",
"format-write": "npx prettier --write src",
"test": "npm run compile && npx jest"
"test": "npx jest"
},
"repository": {
"type": "git",

View file

@ -1,10 +1,10 @@
import { PlayerEvents, useMainPlayer } from "discord-player";
import { Client } from "discord.js";
import { readdir } from "fs/promises";
import { splitFilenameExtensions } from "../utils/misc";
import { isDev, splitFilenameExtensions } from "../utils/misc";
/** Load all the events */
export default async (client: Client, isDev: boolean) => {
export default async (client: Client) => {
const events_categories = (await readdir(__dirname, { withFileTypes: true }))
.filter((element) => element.isDirectory())
.map((element) => element.name);

View file

@ -1,8 +1,8 @@
const isDev = process.env.NODE_ENV !== "production";
import { isDev } from "./utils/misc";
/** Load the app */
const start_app = () => {
import("./load").then((l) => l.run(isDev).catch((error) => console.error(error)));
import("./load").then((l) => l.run().catch((error) => console.error(error)));
};
// Load .env if not in prod

View file

@ -4,15 +4,15 @@ import loadEvents from "./events/loader";
import loadModals from "./modals/loader";
import loadClient, { quit } from "./utils/client";
import { logStart } from "./utils/misc";
import { isDev, logStart } from "./utils/misc";
/** Run the bot */
export const run = async (isDev: boolean) => {
export const run = async () => {
console.log("Starting Botanique...");
// Client Discord.JS
const client_name = "Client";
await loadClient(isDev)
await loadClient()
.then(async (client) => {
if (isDev) {
// Attach debugging listeners
@ -21,7 +21,7 @@ export const run = async (isDev: boolean) => {
// Events Discord.JS and Player
const events_name = "Events";
await loadEvents(client, isDev)
await loadEvents(client)
.then(() => console.log(logStart(events_name, true)))
.catch((err) => {
console.error(err);

View file

@ -6,9 +6,10 @@ import "../modules/client";
import { loadLocales } from "./locales";
import { YoutubeiExtractor } from "discord-player-youtubei";
import { readSQL } from "./db";
import { isDev } from "./misc";
/** Creation of the client and definition of its properties */
export default async (isDev: boolean) => {
export default async () => {
const activities = isDev ? [] : [{ name: "/help", type: ActivityType.Watching }];
const client: Client = new Client({

View file

@ -1,7 +1,9 @@
import fs from "node:fs";
import { isDev } from "./misc";
export const readSQL = (path: string) => {
const dir = "./src/sql/";
const root = isDev ? "./src" : "./dist";
const dir = root + "/sql/";
if (!path.startsWith(dir)) {
path = dir + path;
}

View file

@ -1,5 +1,8 @@
import { GuildMember } from "discord.js";
/** Check if we are in the dev environnement */
export const isDev = process.env.NODE_ENV !== "production";
/**
* Log module status
* @param {string} name Module name

View file

@ -102,5 +102,6 @@
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
"include": ["./**/*.ts", "./src/locales/*.json"]
"include": ["./**/*.ts", "./src/locales/*.json"],
"exclude": ["./src/tests"]
}