feat: add sequelize + mariadb

This commit is contained in:
cha0s 2020-07-03 18:41:40 -05:00
parent 17c62d6446
commit 0fd9e82a38
4 changed files with 176 additions and 1 deletions

1
.gitignore vendored
View File

@ -119,3 +119,4 @@ dist
build
/resources
/var/lib

View File

@ -1,3 +1,4 @@
const {join} = require('path');
const {spawn} = require('child_process');
const copy = require('@neutrinojs/copy');
@ -7,7 +8,37 @@ const {DefinePlugin} = require('webpack');
const {afterPlatform, initial} = require('./middleware');
if (!process.argv.find((arg) => arg === 'production')) {
spawn('docker', ['run', '-p', '11346:6379', 'redis'], {stdio: 'inherit'});
spawn(
'docker',
[
'run',
'--name',
'perseadev_redis',
'-p',
'11346:6379',
'redis'
],
{stdio: 'inherit'}
);
spawn(
'docker',
[
'run',
'--name',
'perseadev_mariadb',
'-p',
'11347:6379',
'-v',
[
join(__dirname, 'var/lib/mariadb'),
'/var/lib/mysql',
].join(':'),
'-e',
'MYSQL_ROOT_PASSWORD=UNSAFE_DEV_PASSWORD',
'mariadb:10',
],
{stdio: 'inherit'}
);
}
module.exports = {
@ -44,3 +75,12 @@ module.exports = {
},
],
};
if (!process.argv.find((arg) => arg === 'production')) {
process.on('SIGINT', function() {
['redis', 'mariadb'].forEach((name) => spawn('docker', ['rm', '-f', `perseadev_${name}`]));
});
process.on('beforeExit', function() {
['redis', 'mariadb'].forEach((name) => spawn('docker', ['rm', '-f', `perseadev_${name}`]));
});
}

View File

@ -40,6 +40,7 @@
"immer": "^7.0.1",
"lodash.debounce": "^4.0.8",
"lodash.memoize": "^4.1.2",
"mariadb": "^2.4.1",
"memorystore": "^1.6.2",
"normalizr": "^3.6.0",
"prop-types": "^15",
@ -52,6 +53,7 @@
"react-tabs": "^3.1.1",
"redux": "^4.0.5",
"scwp": "1.x",
"sequelize": "^6.2.4",
"socket.io-redis": "^5.3.0",
"source-map-support": "^0.5.11"
},

132
yarn.lock
View File

