typeorm 0.3, Dockerfile optmizations

This commit is contained in:
Charlie Laabs
2022-03-25 22:38:20 -05:00
parent f89bed9e5d
commit 4215b5ae13
7 changed files with 142 additions and 167 deletions

View File

@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
## Versions ## Versions
### 2.1.0
* Update dependencies (typeorm 0.3)
* Dockerfile optimization
### 2.0.1 ### 2.0.1
* Add a filter to ensure the bot doesn't just post exact previous messages. * Add a filter to ensure the bot doesn't just post exact previous messages.

View File

@@ -7,6 +7,17 @@ WORKDIR /usr/app
RUN apk add --no-cache tini RUN apk add --no-cache tini
############
# PROD DEPS
############
FROM base as prodDeps
COPY package*.json ./
# Install build tools for erlpack, then install prod deps only
RUN apk add --no-cache make gcc g++ python3 \
&& npm ci --only=production
######## ########
# BUILD # BUILD
######## ########
@@ -36,13 +47,13 @@ FROM base as deploy
USER node USER node
# Steal node_modules from base image # Steal node_modules from base image
COPY --from=build /usr/app/node_modules node_modules COPY --from=prodDeps /usr/app/node_modules node_modules
# Steal compiled code from build image # Steal compiled code from build image
COPY --from=build /usr/app/dist dist COPY --from=build /usr/app/dist dist
# Copy package.json for version number # Copy package.json for version number
COPY package*.json ormconfig.js ./ COPY package.json ./
# RUN mkdir config # RUN mkdir config

View File

@@ -1,39 +0,0 @@
const devConfig = {
type: 'better-sqlite3',
database: process.env.CONFIG_DIR
? `${process.env.CONFIG_DIR}/db/db.sqlite3`
: 'config/db/db.sqlite3',
synchronize: true,
migrationsRun: false,
// logging: 'all',
enableWAL: true,
entities: ['src/entity/**/*.ts'],
migrations: ['src/migration/**/*.ts'],
subscribers: ['src/subscriber/**/*.ts'],
cli: {
entitiesDir: 'src/entity',
migrationsDir: 'src/migration',
},
};
const prodConfig = {
type: 'better-sqlite3',
database: process.env.CONFIG_DIR
? `${process.env.CONFIG_DIR}/db/db.sqlite3`
: 'config/db/db.sqlite3',
synchronize: false,
logging: false,
enableWAL: true,
entities: ['dist/entity/**/*.js'],
migrations: ['dist/migration/**/*.js'],
migrationsRun: true,
subscribers: ['dist/subscriber/**/*.js'],
cli: {
entitiesDir: 'dist/entity',
migrationsDir: 'dist/migration',
},
};
const finalConfig = process.env.NODE_ENV !== 'production' ? devConfig : prodConfig;
module.exports = finalConfig;

