Add logger + lint

This commit is contained in:
Barry Low committed 2018-10-11 16:16:29 -07:00
1 parent 401fb88e0e
commit 7e6f987e2a
7 files changed
+197 -25

No files matched your search

+126 -3
View File
@@ -97,6 +97,17 @@
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
}
}
},
"@babel/generator": {
@@ -895,6 +906,17 @@
"debug": "^3.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.10"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
}
}
},
"@babel/types": {
@@ -4356,6 +4378,16 @@
"object-assign": "^4.1.1"
}
},
"cross-env": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
"integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==",
"dev": true,
"requires": {
"cross-spawn": "^6.0.5",
"is-windows": "^1.0.0"
}
},
"cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -4693,9 +4725,10 @@
"integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg=="
},
"debug": {
"version": "3.2.5",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz",
"integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==",
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
"integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
@@ -8934,6 +8967,16 @@
"mkdirp": "^0.5.1",
"rimraf": "^2.6.1",
"source-map": "^0.5.3"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
}
}
},
"istanbul-reports": {
@@ -14318,6 +14361,17 @@
"strip-json-comments": "~2.0.1",
"table": "4.0.2",
"text-table": "~0.2.0"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
}
}
},
"eslint-scope": {
@@ -14483,6 +14537,17 @@
"strip-json-comments": "~2.0.1",
"table": "4.0.2",
"text-table": "~0.2.0"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
}
}
},
"eslint-scope": {
@@ -15364,6 +15429,19 @@
"supports-color": "^5.3.0"
}
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
@@ -16739,6 +16817,17 @@
"dev": true,
"requires": {
"debug": "^3.1.0"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
}
}
},
"scss-tokenizer": {
@@ -17629,6 +17718,14 @@
"readable-stream": "^2.3.5"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -18944,6 +19041,15 @@
"lodash": "^4.17.4"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"eslint-scope": {
"version": "3.7.3",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
@@ -19273,6 +19379,14 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
"integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"del": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
@@ -19599,6 +19713,15 @@
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"decamelize": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
+2
View File
@@ -5,6 +5,7 @@
"main": "src/index.js",
"scripts": {
"dev": "NODE_ENV=development webpack-serve --port 3100 --config ./webpack.config.js",
"build": "cross-env NODE_ENV=production webpack --mode production --config ./webpack.config.js",
"lint": "prettier-standard 'src/**/*.js'"
},
"repository": {
@@ -31,6 +32,7 @@
"babel-plugin-dynamic-import-node": "^2.2.0",
"connect-history-api-fallback": "^1.5.0",
"css-loader": "^1.0.0",
"debug": "^4.1.0",
"dotenv-webpack": "^1.5.7",
"eslint": "^5.6.1",
"eslint-config-standard": "^12.0.0",
+24 -15
View File
@@ -1,8 +1,9 @@
import Auth0Lock from 'auth0-lock'
import gql from 'graphql-tag'
import { getItem, setItem, removeItem } from '../utils/local-storage'
import { getItem, setItem } from '../utils/local-storage'
import { validObject, deleteCookie } from '../utils/js-helpers'
import Log from '../utils/log'
import { client } from '../graphql/apollo'
@@ -10,7 +11,7 @@ import { AUTH_CONFIG } from './Auth0' // create by renaming Auth0.sample.js to A
const AUTHENTICATE = gql`
mutation authenticate($idToken: String!) {
TeamsModuleauthenticate(idToken: $idToken) {
TeamsModuleAuthenticate(idToken: $idToken) {
alias
authId
}
@@ -60,7 +61,11 @@ export const inviteOptions = {
prefill: { email: '' }
}
let lock = new Auth0Lock(AUTH_CONFIG.clientId, AUTH_CONFIG.domain, defaultOptions)
let lock = new Auth0Lock(
AUTH_CONFIG.clientId,
AUTH_CONFIG.domain,
defaultOptions
)
class Auth {
constructor (cb, apolloClient) {
@@ -77,6 +82,7 @@ class Auth {
login () {
// Call the show method to display the widget.
Log.info('logging in')
lock.show()
}
@@ -89,17 +95,23 @@ class Auth {
variables: { token: jwt }
})
console.log('loginInvite auth: ', await data.data.verifyTeamInvite)
Log.info('auth.loginInvite')
Log.info(await data.data.verifyTeamInvite)
setItem('invite', JSON.stringify(data.data.verifyTeamInvite))
email = data.data.verifyTeamInvite.email
team = data.data.verifyTeamInvite.team.slug
} catch (err) {
return console.log('loginInvite err: ', err)
return Log.error(err, 'loginInvite err: ')
}
inviteOptions.prefill.email = email
inviteOptions.auth.params.state = `${email}|${team}`
let lockInvite = new Auth0Lock(AUTH_CONFIG.clientId, AUTH_CONFIG.domain, inviteOptions)
let lockInvite = new Auth0Lock(
AUTH_CONFIG.clientId,
AUTH_CONFIG.domain,
inviteOptions
)
lockInvite.show()
}
@@ -151,7 +163,8 @@ class Auth {
idToken: authResult.idToken,
expiresAt
}
console.log('setSession idTokenPayload: ', authResult.idTokenPayload)
Log.info('setSession idTokenPayload:')
Log.info(authResult.idTokenPayload)
this.signinOrCreateAccount({ ...data })
this.cb(data)
@@ -173,10 +186,11 @@ class Auth {
mutation: AUTHENTICATE,
variables: { idToken }
})
Log.info('auth.signinOrCreateAccount data:')
Log.info(await data)
const user = {
authId: data.data.authenticate.authId,
alias: data.data.authenticate.alias
authId: await data.TeamsModuleAuthenticate.authId,
alias: await data.TeamsModuleAuthenticate.alias
}
setItem('user', JSON.stringify(user))
if (window.location.href.includes(`callback`)) {
@@ -190,11 +204,6 @@ class Auth {
logout () {
// Clear access token and ID token from local storage
removeItem('access_token')
removeItem('id_token')
removeItem('expires_at')
removeItem('authUser')
removeItem('auth0.ssodata')
window.localStorage.clear()
deleteCookie('ajs_anonymous_id')
deleteCookie('ajs_user_id')
+4
View File
@@ -4,6 +4,10 @@ import ReactDOM from 'react-dom'
import MasterApp from './App'
if (process.env.NODE_ENV !== 'production') {
localStorage.setItem('debug', 'advanced-algos:*')
}
ReactDOM.render(<MasterApp />, document.getElementById('root'))
let frontendReloadCount = 0
+1 -5
View File
@@ -2,8 +2,4 @@ const getItem = async name => window.localStorage.getItem(name)
const setItem = async (name, value) => window.localStorage.setItem(name, value)
const removeItem = async name => window.localStorage.removeItem(name)
export {
getItem,
setItem,
removeItem
}
export { getItem, setItem, removeItem }
+39
View File
@@ -0,0 +1,39 @@
import debug from 'debug'
const BASE = 'advanced-algos'
const COLOURS = {
info: 'blue',
warn: 'orange',
error: 'red'
}
class Log {
generateMessage (level, message, source) {
// Set the prefix which will cause debug to enable the message
const namespace = `${BASE}:${level}`
const createDebug = debug(namespace)
// Set the colour of the message based on the level
createDebug.color = COLOURS[level]
if (source) {
createDebug(source, message)
} else {
createDebug(message)
}
}
info (message, source) {
return this.generateMessage('info', message, source)
}
warn (message, source) {
return this.generateMessage('warn', message, source)
}
error (message, source) {
return this.generateMessage('error', message, source)
}
}
export default new Log()
+1 -2
View File
@@ -68,9 +68,8 @@ const Footer = ({ classes }) => {
</NavLink>
</Grid>
<Grid item xs>
<Typography variant='h6' color='textPrimary' gutterBottom>
Support
Support
</Typography>
<a