diff --git a/.babelrc b/.babelrc index dffb77c..2462698 100644 --- a/.babelrc +++ b/.babelrc @@ -6,6 +6,5 @@ }, "modules": "commonjs" }] - ], - "plugins": ["@babel/plugin-proposal-object-rest-spread"] + ] } diff --git a/Dockerfile b/Dockerfile index 38e420e..11e142a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:9.11.1-alpine +FROM node:10.0.0-alpine WORKDIR /app diff --git a/Dockerfile.dev b/Dockerfile.dev index 241a2c3..2185adf 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:9.11.1-alpine +FROM node:10.0.0-alpine WORKDIR /app diff --git a/app.js b/app.js index 25037be..0cf088f 100644 --- a/app.js +++ b/app.js @@ -16,7 +16,7 @@ import index from './routes/index'; import recent from './routes/recent'; import search from './routes/search'; import share from './routes/share'; -import slack from './routes/slack'; +import { slack, oauth } from './routes/slack'; import errorHandler from './lib/error-handler'; const debug = debuglog('combine.fm'); @@ -60,6 +60,7 @@ app.use(route.get('/:service/:type/:id.:format?', share)); app.use(route.post('/slack', slack)); app.use(route.get('/slack', slack)); +app.use(route.get('/oauth', oauth)); if (!module.parent) { app.listen(process.env.PORT || 3000, () => { diff --git a/docker-compose.yml b/docker-compose.yml index 578a8a7..419ac23 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -49,7 +49,7 @@ services: volumes: - ./:/app:cached - node_modules:/app/node_modules - command: yarn run worker + command: yarn run watch-worker ports: - "3001:3000" database: diff --git a/package.json b/package.json index 1d6f3cd..fcd4ad6 100644 --- a/package.json +++ b/package.json @@ -6,40 +6,41 @@ "scripts": { "build": "webpack --mode=production --config webpack.config.js && webpack --config webpack.config.server.js", "start": "node -r @babel/register app.js", - "worker": "nodemon -x \"node -r @babel/register\" -e js,vue -i node_modules -i chrome/ worker.js", - "test": "mocha -r co-mocha --compilers js:@babel/register test/**/*.js --timeout=15000", - "watch": "parallelshell \"npm run watch-js\" \"npm run watch-server\"", - "watch-js": "parallelshell \"webpack -w -d --config webpack.config.js\" \"webpack -w --config webpack.config.server.js\"", + "worker": "node -r @babel/register worker.js", + "test": "mocha -r co-mocha -r '@babel/register' test/**/*.js --timeout=15000", + "watch": "concurrently -k \"npm:watch-js\" \"npm:watch-server\"", + "watch-js": "concurrently -k -n webpack-frontend,webpack-server \"webpack -w -d --config webpack.config.js\" \"webpack -w --config webpack.config.server.js\"", "watch-server": "nodemon -x \"node -r @babel/register\" -e js,vue -i node_modules -i chrome/ app.js", + "watch-worker": "nodemon -x \"node -r @babel/register\" -e js,vue -i node_modules -i chrome/ worker.js", "heroku-postbuild": "npm run build", "initdb": "node -r @babel/register test/initdb.js" }, "engines": { - "node": "^9.11.1" + "node": "^10.0.0" }, "dependencies": { - "@babel/cli": "^7.0.0-beta.44", - "@babel/core": "^7.0.0-beta.44", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0-beta.44", - "@babel/polyfill": "^7.0.0-beta.44", - "@babel/preset-env": "^7.0.0-beta.44", - "@babel/register": "^7.0.0-beta.44", + "@babel/cli": "^7.0.0-beta.46", + "@babel/core": "^7.0.0-beta.46", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0-beta.46", + "@babel/polyfill": "^7.0.0-beta.46", + "@babel/preset-env": "^7.0.0-beta.46", + "@babel/register": "^7.0.0-beta.46", "amazon-product-api": "^0.4.4", "apple-music-jwt": "^0.2.0", "babel-loader": "^8.0.0-beta.2", "bluebird": "^3.5.1", - "bulma": "^0.7.0", + "bulma": "^0.7.1", "co": "~4.6.0", "css-loader": "^0.28.11", "debug": "^3.1.0", - "ejs": "^2.5.8", + "ejs": "^2.5.9", "extract-text-webpack-plugin": "^4.0.0-beta.0", "file-loader": "^1.1.11", "iso8601-duration": "^1.1.1", "kcors": "^2.2.1", - "koa": "^2.5.0", + "koa": "^2.5.1", "koa-bodyparser": "^4.2.0", - "koa-compress": "~2.0.0", + "koa-compress": "~3.0.0", "koa-favicon": "~2.0.1", "koa-file-server": "~2.3.1", "koa-logger": "~3.2.0", @@ -48,37 +49,37 @@ "koa-views": "^6.1.4", "koa-websocket": "^4.1.0", "kue": "^0.11.6", - "moment": "^2.22.0", + "moment": "^2.22.1", "node-uuid": "~1.4.2", "nodebrainz": "^2.1.1", "pg": "^7.4.1", "playmusic": "^2.3.0", - "raven": "^2.5.0", + "raven": "^2.6.0", "sequelize": "^4.37.6", - "spotify-web-api-node": "^3.0.0", - "style-loader": "^0.20.3", + "spotify-web-api-node": "^3.1.0", + "style-loader": "^0.21.0", "superagent": "^3.8.2", - "uglifyjs-webpack-plugin": "^1.2.4", + "uglifyjs-webpack-plugin": "^1.2.5", "vue": "^2.5.16", - "vue-loader": "^14.2.2", + "vue-loader": "^15.0.4", "vue-router": "^3.0.1", "vue-server-renderer": "^2.5.16", "vue-template-compiler": "^2.5.16", "vuex": "^3.0.1", "vuex-router-sync": "^5.0.0", - "webpack": "^4.5.0", - "webpack-cli": "^2.0.14", + "webpack": "^4.6.0", + "webpack-cli": "^2.0.15", "webpack-stats-plugin": "^0.2.1" }, "devDependencies": { "co-mocha": "^1.2.2", + "concurrently": "^3.5.1", "eslint": "^4.19.1", "eslint-config-airbnb": "^16.1.0", "eslint-plugin-import": "^2.11.0", "istanbul": "^0.4.0", - "mocha": "^5.0.5", + "mocha": "^5.1.1", "nodemon": "^1.17.3", - "parallelshell": "^3.0.2", "should": "^13.2.1" } } diff --git a/public/src/app.vue b/public/src/app.vue index f3bc503..c629f24 100644 --- a/public/src/app.vue +++ b/public/src/app.vue @@ -1,6 +1,6 @@