192
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "markov-discord", "name": "markov-discord",
"version": "2.0.2", "version": "2.1.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "markov-discord", "name": "markov-discord",
"version": "2.0.2", "version": "2.1.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@discordjs/builders": "^0.12.0", "@discordjs/builders": "^0.12.0",
@@ -23,13 +23,13 @@
"erlpack": "github:discord/erlpack", "erlpack": "github:discord/erlpack",
"fs-extra": "^10.0.1", "fs-extra": "^10.0.1",
"json5": "^2.2.1", "json5": "^2.2.1",
"markov-strings-db": "^4.1.5", "markov-strings-db": "^4.2.0",
"pino": "^7.9.2", "pino": "^7.9.2",
"pino-pretty": "^7.6.0", "pino-pretty": "^7.6.0",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"simple-eta": "^3.0.2", "simple-eta": "^3.0.2",
"source-map-support": "^0.5.21", "source-map-support": "^0.5.21",
"typeorm": "^0.2.45", "typeorm": "^0.3.3",
"utf-8-validate": "^5.0.9", "utf-8-validate": "^5.0.9",
"zlib-sync": "^0.1.7" "zlib-sync": "^0.1.7"
}, },
@@ -59,7 +59,7 @@
"version": "0.8.0", "version": "0.8.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
"integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
"dev": true, "devOptional": true,
"engines": { "engines": {
"node": ">= 12" "node": ">= 12"
} }
@@ -68,7 +68,7 @@
"version": "0.7.0", "version": "0.7.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
"integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
"dev": true, "devOptional": true,
"dependencies": { "dependencies": {
"@cspotcode/source-map-consumer": "0.8.0" "@cspotcode/source-map-consumer": "0.8.0"
}, },
@@ -494,25 +494,25 @@
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
"dev": true "devOptional": true
}, },
"node_modules/@tsconfig/node12": { "node_modules/@tsconfig/node12": {
"version": "1.0.9", "version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
"dev": true "devOptional": true
}, },
"node_modules/@tsconfig/node14": { "node_modules/@tsconfig/node14": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
"dev": true "devOptional": true
}, },
"node_modules/@tsconfig/node16": { "node_modules/@tsconfig/node16": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true "devOptional": true
}, },
"node_modules/@types/fs-extra": { "node_modules/@types/fs-extra": {
"version": "9.0.13", "version": "9.0.13",
@@ -562,11 +562,6 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/zen-observable": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
"integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
},
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.16.0", "version": "5.16.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
@@ -755,7 +750,7 @@
"version": "8.7.0", "version": "8.7.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
"integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
"dev": true, "devOptional": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@@ -776,7 +771,7 @@
"version": "8.2.0", "version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
"dev": true, "devOptional": true,
"engines": { "engines": {
"node": ">=0.4.0" "node": ">=0.4.0"
} }
@@ -899,7 +894,7 @@
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true "devOptional": true
}, },
"node_modules/argparse": { "node_modules/argparse": {
"version": "2.0.1", "version": "2.0.1",
@@ -1554,7 +1549,7 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
"dev": true "devOptional": true
}, },
"node_modules/croner": { "node_modules/croner": {
"version": "4.1.97", "version": "4.1.97",
@@ -1725,7 +1720,7 @@
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true, "devOptional": true,
"engines": { "engines": {
"node": ">=0.3.1" "node": ">=0.3.1"
} }
@@ -3503,7 +3498,7 @@
"version": "1.3.6", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true "devOptional": true
}, },
"node_modules/marked": { "node_modules/marked": {
"version": "4.0.12", "version": "4.0.12",
@@ -3518,15 +3513,15 @@
} }
}, },
"node_modules/markov-strings-db": { "node_modules/markov-strings-db": {
"version": "4.1.5", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.5.tgz", "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.2.0.tgz",
"integrity": "sha512-p37FSQxXFUnHQfdp4OOljxs+aomNHK8avGVzZZy8Xjl4HEy7JB/v8f+isbhddyjSXewSjqyFwwcoh4TuZj2NTQ==", "integrity": "sha512-KlPmvQC5s/lonqn5syB1d+KYs1eREmc3BswSRQCPJARZJzu/zqVbEMB9FoKd6PvlAFiJE9LH15z3kJg0GijLBA==",
"dependencies": { "dependencies": {
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"typeorm": "^0.2.41" "typeorm": "^0.3.3"
}, },
"engines": { "engines": {
"node": ">=10" "node": ">=14"
} }
}, },
"node_modules/merge2": { "node_modules/merge2": {
@@ -5214,7 +5209,7 @@
"version": "10.7.0", "version": "10.7.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
"integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
"dev": true, "devOptional": true,
"dependencies": { "dependencies": {
"@cspotcode/source-map-support": "0.7.0", "@cspotcode/source-map-support": "0.7.0",
"@tsconfig/node10": "^1.0.7", "@tsconfig/node10": "^1.0.7",
@@ -5401,30 +5396,35 @@
} }
}, },
"node_modules/typeorm": { "node_modules/typeorm": {
"version": "0.2.45", "version": "0.3.3",
"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz", "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.3.tgz",
"integrity": "sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==", "integrity": "sha512-01gesp6ikGMLGUxBDzEn4qcIiVW3gWzZsUPE6ETqzSRuHL4pCAWHvTPELN1agirBJrZNxhxiVFUXCmnPXYNfrg==",
"dependencies": { "dependencies": {
"@sqltools/formatter": "^1.2.2", "@sqltools/formatter": "^1.2.2",
"app-root-path": "^3.0.0", "app-root-path": "^3.0.0",
"buffer": "^6.0.3", "buffer": "^6.0.3",
"chalk": "^4.1.0", "chalk": "^4.1.0",
"cli-highlight": "^2.1.11", "cli-highlight": "^2.1.11",
"debug": "^4.3.1", "date-fns": "^2.28.0",
"dotenv": "^8.2.0", "debug": "^4.3.3",
"glob": "^7.1.6", "dotenv": "^16.0.0",
"js-yaml": "^4.0.0", "glob": "^7.2.0",
"js-yaml": "^4.1.0",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"sha.js": "^2.4.11", "sha.js": "^2.4.11",
"tslib": "^2.1.0", "tslib": "^2.3.1",
"uuid": "^8.3.2", "uuid": "^8.3.2",
"xml2js": "^0.4.23", "xml2js": "^0.4.23",
"yargs": "^17.0.1", "yargs": "^17.3.1"
"zen-observable-ts": "^1.0.0"
}, },
"bin": { "bin": {
"typeorm": "cli.js" "typeorm": "cli.js",
"typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js",
"typeorm-ts-node-esm": "cli-ts-node-esm.js"
},
"engines": {
"node": ">= 12.9.0"
}, },
"funding": { "funding": {
"url": "https://opencollective.com/typeorm" "url": "https://opencollective.com/typeorm"
@@ -5444,6 +5444,7 @@
"redis": "^3.1.1", "redis": "^3.1.1",
"sql.js": "^1.4.0", "sql.js": "^1.4.0",
"sqlite3": "^5.0.2", "sqlite3": "^5.0.2",
"ts-node": "^10.7.0",
"typeorm-aurora-data-api-driver": "^2.0.0" "typeorm-aurora-data-api-driver": "^2.0.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
@@ -5489,6 +5490,9 @@
"sqlite3": { "sqlite3": {
"optional": true "optional": true
}, },
"ts-node": {
"optional": true
},
"typeorm-aurora-data-api-driver": { "typeorm-aurora-data-api-driver": {
"optional": true "optional": true
} }
@@ -5517,14 +5521,6 @@
"ieee754": "^1.2.1" "ieee754": "^1.2.1"
} }
}, },
"node_modules/typeorm/node_modules/dotenv": {
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
"integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
"engines": {
"node": ">=10"
}
},
"node_modules/typeorm/node_modules/uuid": { "node_modules/typeorm/node_modules/uuid": {
"version": "8.3.2", "version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
@@ -5543,7 +5539,7 @@
"version": "4.6.3", "version": "4.6.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
"dev": true, "devOptional": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
"tsserver": "bin/tsserver" "tsserver": "bin/tsserver"
@@ -5630,7 +5626,7 @@
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
"integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
"dev": true "devOptional": true
}, },
"node_modules/validator": { "node_modules/validator": {
"version": "13.7.0", "version": "13.7.0",
@@ -5937,25 +5933,11 @@
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true, "devOptional": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/zen-observable": {
"version": "0.8.15",
"resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
"integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
},
"node_modules/zen-observable-ts": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz",
"integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==",
"dependencies": {
"@types/zen-observable": "0.8.3",
"zen-observable": "0.8.15"
}
},
"node_modules/zlib-sync": { "node_modules/zlib-sync": {
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.7.tgz", "resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.7.tgz",
@@ -5979,13 +5961,13 @@
"version": "0.8.0", "version": "0.8.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
"integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
"dev": true "devOptional": true
}, },
"@cspotcode/source-map-support": { "@cspotcode/source-map-support": {
"version": "0.7.0", "version": "0.7.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
"integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
"dev": true, "devOptional": true,
"requires": { "requires": {
"@cspotcode/source-map-consumer": "0.8.0" "@cspotcode/source-map-consumer": "0.8.0"
} }
@@ -6314,25 +6296,25 @@
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
"integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
"dev": true "devOptional": true
}, },
"@tsconfig/node12": { "@tsconfig/node12": {
"version": "1.0.9", "version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
"integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
"dev": true "devOptional": true
}, },
"@tsconfig/node14": { "@tsconfig/node14": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
"integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
"dev": true "devOptional": true
}, },
"@tsconfig/node16": { "@tsconfig/node16": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true "devOptional": true
}, },
"@types/fs-extra": { "@types/fs-extra": {
"version": "9.0.13", "version": "9.0.13",
@@ -6382,11 +6364,6 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"@types/zen-observable": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
"integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
},
"@typescript-eslint/eslint-plugin": { "@typescript-eslint/eslint-plugin": {
"version": "5.16.0", "version": "5.16.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
@@ -6486,7 +6463,7 @@
"version": "8.7.0", "version": "8.7.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
"integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
"dev": true "devOptional": true
}, },
"acorn-jsx": { "acorn-jsx": {
"version": "5.3.2", "version": "5.3.2",
@@ -6499,7 +6476,7 @@
"version": "8.2.0", "version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
"dev": true "devOptional": true
}, },
"agent-base": { "agent-base": {
"version": "6.0.2", "version": "6.0.2",
@@ -6594,7 +6571,7 @@
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true "devOptional": true
}, },
"argparse": { "argparse": {
"version": "2.0.1", "version": "2.0.1",
@@ -7104,7 +7081,7 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
"dev": true "devOptional": true
}, },
"croner": { "croner": {
"version": "4.1.97", "version": "4.1.97",
@@ -7224,7 +7201,7 @@
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true "devOptional": true
}, },
"dir-glob": { "dir-glob": {
"version": "3.0.1", "version": "3.0.1",
@@ -8579,7 +8556,7 @@
"version": "1.3.6", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true "devOptional": true
}, },
"marked": { "marked": {
"version": "4.0.12", "version": "4.0.12",
@@ -8588,12 +8565,12 @@
"dev": true "dev": true
}, },
"markov-strings-db": { "markov-strings-db": {
"version": "4.1.5", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.5.tgz", "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.2.0.tgz",
"integrity": "sha512-p37FSQxXFUnHQfdp4OOljxs+aomNHK8avGVzZZy8Xjl4HEy7JB/v8f+isbhddyjSXewSjqyFwwcoh4TuZj2NTQ==", "integrity": "sha512-KlPmvQC5s/lonqn5syB1d+KYs1eREmc3BswSRQCPJARZJzu/zqVbEMB9FoKd6PvlAFiJE9LH15z3kJg0GijLBA==",
"requires": { "requires": {
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"typeorm": "^0.2.41" "typeorm": "^0.3.3"
} }
}, },
"merge2": { "merge2": {
@@ -9858,7 +9835,7 @@
"version": "10.7.0", "version": "10.7.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
"integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
"dev": true, "devOptional": true,
"requires": { "requires": {
"@cspotcode/source-map-support": "0.7.0", "@cspotcode/source-map-support": "0.7.0",
"@tsconfig/node10": "^1.0.7", "@tsconfig/node10": "^1.0.7",
@@ -9993,27 +9970,27 @@
} }
}, },
"typeorm": { "typeorm": {
"version": "0.2.45", "version": "0.3.3",
"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.45.tgz", "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.3.tgz",
"integrity": "sha512-c0rCO8VMJ3ER7JQ73xfk0zDnVv0WDjpsP6Q1m6CVKul7DB9iVdWLRjPzc8v2eaeBuomsbZ2+gTaYr8k1gm3bYA==", "integrity": "sha512-01gesp6ikGMLGUxBDzEn4qcIiVW3gWzZsUPE6ETqzSRuHL4pCAWHvTPELN1agirBJrZNxhxiVFUXCmnPXYNfrg==",
"requires": { "requires": {
"@sqltools/formatter": "^1.2.2", "@sqltools/formatter": "^1.2.2",
"app-root-path": "^3.0.0", "app-root-path": "^3.0.0",
"buffer": "^6.0.3", "buffer": "^6.0.3",
"chalk": "^4.1.0", "chalk": "^4.1.0",
"cli-highlight": "^2.1.11", "cli-highlight": "^2.1.11",
"debug": "^4.3.1", "date-fns": "^2.28.0",
"dotenv": "^8.2.0", "debug": "^4.3.3",
"glob": "^7.1.6", "dotenv": "^16.0.0",
"js-yaml": "^4.0.0", "glob": "^7.2.0",
"js-yaml": "^4.1.0",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"sha.js": "^2.4.11", "sha.js": "^2.4.11",
"tslib": "^2.1.0", "tslib": "^2.3.1",
"uuid": "^8.3.2", "uuid": "^8.3.2",
"xml2js": "^0.4.23", "xml2js": "^0.4.23",
"yargs": "^17.0.1", "yargs": "^17.3.1"
"zen-observable-ts": "^1.0.0"
}, },
"dependencies": { "dependencies": {
"buffer": { "buffer": {
@@ -10025,11 +10002,6 @@
"ieee754": "^1.2.1" "ieee754": "^1.2.1"
} }
}, },
"dotenv": {
"version": "8.6.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
"integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
},
"uuid": { "uuid": {
"version": "8.3.2", "version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
@@ -10047,7 +10019,7 @@
"version": "4.6.3", "version": "4.6.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
"integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
"dev": true "devOptional": true
}, },
"unbox-primitive": { "unbox-primitive": {
"version": "1.0.1", "version": "1.0.1",
@@ -10110,7 +10082,7 @@
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
"integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==", "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
"dev": true "devOptional": true
}, },
"validator": { "validator": {
"version": "13.7.0", "version": "13.7.0",
@@ -10347,21 +10319,7 @@
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true "devOptional": true
},
"zen-observable": {
"version": "0.8.15",
"resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
"integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
},
"zen-observable-ts": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz",
"integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==",
"requires": {
"@types/zen-observable": "0.8.3",
"zen-observable": "0.8.15"
}
}, },
"zlib-sync": { "zlib-sync": {
"version": "0.1.7", "version": "0.1.7",

View File

@@ -1,13 +1,13 @@
{ {
"name": "markov-discord", "name": "markov-discord",
"version": "2.0.2", "version": "2.1.0",
"description": "A conversational Markov chain bot for Discord", "description": "A conversational Markov chain bot for Discord",
"main": "dist/index.js", "main": "dist/index.js",
"scripts": { "scripts": {
"start": "NODE_ENV=production pm2 start --no-daemon dist/index.js", "start": "NODE_ENV=production pm2 start --no-daemon dist/index.js",
"start:ts": "ts-node src/index.ts", "start:ts": "ts-node src/index.ts",
"build": "rimraf dist && tsc", "build": "rimraf dist && tsc",
"lint": "tsc --noEmit && eslint **/*.ts *.js", "lint": "tsc --noEmit && eslint .",
"docker:build": "docker build . -t charlocharlie/markov-discord:latest --target deploy", "docker:build": "docker build . -t charlocharlie/markov-discord:latest --target deploy",
"docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/app/config charlocharlie/markov-discord:latest", "docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/app/config charlocharlie/markov-discord:latest",
"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js", "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
@@ -45,13 +45,13 @@
"erlpack": "github:discord/erlpack", "erlpack": "github:discord/erlpack",
"fs-extra": "^10.0.1", "fs-extra": "^10.0.1",
"json5": "^2.2.1", "json5": "^2.2.1",
"markov-strings-db": "^4.1.5", "markov-strings-db": "^4.2.0",
"pino": "^7.9.2", "pino": "^7.9.2",
"pino-pretty": "^7.6.0", "pino-pretty": "^7.6.0",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"simple-eta": "^3.0.2", "simple-eta": "^3.0.2",
"source-map-support": "^0.5.21", "source-map-support": "^0.5.21",
"typeorm": "^0.2.45", "typeorm": "^0.3.3",
"utf-8-validate": "^5.0.9", "utf-8-validate": "^5.0.9",
"zlib-sync": "^0.1.7" "zlib-sync": "^0.1.7"
}, },

View File

@@ -6,7 +6,7 @@ import Markov, {
MarkovConstructorOptions, MarkovConstructorOptions,
AddDataProps, AddDataProps,
} from 'markov-strings-db'; } from 'markov-strings-db';
import { createConnection } from 'typeorm'; import { DataSource } from 'typeorm';
import { MarkovInputData } from 'markov-strings-db/dist/src/entity/MarkovInputData'; import { MarkovInputData } from 'markov-strings-db/dist/src/entity/MarkovInputData';
import type { PackageJsonPerson } from 'types-package-json'; import type { PackageJsonPerson } from 'types-package-json';
import makeEta from 'simple-eta'; import makeEta from 'simple-eta';
@@ -27,6 +27,7 @@ import {
trainCommand, trainCommand,
} from './deploy-commands'; } from './deploy-commands';
import { getRandomElement, getVersion, packageJson } from './util'; import { getRandomElement, getVersion, packageJson } from './util';
import ormconfig from './ormconfig';
interface MarkovDataCustom { interface MarkovDataCustom {
attachments: string[]; attachments: string[];
@@ -87,7 +88,7 @@ function getGuildChannelId(channel: Discord.TextBasedChannel): string | null {
async function isValidChannel(channel: Discord.TextBasedChannel): Promise<boolean> { async function isValidChannel(channel: Discord.TextBasedChannel): Promise<boolean> {
const channelId = getGuildChannelId(channel); const channelId = getGuildChannelId(channel);
if (!channelId) return false; if (!channelId) return false;
const dbChannel = await Channel.findOne(channelId); const dbChannel = await Channel.findOneBy({ id: channelId });
return dbChannel?.listen || false; return dbChannel?.listen || false;
} }
@@ -97,7 +98,7 @@ function isHumanAuthoredMessage(message: Discord.Message | Discord.PartialMessag
async function getValidChannels(guild: Discord.Guild): Promise<Discord.TextChannel[]> { async function getValidChannels(guild: Discord.Guild): Promise<Discord.TextChannel[]> {
L.trace('Getting valid channels from database'); L.trace('Getting valid channels from database');
const dbChannels = await Channel.find({ guild: Guild.create({ id: guild.id }), listen: true }); const dbChannels = await Channel.findBy({ guild: { id: guild.id }, listen: true });
L.trace({ dbChannels: dbChannels.map((c) => c.id) }, 'Valid channels from database'); L.trace({ dbChannels: dbChannels.map((c) => c.id) }, 'Valid channels from database');
const channels = ( const channels = (
await Promise.all( await Promise.all(
@@ -864,8 +865,9 @@ client.on('interactionCreate', async (interaction) => {
* Loads the config settings from disk * Loads the config settings from disk
*/ */
async function main(): Promise<void> { async function main(): Promise<void> {
const connection = await Markov.extendConnectionOptions(); const dataSourceOptions = Markov.extendDataSourceOptions(ormconfig);
await createConnection(connection); const dataSource = new DataSource(dataSourceOptions);
await dataSource.initialize();
await client.login(config.token); await client.login(config.token);
} }

38
src/ormconfig.ts Normal file
View File

@@ -0,0 +1,38 @@
import { DataSourceOptions } from 'typeorm';
import { Channel } from './entity/Channel';
import { Guild } from './entity/Guild';
import { CreateTables1640838214672 } from './migration/1640838214672-CreateTables';
const ENTITIES = [Channel, Guild];
const MIGRATIONS = [CreateTables1640838214672];
// const SUBSCRIBERS = [];
const devConfig: DataSourceOptions = {
type: 'better-sqlite3',
database: process.env.CONFIG_DIR
? `${process.env.CONFIG_DIR}/db/db.sqlite3`
: 'config/db/db.sqlite3',
synchronize: true,
migrationsRun: false,
// logging: 'all',
entities: ENTITIES,
migrations: MIGRATIONS,
// subscribers: SUBSCRIBERS,
};
const prodConfig: DataSourceOptions = {
type: 'better-sqlite3',
database: process.env.CONFIG_DIR
? `${process.env.CONFIG_DIR}/db/db.sqlite3`
: 'config/db/db.sqlite3',
synchronize: false,
logging: false,
entities: ENTITIES,
migrations: MIGRATIONS,
migrationsRun: true,
// subscribers: SUBSCRIBERS,
};
const finalConfig = process.env.NODE_ENV !== 'production' ? devConfig : prodConfig;
export default finalConfig;