@ -1552,6 +1552,11 @@
resolved "https://npm.i12e.cha0s.io/@types%2fcolor-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
"@types/geojson@^7946.0.7":
version "7946.0.7"
resolved "https://npm.i12e.cha0s.io/@types%2fgeojson/-/geojson-7946.0.7.tgz#c8fa532b60a0042219cdf173ca21a975ef0666ad"
integrity sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==
"@types/glob@^7.1.1":
version "7.1.2"
resolved "https://npm.i12e.cha0s.io/@types%2fglob/-/glob-7.1.2.tgz#06ca26521353a545d94a0adc74f38a59d232c987"
@ -1598,6 +1603,11 @@
resolved "https://npm.i12e.cha0s.io/@types%2fnode/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9"
integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==
"@types/node@^13.9.8":
version "13.13.12"
resolved "https://npm.i12e.cha0s.io/@types%2fnode/-/node-13.13.12.tgz#9c72e865380a7dc99999ea0ef20fc9635b503d20"
integrity sha512-zWz/8NEPxoXNT9YyF2osqyA9WjssZukYpgI4UYZpOjcyqwIUqWGkcCionaEb9Ki+FULyPyvNFpg/329Kd2/pbw==
"@types/prop-types@*":
version "15.7.3"
resolved "https://npm.i12e.cha0s.io/@types%2fprop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
@ -1929,6 +1939,11 @@ ansi-styles@^4.1.0:
"@types/color-name" "^1.1.1"
color-convert "^2.0.1"
any-promise@^1.3.0:
version "1.3.0"
resolved "https://npm.i12e.cha0s.io/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
anymatch@^2.0.0:
version "2.0.0"
resolved "https://npm.i12e.cha0s.io/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
@ -3457,6 +3472,11 @@ delegates@^1.0.0:
resolved "https://npm.i12e.cha0s.io/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
denque@^1.4.1:
version "1.4.1"
resolved "https://npm.i12e.cha0s.io/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf"
integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==
depd@~1.1.2:
version "1.1.2"
resolved "https://npm.i12e.cha0s.io/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@ -3661,6 +3681,11 @@ dot-case@^3.0.3:
no-case "^3.0.3"
tslib "^1.10.0"
dottie@^2.0.0:
version "2.0.2"
resolved "https://npm.i12e.cha0s.io/dottie/-/dottie-2.0.2.tgz#cc91c0726ce3a054ebf11c55fbc92a7f266dd154"
integrity sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==
double-ended-queue@^2.1.0-0:
version "2.1.0-0"
resolved "https://npm.i12e.cha0s.io/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
@ -5174,6 +5199,13 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24:
dependencies:
safer-buffer ">= 2.1.2 < 3"
iconv-lite@^0.5.1:
version "0.5.2"
resolved "https://npm.i12e.cha0s.io/iconv-lite/-/iconv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8"
integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==
dependencies:
safer-buffer ">= 2.1.2 < 3"
icss-utils@^4.0.0, icss-utils@^4.1.1:
version "4.1.1"
resolved "https://npm.i12e.cha0s.io/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
@ -5286,6 +5318,11 @@ infer-owner@^1.0.3:
resolved "https://npm.i12e.cha0s.io/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
inflection@1.12.0:
version "1.12.0"
resolved "https://npm.i12e.cha0s.io/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416"
integrity sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=
inflight@^1.0.4:
version "1.0.6"
resolved "https://npm.i12e.cha0s.io/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@ -6079,6 +6116,11 @@ loglevel@^1.6.8:
resolved "https://npm.i12e.cha0s.io/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171"
integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==
long@^4.0.0:
version "4.0.0"
resolved "https://npm.i12e.cha0s.io/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://npm.i12e.cha0s.io/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
@ -6167,6 +6209,19 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
mariadb@^2.4.1:
version "2.4.1"
resolved "https://npm.i12e.cha0s.io/mariadb/-/mariadb-2.4.1.tgz#dc72d332af467ff653f2e11bbfae27ca131dc7af"
integrity sha512-WTM1EfUfqaLh8NdUdSqwX2HVf0mme9CDkfez35E9Txf+VvUVWOMbZY5dSqGhbDDiVXQFJefuwxb8WHUg6J9M2A==
dependencies:
"@types/geojson" "^7946.0.7"
"@types/node" "^13.9.8"
denque "^1.4.1"
iconv-lite "^0.5.1"
long "^4.0.0"
moment-timezone "^0.5.31"
please-upgrade-node "^3.2.0"
markdown-escapes@^1.0.0:
version "1.0.4"
resolved "https://npm.i12e.cha0s.io/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535"
@ -6429,6 +6484,18 @@ mocha@^7:
yargs-parser "13.1.2"
yargs-unparser "1.6.0"
moment-timezone@^0.5.31:
version "0.5.31"
resolved "https://npm.i12e.cha0s.io/moment-timezone/-/moment-timezone-0.5.31.tgz#9c40d8c5026f0c7ab46eda3d63e49c155148de05"
integrity sha512-+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA==
dependencies:
moment ">= 2.9.0"
"moment@>= 2.9.0", moment@^2.26.0:
version "2.27.0"
resolved "https://npm.i12e.cha0s.io/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d"
integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://npm.i12e.cha0s.io/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@ -7370,6 +7437,13 @@ pkg-up@^2.0.0:
dependencies:
find-up "^2.1.0"
please-upgrade-node@^3.2.0:
version "3.2.0"
resolved "https://npm.i12e.cha0s.io/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
dependencies:
semver-compare "^1.0.0"
poly-decomp@0.3.0:
version "0.3.0"
resolved "https://npm.i12e.cha0s.io/poly-decomp/-/poly-decomp-0.3.0.tgz#aa499289bbc1a4ca2213e966587fa5bffc1ca5f5"
@ -8221,6 +8295,13 @@ ret@~0.1.10:
resolved "https://npm.i12e.cha0s.io/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
retry-as-promised@^3.2.0:
version "3.2.0"
resolved "https://npm.i12e.cha0s.io/retry-as-promised/-/retry-as-promised-3.2.0.tgz#769f63d536bec4783549db0777cb56dadd9d8543"
integrity sha512-CybGs60B7oYU/qSQ6kuaFmRd9sTZ6oXSc0toqePvV74Ac6/IFZSI1ReFQmtCN+uvW1Mtqdwpvt/LGOiCBAY2Mg==
dependencies:
any-promise "^1.3.0"
retry@^0.12.0:
version "0.12.0"
resolved "https://npm.i12e.cha0s.io/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
@ -8400,6 +8481,11 @@ selfsigned@^1.10.7:
dependencies:
node-forge "0.9.0"
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://npm.i12e.cha0s.io/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
version "5.7.1"
resolved "https://npm.i12e.cha0s.io/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@ -8452,6 +8538,30 @@ sentence-case@^2.1.0:
no-case "^2.2.0"
upper-case-first "^1.1.2"
sequelize-pool@^6.0.0:
version "6.0.0"
resolved "https://npm.i12e.cha0s.io/sequelize-pool/-/sequelize-pool-6.0.0.tgz#2b2f6570fb633ecb38a338c4fc266c0e42ce2af7"
integrity sha512-D/VfOX2Z+6JTWqM73lhcqMXp1X4CeqRNVMlndvbOMtyjFAZ2kYzH7rGFGFrLO1r+RZQdc/h+3zQL4nd3cclNLg==
sequelize@^6.2.4:
version "6.2.4"
resolved "https://npm.i12e.cha0s.io/sequelize/-/sequelize-6.2.4.tgz#d6903294177c1df5c2a8b89902d1f76789f0fd70"
integrity sha512-pgb3CC2Dk3kjZ4knuonF6ixpdBxJwPyjmE8metIJ3D6LovAQK+5QG/DesA43OPsWhgo2TYPZst8YsBk/RE1ZyA==
dependencies:
debug "^4.1.1"
dottie "^2.0.0"
inflection "1.12.0"
lodash "^4.17.15"
moment "^2.26.0"
moment-timezone "^0.5.31"
retry-as-promised "^3.2.0"
semver "^7.3.2"
sequelize-pool "^6.0.0"
toposort-class "^1.0.1"
uuid "^8.1.0"
validator "^10.11.0"
wkx "^0.5.0"
serialize-javascript@^2.1.2:
version "2.1.2"
resolved "https://npm.i12e.cha0s.io/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
@ -9268,6 +9378,11 @@ toidentifier@1.0.0:
resolved "https://npm.i12e.cha0s.io/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
toposort-class@^1.0.1:
version "1.0.1"
resolved "https://npm.i12e.cha0s.io/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988"
integrity sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=
tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://npm.i12e.cha0s.io/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
@ -9612,6 +9727,11 @@ uuid@^3.3.2, uuid@^3.4.0:
resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
uuid@^8.1.0:
version "8.2.0"
resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-8.2.0.tgz#cb10dd6b118e2dada7d0cd9730ba7417c93d920e"
integrity sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q==
v8-compile-cache@2.0.3:
version "2.0.3"
resolved "https://npm.i12e.cha0s.io/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
@ -9635,6 +9755,11 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
validator@^10.11.0:
version "10.11.0"
resolved "https://npm.i12e.cha0s.io/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228"
integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==
vary@~1.1.2:
version "1.1.2"
resolved "https://npm.i12e.cha0s.io/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
@ -9876,6 +10001,13 @@ wide-align@1.1.3, wide-align@^1.1.0:
dependencies:
string-width "^1.0.2 || 2"
wkx@^0.5.0:
version "0.5.0"
resolved "https://npm.i12e.cha0s.io/wkx/-/wkx-0.5.0.tgz#c6c37019acf40e517cc6b94657a25a3d4aa33e8c"
integrity sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==
dependencies:
"@types/node" "*"
word-wrap@~1.2.3:
version "1.2.3"
resolved "https://npm.i12e.cha0s.io/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"