mirror of
https://github.com/roleypoly/roleypoly-v1.git
synced 2025-04-25 04:09:12 +00:00
Merge pull request #64 from kayteh/modernize-deps
chore: modernize deps
This commit is contained in:
commit
3ee2e01d0d
28 changed files with 20598 additions and 15468 deletions
36
Dockerfile
36
Dockerfile
|
@ -1,18 +1,32 @@
|
|||
FROM node:10 AS builder
|
||||
# ENV NODE_ENV production
|
||||
COPY ./UI /src/UI
|
||||
RUN cd /src/UI && yarn && yarn build
|
||||
FROM node:12-alpine AS base
|
||||
|
||||
COPY ./Server /src/Server
|
||||
RUN cd /src/Server && yarn
|
||||
FROM base AS uibase
|
||||
WORKDIR /src/UI
|
||||
|
||||
RUN cp -r /src/UI/build /src/Server/public
|
||||
FROM base AS serverbase
|
||||
WORKDIR /src/Server
|
||||
RUN apk add --no-cache git python build-base
|
||||
|
||||
FROM uibase AS uideps
|
||||
COPY ./UI/package-lock.json ./UI/package.json ./
|
||||
RUN npm ci
|
||||
|
||||
FROM mhart/alpine-node:10
|
||||
FROM serverbase AS serverdeps
|
||||
COPY ./Server/package-lock.json ./Server/package.json ./
|
||||
RUN npm ci
|
||||
|
||||
FROM uideps AS uibuild
|
||||
COPY ./UI .
|
||||
RUN npm run build
|
||||
|
||||
FROM scratch AS combined
|
||||
COPY ./Server/ /src/Server
|
||||
COPY --from=serverdeps /src/Server/node_modules /src/Server/node_modules
|
||||
COPY --from=uibuild /src/UI/build /src/Server/public
|
||||
|
||||
FROM base
|
||||
ENV NODE_ENV production
|
||||
WORKDIR /dist
|
||||
EXPOSE 6769
|
||||
RUN npm i -g pm2
|
||||
COPY --from=builder /src/Server /dist
|
||||
CMD pm2-docker index.js
|
||||
COPY --from=combined /src/Server /dist
|
||||
CMD node index.js
|
5062
Server/package-lock.json
generated
Normal file
5062
Server/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -10,32 +10,33 @@
|
|||
"pm2": "pm2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@discordjs/uws": "^11.149.1",
|
||||
"@discordjs/uws": "^10.149.0",
|
||||
"@roleypoly/rpc": "^3.0.0-alpha.12",
|
||||
"chalk": "^2.4.2",
|
||||
"discord.js": "^11.4.2",
|
||||
"dotenv": "^7.0.0",
|
||||
"discord.js": "^11.5.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"erlpack": "github:discordapp/erlpack",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-config-standard": "^12.0.0",
|
||||
"glob": "^7.1.3",
|
||||
"eslint": "^6.6.0",
|
||||
"eslint-config-standard": "^14.1.0",
|
||||
"glob": "^7.1.6",
|
||||
"immutable": "^4.0.0-rc.12",
|
||||
"koa": "^2.7.0",
|
||||
"koa": "^2.11.0",
|
||||
"koa-better-router": "^2.1.1",
|
||||
"koa-bodyparser": "^4.2.1",
|
||||
"koa-compress": "^3.0.0",
|
||||
"koa-send": "5.0.0",
|
||||
"koa-session": "^5.10.1",
|
||||
"koa-session": "^5.12.3",
|
||||
"koa-static": "^5.0.0",
|
||||
"ksuid": "^1.2.0",
|
||||
"lru-cache": "^5.1.1",
|
||||
"pg": "^7.9.0",
|
||||
"pg-hstore": "^2.3.2",
|
||||
"pg": "^7.13.0",
|
||||
"pg-hstore": "^2.3.3",
|
||||
"pm2": "^3.5.0",
|
||||
"sequelize": "^5.21.1",
|
||||
"socket.io": "^2.2.0",
|
||||
"superagent": "^5.0.2",
|
||||
"uuid": "^3.3.2"
|
||||
"sequelize": "^5.21.2",
|
||||
"socket.io": "^2.3.0",
|
||||
"superagent": "^5.1.0",
|
||||
"uuid": "^3.3.3",
|
||||
"zucc": "^0.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"prettier": "^1.19.1"
|
||||
|
|
3855
Server/yarn.lock
3855
Server/yarn.lock
File diff suppressed because it is too large
Load diff
1
UI/.prettierignore
Normal file
1
UI/.prettierignore
Normal file
|
@ -0,0 +1 @@
|
|||
build
|
|
@ -1,2 +0,0 @@
|
|||
const { override, addDecoratorsLegacy } = require("customize-cra");
|
||||
module.exports = override(addDecoratorsLegacy());
|
15401
UI/package-lock.json
generated
Normal file
15401
UI/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -3,35 +3,34 @@
|
|||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"color": "^3.1.0",
|
||||
"history": "^4.7.2",
|
||||
"color": "^3.1.2",
|
||||
"history": "^4.10.1",
|
||||
"immutable": "^3.8.2",
|
||||
"moment": "^2.22.2",
|
||||
"prop-types": "^15.6.2",
|
||||
"react": "^16.6.3",
|
||||
"moment": "^2.24.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.12.0",
|
||||
"react-custom-scrollbars": "^4.2.1",
|
||||
"react-dnd": "^7.0.0",
|
||||
"react-dnd-html5-backend": "^7.0.0",
|
||||
"react-dom": "^16.6.3",
|
||||
"react-dom": "^16.12.0",
|
||||
"react-immutable-proptypes": "^2.1.0",
|
||||
"react-redux": "^5.1.1",
|
||||
"react-redux": "^7.1.3",
|
||||
"react-router": "^4.3.1",
|
||||
"react-router-dom": "^4.3.1",
|
||||
"react-router-redux": "^5.0.0-alpha.8",
|
||||
"react-scripts": "2.1.8",
|
||||
"react-typist": "^2.0.4",
|
||||
"react-scripts": "3.2.0",
|
||||
"react-typist": "^2.0.5",
|
||||
"react-typist-cycle": "^0.1.2",
|
||||
"redux": "^4.0.1",
|
||||
"redux": "^4.0.4",
|
||||
"redux-logger": "^3.0.6",
|
||||
"redux-thunk": "^2.3.0",
|
||||
"superagent": "^5.0.2",
|
||||
"uuid": "^3.3.2"
|
||||
"superagent": "^5.1.0",
|
||||
"uuid": "^3.3.3"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-app-rewired start",
|
||||
"build": "react-app-rewired build",
|
||||
"test": "react-app-rewired test",
|
||||
"eject": "react-app-rewired eject",
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"lint:prettier": "prettier -c '**/*.{ts,tsx,css,yml,yaml,md,json,js,jsx}'"
|
||||
},
|
||||
"eslintConfig": {
|
||||
|
@ -45,20 +44,14 @@
|
|||
],
|
||||
"proxy": "http://localhost:6769",
|
||||
"devDependencies": {
|
||||
"@babel/plugin-proposal-decorators": "^7.4.0",
|
||||
"customize-cra": "^0.2.12",
|
||||
"eslint-config-standard": "^12.0.0",
|
||||
"eslint-plugin-import": "^2.14.0",
|
||||
"eslint-plugin-node": "^8.0.0",
|
||||
"eslint-plugin-promise": "^4.0.1",
|
||||
"eslint-plugin-react": "^7.11.1",
|
||||
"eslint-plugin-standard": "^4.0.0",
|
||||
"node-sass-chokidar": "^1.3.4",
|
||||
"prettier": "^1.19.1",
|
||||
"react-app-rewire-scss": "^1.0.2",
|
||||
"react-app-rewired": "^2.1.1",
|
||||
"redux-devtools": "^3.4.1",
|
||||
"redux-devtools-dock-monitor": "^1.1.3",
|
||||
"redux-devtools-log-monitor": "^1.4.0"
|
||||
"@babel/plugin-proposal-decorators": "^7.7.0",
|
||||
"eslint-config-standard": "^14.1.0",
|
||||
"eslint-plugin-import": "^2.18.2",
|
||||
"eslint-plugin-node": "^10.0.0",
|
||||
"eslint-plugin-promise": "^4.2.1",
|
||||
"eslint-plugin-react": "^7.16.0",
|
||||
"eslint-plugin-standard": "^4.0.1",
|
||||
"node-sass-chokidar": "^1.4.0",
|
||||
"prettier": "^1.19.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,39 +1,36 @@
|
|||
import React, { Component } from 'react'
|
||||
import { Provider } from 'react-redux'
|
||||
import { ConnectedRouter } from 'react-router-redux'
|
||||
import { DragDropContext } from 'react-dnd'
|
||||
import HTML5Backend from 'react-dnd-html5-backend'
|
||||
import createHistory from 'history/createBrowserHistory'
|
||||
import configureStore from './store/configureStore'
|
||||
import './App.css'
|
||||
import './generic.sass'
|
||||
|
||||
import { Router } from 'react-router-dom'
|
||||
import Wrapper from './components/wrapper'
|
||||
import AppRouter from './router'
|
||||
import { userInit } from './actions'
|
||||
import { history } from './router/history'
|
||||
|
||||
const history = createHistory()
|
||||
const store = configureStore(undefined, history)
|
||||
const store = configureStore(undefined)
|
||||
|
||||
window.__APP_STORE__ = store
|
||||
|
||||
@DragDropContext(HTML5Backend)
|
||||
class App extends Component {
|
||||
componentWillMount() {
|
||||
class _App extends Component {
|
||||
componentDidMount() {
|
||||
store.dispatch(userInit)
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<Provider store={store}>
|
||||
<ConnectedRouter history={history}>
|
||||
<Router history={history}>
|
||||
<Wrapper>
|
||||
<AppRouter />
|
||||
</Wrapper>
|
||||
</ConnectedRouter>
|
||||
</Router>
|
||||
</Provider>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default App
|
||||
export default DragDropContext(HTML5Backend)(_App)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import superagent from 'superagent'
|
||||
import { push } from 'react-router-redux'
|
||||
import { history } from '../router/history'
|
||||
|
||||
export const fetchServers = async dispatch => {
|
||||
const rsp = await superagent.get('/api/servers')
|
||||
|
@ -79,7 +79,7 @@ const poll = (dispatch, getState) => {
|
|||
const upd = newServers.keySeq().toSet()
|
||||
const newSrv = upd.subtract(old)
|
||||
stopPolling()
|
||||
dispatch(push(`/s/${newSrv.toJS()[0]}/edit`))
|
||||
history.push(`/s/${newSrv.toJS()[0]}/edit`)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,11 +2,10 @@ import React, { Component } from 'react'
|
|||
import { connect } from 'react-redux'
|
||||
import superagent from 'superagent'
|
||||
|
||||
@connect()
|
||||
class OauthCallback extends Component {
|
||||
state = {
|
||||
notReady: true,
|
||||
message: 'chotto matte kudasai...',
|
||||
message: 'giving discord the good news...',
|
||||
url: null,
|
||||
}
|
||||
|
||||
|
@ -29,4 +28,4 @@ class OauthCallback extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default OauthCallback
|
||||
export default connect()(OauthCallback)
|
||||
|
|
|
@ -4,11 +4,10 @@ import superagent from 'superagent'
|
|||
import { connect } from 'react-redux'
|
||||
import { fetchServers } from '../../actions'
|
||||
|
||||
@connect()
|
||||
class OauthCallback extends Component {
|
||||
state = {
|
||||
notReady: true,
|
||||
message: 'chotto matte kudasai...',
|
||||
message: 'shaking hands with discord...',
|
||||
redirect: '/s',
|
||||
}
|
||||
|
||||
|
@ -84,4 +83,4 @@ class OauthCallback extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default OauthCallback
|
||||
export default connect()(OauthCallback)
|
||||
|
|
|
@ -5,11 +5,10 @@ import { connect } from 'react-redux'
|
|||
import uuidv4 from 'uuid/v4'
|
||||
import { fetchServers } from '../../actions'
|
||||
|
||||
@connect()
|
||||
class OauthCallback extends Component {
|
||||
state = {
|
||||
notReady: true,
|
||||
message: 'chotto matte kudasai...',
|
||||
message: 'sending you to discord...',
|
||||
redirect: '/s',
|
||||
url: null,
|
||||
}
|
||||
|
@ -83,4 +82,4 @@ class OauthCallback extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default OauthCallback
|
||||
export default connect()(OauthCallback)
|
||||
|
|
|
@ -1,29 +1,8 @@
|
|||
import React, { Component } from 'react'
|
||||
import { DropTarget } from 'react-dnd'
|
||||
|
||||
import Role from '../role/draggable'
|
||||
import CategoryEditor from './CategoryEditor'
|
||||
|
||||
@DropTarget(
|
||||
Symbol.for('dnd: role'),
|
||||
{
|
||||
drop(props, monitor, element) {
|
||||
props.onDrop(monitor.getItem())
|
||||
},
|
||||
canDrop(props, monitor) {
|
||||
return (
|
||||
props.mode !== Symbol.for('edit') && monitor.getItem().category !== props.name
|
||||
)
|
||||
},
|
||||
},
|
||||
(connect, monitor) => ({
|
||||
connectDropTarget: connect.dropTarget(),
|
||||
isOver: monitor.isOver(),
|
||||
isOverCurrent: monitor.isOver({ shallow: true }),
|
||||
canDrop: monitor.canDrop(),
|
||||
itemType: monitor.getItemType(),
|
||||
})
|
||||
)
|
||||
class Category extends Component {
|
||||
render() {
|
||||
const {
|
||||
|
@ -66,4 +45,26 @@ class Category extends Component {
|
|||
)
|
||||
}
|
||||
}
|
||||
export default Category
|
||||
|
||||
const dropTarget = DropTarget(
|
||||
Symbol.for('dnd: role'),
|
||||
{
|
||||
drop(props, monitor, element) {
|
||||
props.onDrop(monitor.getItem())
|
||||
},
|
||||
canDrop(props, monitor) {
|
||||
return (
|
||||
props.mode !== Symbol.for('edit') && monitor.getItem().category !== props.name
|
||||
)
|
||||
},
|
||||
},
|
||||
(connect, monitor) => ({
|
||||
connectDropTarget: connect.dropTarget(),
|
||||
isOver: monitor.isOver(),
|
||||
isOverCurrent: monitor.isOver({ shallow: true }),
|
||||
canDrop: monitor.canDrop(),
|
||||
itemType: monitor.getItemType(),
|
||||
})
|
||||
)
|
||||
|
||||
export default dropTarget(Category)
|
||||
|
|
|
@ -16,8 +16,7 @@ const mapState = ({ rolePicker, roleEditor, servers }, ownProps) => ({
|
|||
server: servers.get(ownProps.match.params.server),
|
||||
})
|
||||
|
||||
@connect(mapState)
|
||||
@DropTarget(
|
||||
const dropTarget = DropTarget(
|
||||
Symbol.for('dnd: role'),
|
||||
{
|
||||
drop(props, monitor, element) {
|
||||
|
@ -36,7 +35,7 @@ const mapState = ({ rolePicker, roleEditor, servers }, ownProps) => ({
|
|||
})
|
||||
)
|
||||
class RoleEditor extends Component {
|
||||
componentWillMount() {
|
||||
componentDidMount() {
|
||||
const {
|
||||
dispatch,
|
||||
match: {
|
||||
|
@ -232,4 +231,4 @@ class RoleEditor extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default RoleEditor
|
||||
export default connect(mapState)(dropTarget(RoleEditor))
|
||||
|
|
|
@ -14,9 +14,8 @@ const mapState = ({ rolePicker, servers }, ownProps) => {
|
|||
}
|
||||
}
|
||||
|
||||
@connect(mapState)
|
||||
class RolePicker extends Component {
|
||||
componentWillMount() {
|
||||
componentDidMount() {
|
||||
const {
|
||||
dispatch,
|
||||
match: {
|
||||
|
@ -207,4 +206,4 @@ class RolePicker extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default RolePicker
|
||||
export default connect(mapState)(RolePicker)
|
||||
|
|
|
@ -1,19 +1,8 @@
|
|||
import React, { Component } from 'react'
|
||||
import { DragSource } from 'react-dnd'
|
||||
|
||||
import Role from './index'
|
||||
|
||||
// @DragSource(Symbol.for('dnd: role'), {
|
||||
// beginDrag ({ role, categoryId }) {
|
||||
// return { role, category: categoryId }
|
||||
// }
|
||||
// },
|
||||
// (connect, monitor) => ({
|
||||
// connectDragSource: connect.dragSource(),
|
||||
// isDragging: monitor.isDragging()
|
||||
// }))
|
||||
export default
|
||||
@DragSource(
|
||||
const dragSource = DragSource(
|
||||
Symbol.for('dnd: role'),
|
||||
{
|
||||
beginDrag({ role, categoryId }) {
|
||||
|
@ -25,8 +14,11 @@ export default
|
|||
isDragging: monitor.isDragging(),
|
||||
})
|
||||
)
|
||||
|
||||
class DraggableRole extends Component {
|
||||
render() {
|
||||
return <Role {...this.props} type="drag" />
|
||||
}
|
||||
}
|
||||
|
||||
export default dragSource(DraggableRole)
|
||||
|
|
|
@ -9,7 +9,7 @@ export default class ServerLanding extends Component {
|
|||
exit: false,
|
||||
}
|
||||
|
||||
async componentWillMount() {
|
||||
async componentDidMount() {
|
||||
console.log(this.props)
|
||||
|
||||
try {
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
import React, { Component } from 'react'
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes'
|
||||
import { NavLink } from 'react-router-dom'
|
||||
import { connect } from 'react-redux'
|
||||
import { NavLink } from 'react-router-dom'
|
||||
import * as Actions from '../../actions'
|
||||
import './UserCard.sass'
|
||||
|
||||
@connect()
|
||||
class UserCard extends Component {
|
||||
static propTypes = {
|
||||
user: ImmutablePropTypes.map,
|
||||
|
@ -67,4 +66,4 @@ class UserCard extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default UserCard
|
||||
export default connect()(UserCard)
|
||||
|
|
|
@ -20,7 +20,6 @@ const mapState = ({ servers, user, appState }) => {
|
|||
}
|
||||
}
|
||||
|
||||
@connect(mapState)
|
||||
class Servers extends Component {
|
||||
get defaultPath() {
|
||||
console.log(this.props.servers.toJS())
|
||||
|
@ -65,4 +64,4 @@ class Servers extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default Servers
|
||||
export default connect(mapState)(Servers)
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
import { combineReducers } from 'redux'
|
||||
|
||||
import servers from './servers'
|
||||
import user from './user'
|
||||
import rolePicker from './role-picker'
|
||||
import roleEditor from './role-editor'
|
||||
import { routerMiddleware } from 'react-router-redux'
|
||||
// import roles from './roles'
|
||||
|
||||
const initialState = {
|
||||
|
@ -36,7 +34,6 @@ const rootReducer = combineReducers({
|
|||
appState,
|
||||
servers,
|
||||
user,
|
||||
router: routerMiddleware,
|
||||
// roles,
|
||||
rolePicker,
|
||||
roleEditor,
|
||||
|
|
3
UI/src/router/history.js
Normal file
3
UI/src/router/history.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
import createHistory from 'history/createBrowserHistory'
|
||||
|
||||
export const history = createHistory()
|
|
@ -9,10 +9,7 @@ import Servers from '../components/servers'
|
|||
import ServerLanding from '../components/servers/ServerLanding'
|
||||
import Pages, { Error404, Landing } from '../pages'
|
||||
|
||||
export default
|
||||
@withRouter
|
||||
@connect(({ appState, user }) => ({ ready: appState.ready, user }))
|
||||
class AppRouter extends Component {
|
||||
class _AppRouter extends Component {
|
||||
render() {
|
||||
const isLoggedIn = this.props.user.get('isLoggedIn')
|
||||
|
||||
|
@ -24,7 +21,7 @@ class AppRouter extends Component {
|
|||
<Switch>
|
||||
{isLoggedIn === true ? (
|
||||
// YES LOGGED IN
|
||||
<Route path="/s" component={Servers} />
|
||||
<Route path="/s" component={() => <Servers />} />
|
||||
) : (
|
||||
// NOT LOGGED IN
|
||||
[
|
||||
|
@ -52,3 +49,7 @@ class AppRouter extends Component {
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default withRouter(
|
||||
connect(({ appState, user }) => ({ ready: appState.ready, user }))(_AppRouter)
|
||||
)
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
import { routerMiddleware } from 'react-router-redux'
|
||||
import { applyMiddleware, compose, createStore } from 'redux'
|
||||
import { createLogger } from 'redux-logger'
|
||||
import thunk from 'redux-thunk'
|
||||
import rootReducer from '../reducers'
|
||||
|
||||
const configureStore = (preloadedState, history) => {
|
||||
const configureStore = preloadedState => {
|
||||
const store = createStore(
|
||||
rootReducer,
|
||||
preloadedState,
|
||||
compose(
|
||||
applyMiddleware(thunk, routerMiddleware(history), createLogger())
|
||||
)
|
||||
compose(applyMiddleware(thunk, createLogger()))
|
||||
)
|
||||
|
||||
if (module.hot) {
|
||||
|
|
|
@ -1,15 +1,10 @@
|
|||
import { createStore, applyMiddleware } from 'redux'
|
||||
import { routerMiddleware } from 'react-router-redux'
|
||||
|
||||
import thunk from 'redux-thunk'
|
||||
// import api from '../middleware/api'
|
||||
import rootReducer from '../reducers'
|
||||
|
||||
const configureStore = (preloadedState, history) =>
|
||||
createStore(
|
||||
rootReducer,
|
||||
preloadedState,
|
||||
applyMiddleware(thunk, routerMiddleware(history))
|
||||
)
|
||||
const configureStore = preloadedState =>
|
||||
createStore(rootReducer, preloadedState, applyMiddleware(thunk))
|
||||
|
||||
export default configureStore
|
||||
|
|
11461
UI/yarn.lock
11461
UI/yarn.lock
File diff suppressed because it is too large
Load diff
8
start.sh
8
start.sh
|
@ -3,12 +3,12 @@
|
|||
docker-compose up -d
|
||||
|
||||
pushd Server
|
||||
yarn
|
||||
yarn dev
|
||||
npm i
|
||||
npm run dev
|
||||
|
||||
popd
|
||||
|
||||
pushd UI
|
||||
yarn
|
||||
yarn start
|
||||
npm i
|
||||
npm start
|
||||
popd
|
Loading…
Add table
Reference in a new issue