fix: SQL import in Docker images #202
13 changed files with 26 additions and 20 deletions
|
@ -5,5 +5,3 @@
|
|||
!package-lock.json
|
||||
!LICENSE
|
||||
!tsconfig.json
|
||||
|
||||
src/tests/
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
dist
|
||||
tests
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
6
package-lock.json
generated
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue