Comparing version 0.1.3 to 0.1.4
@@ -39,3 +39,4 @@ 'use strict'; | ||
var config = _extends({ | ||
credentials: ['email', 'password'] | ||
credentials: ['email', 'password'], | ||
clearErrorOnChange: true | ||
}, c); | ||
@@ -65,3 +66,9 @@ var defaultCredentials = config.credentials.reduce(function (r, c) { | ||
return function (e) { | ||
var value = e.target.value; | ||
var value = e; | ||
if (e && e.target instanceof Element) { | ||
value = e.target.value; | ||
} | ||
if (_this.props.error && config.clearErrorOnChange) { | ||
_this.props.clearLoginError(); | ||
} | ||
_this.setState(function (prevState) { | ||
@@ -68,0 +75,0 @@ return { |
@@ -20,3 +20,3 @@ 'use strict'; | ||
var defaultMakeErrorFromException = function defaultMakeErrorFromException(ex) { | ||
return !ex ? null : ex.message ? ex.message : ex; | ||
return ex; | ||
}; | ||
@@ -45,2 +45,4 @@ | ||
refreshTokenCall = _ref.refreshTokenCall, | ||
_ref$reduxMountPoint = _ref.reduxMountPoint, | ||
reduxMountPoint = _ref$reduxMountPoint === undefined ? 'auth' : _ref$reduxMountPoint, | ||
_ref$localStorageName = _ref.localStorageNamespace, | ||
@@ -208,5 +210,4 @@ localStorageNamespace = _ref$localStorageName === undefined ? 'auth' : _ref$localStorageName, | ||
// redux saga helpers for getting tokens from redux store | ||
// TODO: Maybe in future we can provide custom store key | ||
var selectAuth = function selectAuth(state) { | ||
return state.auth; | ||
return state[reduxMountPoint]; | ||
}; | ||
@@ -497,3 +498,3 @@ function getAccessToken() { | ||
function watchLogin() { | ||
var _ref6, payload, credentials, _ref7, access_token, refresh_token, user; | ||
var _ref6, payload, credentials, loginResponse, access_token, refresh_token, user; | ||
@@ -520,19 +521,23 @@ return _regenerator2.default.wrap(function watchLogin$(_context14) { | ||
case 10: | ||
_ref7 = _context14.sent; | ||
access_token = _ref7.access_token; | ||
refresh_token = _ref7.refresh_token; | ||
_context14.next = 15; | ||
return (0, _effects.call)(meCall, access_token); | ||
loginResponse = _context14.sent; | ||
access_token = loginResponse.access_token, refresh_token = loginResponse.refresh_token; | ||
// Using access token to get user info | ||
// ... passing additional param loginResponse over access_token | ||
// to get for example the user info from login response rather than | ||
// the me api endpoint | ||
case 15: | ||
_context14.next = 14; | ||
return (0, _effects.call)(meCall, access_token, loginResponse); | ||
case 14: | ||
user = _context14.sent; | ||
_context14.next = 18; | ||
_context14.next = 17; | ||
return lsStoreAccessToken(access_token); | ||
case 18: | ||
_context14.next = 20; | ||
case 17: | ||
_context14.next = 19; | ||
return lsStoreRefreshToken(refresh_token); | ||
case 20: | ||
_context14.next = 22; | ||
case 19: | ||
_context14.next = 21; | ||
return (0, _effects.put)({ | ||
@@ -547,10 +552,10 @@ type: _actions.LOGIN_SUCCESS, | ||
case 22: | ||
_context14.next = 28; | ||
case 21: | ||
_context14.next = 27; | ||
break; | ||
case 24: | ||
_context14.prev = 24; | ||
case 23: | ||
_context14.prev = 23; | ||
_context14.t0 = _context14['catch'](7); | ||
_context14.next = 28; | ||
_context14.next = 27; | ||
return (0, _effects.put)({ | ||
@@ -561,3 +566,3 @@ type: _actions.LOGIN_FAILURE, | ||
case 28: | ||
case 27: | ||
case 'end': | ||
@@ -567,3 +572,3 @@ return _context14.stop(); | ||
} | ||
}, _marked14, this, [[7, 24]]); | ||
}, _marked14, this, [[7, 23]]); | ||
} | ||
@@ -570,0 +575,0 @@ |
{ | ||
"name": "eazy-auth", | ||
"version": "0.1.3", | ||
"version": "0.1.4", | ||
"description": "Easy auth for react + redux + saga + routerV4", | ||
@@ -8,2 +8,3 @@ "main": "lib/index.js", | ||
"scripts": { | ||
"example": "webpack-dev-server", | ||
"clean": "rimraf lib", | ||
@@ -16,2 +17,3 @@ "build": "babel src --out-dir lib", | ||
"babel-core": "^6.26.0", | ||
"babel-loader": "^7.1.2", | ||
"babel-plugin-transform-class-properties": "^6.24.1", | ||
@@ -23,7 +25,18 @@ "babel-plugin-transform-object-rest-spread": "^6.26.0", | ||
"babel-preset-react": "^6.24.1", | ||
"rimraf": "^2.6.2" | ||
"lodash": "^4.17.5", | ||
"react": "^16.2.0", | ||
"react-dom": "^16.2.0", | ||
"react-redux": "^5.0.6", | ||
"react-router-dom": "^4.2.2", | ||
"redux": "^3.7.2", | ||
"redux-saga": "^0.16.0", | ||
"rimraf": "^2.6.2", | ||
"webpack": "^3.10.0", | ||
"webpack-dev-server": "^2.11.1" | ||
}, | ||
"dependencies": { | ||
"hoist-non-react-statics": "^2.3.1" | ||
"css-loader": "^0.28.9", | ||
"hoist-non-react-statics": "^2.3.1", | ||
"style-loader": "^0.20.1" | ||
} | ||
} |
@@ -16,2 +16,3 @@ import { PureComponent, createElement } from 'react' | ||
credentials: ['email', 'password'], | ||
clearErrorOnChange: true, | ||
...c, | ||
@@ -35,3 +36,9 @@ } | ||
makeOnCredentialChange = field => e => { | ||
const value = e.target.value | ||
let value = e | ||
if (e && e.target instanceof Element) { | ||
value = e.target.value | ||
} | ||
if (this.props.error && config.clearErrorOnChange) { | ||
this.props.clearLoginError() | ||
} | ||
this.setState(prevState => ({ | ||
@@ -38,0 +45,0 @@ credentials: { ...prevState.credentials, [field]: value } |
@@ -15,4 +15,3 @@ import { take, call, put, select } from 'redux-saga/effects' | ||
const defaultMakeErrorFromException = ex => | ||
!ex ? null : ex.message ? ex.message : ex | ||
const defaultMakeErrorFromException = ex => ex | ||
@@ -24,2 +23,3 @@ const makeAuth = ({ | ||
refreshTokenCall, | ||
reduxMountPoint = 'auth', | ||
localStorageNamespace = 'auth', | ||
@@ -64,4 +64,3 @@ makeErrorFromException = defaultMakeErrorFromException, | ||
// redux saga helpers for getting tokens from redux store | ||
// TODO: Maybe in future we can provide custom store key | ||
const selectAuth = state => state.auth | ||
const selectAuth = state => state[reduxMountPoint] | ||
function *getAccessToken() { | ||
@@ -162,5 +161,9 @@ return yield select(state => selectAuth(state).accessToken) | ||
try { | ||
const { access_token, refresh_token } = yield call(loginCall, credentials) | ||
const loginResponse = yield call(loginCall, credentials) | ||
const { access_token, refresh_token } = loginResponse | ||
// Using access token to get user info | ||
const user = yield call(meCall, access_token) | ||
// ... passing additional param loginResponse over access_token | ||
// to get for example the user info from login response rather than | ||
// the me api endpoint | ||
const user = yield call(meCall, access_token, loginResponse) | ||
// Store tokens | ||
@@ -167,0 +170,0 @@ yield lsStoreAccessToken(access_token) |
Sorry, the diff of this file is not supported yet
301130
66
3253
3
19
+ Addedcss-loader@^0.28.9
+ Addedstyle-loader@^0.20.1
+ Addedajv@6.12.6(transitive)
+ Addedajv-keywords@3.5.2(transitive)
+ Addedalphanum-sort@1.0.2(transitive)
+ Addedansi-regex@2.1.1(transitive)
+ Addedansi-styles@2.2.13.2.1(transitive)
+ Addedargparse@1.0.10(transitive)
+ Addedautoprefixer@6.7.7(transitive)
+ Addedbabel-code-frame@6.26.0(transitive)
+ Addedbalanced-match@0.4.21.0.2(transitive)
+ Addedbig.js@5.2.2(transitive)
+ Addedbrowserslist@1.7.7(transitive)
+ Addedcaniuse-api@1.6.1(transitive)
+ Addedcaniuse-db@1.0.30001699(transitive)
+ Addedchalk@1.1.32.4.2(transitive)
+ Addedclap@1.2.3(transitive)
+ Addedclone@1.0.4(transitive)
+ Addedcoa@1.0.4(transitive)
+ Addedcolor@0.11.4(transitive)
+ Addedcolor-convert@1.9.3(transitive)
+ Addedcolor-name@1.1.3(transitive)
+ Addedcolor-string@0.3.0(transitive)
+ Addedcolormin@1.1.2(transitive)
+ Addedcolors@1.1.2(transitive)
+ Addedcss-color-names@0.0.4(transitive)
+ Addedcss-loader@0.28.11(transitive)
+ Addedcss-selector-tokenizer@0.7.3(transitive)
+ Addedcssesc@3.0.0(transitive)
+ Addedcssnano@3.10.0(transitive)
+ Addedcsso@2.3.2(transitive)
+ Addeddecamelize@1.2.0(transitive)
+ Addeddefined@1.0.1(transitive)
+ Addedelectron-to-chromium@1.5.97(transitive)
+ Addedemojis-list@3.0.0(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedesprima@2.7.3(transitive)
+ Addedesutils@2.0.3(transitive)
+ Addedfast-deep-equal@3.1.3(transitive)
+ Addedfast-json-stable-stringify@2.1.0(transitive)
+ Addedfastparse@1.1.2(transitive)
+ Addedflatten@1.0.3(transitive)
+ Addedhas@1.0.4(transitive)
+ Addedhas-ansi@2.0.0(transitive)
+ Addedhas-flag@1.0.03.0.0(transitive)
+ Addedhtml-comment-regex@1.1.2(transitive)
+ Addedicss-replace-symbols@1.1.0(transitive)
+ Addedicss-utils@2.1.0(transitive)
+ Addedindexes-of@1.0.1(transitive)
+ Addedis-absolute-url@2.1.0(transitive)
+ Addedis-plain-obj@1.1.0(transitive)
+ Addedis-svg@2.1.0(transitive)
+ Addedjs-base64@2.6.4(transitive)
+ Addedjs-tokens@3.0.2(transitive)
+ Addedjs-yaml@3.7.0(transitive)
+ Addedjson-schema-traverse@0.4.1(transitive)
+ Addedjson5@1.0.2(transitive)
+ Addedloader-utils@1.4.2(transitive)
+ Addedlodash.camelcase@4.3.0(transitive)
+ Addedlodash.memoize@4.1.2(transitive)
+ Addedlodash.uniq@4.5.0(transitive)
+ Addedmath-expression-evaluator@1.4.0(transitive)
+ Addedminimist@1.2.8(transitive)
+ Addedmkdirp@0.5.6(transitive)
+ Addednormalize-range@0.1.2(transitive)
+ Addednormalize-url@1.9.1(transitive)
+ Addednum2fraction@1.2.2(transitive)
+ Addedobject-assign@4.1.1(transitive)
+ Addedpostcss@5.2.186.0.23(transitive)
+ Addedpostcss-calc@5.3.1(transitive)
+ Addedpostcss-colormin@2.2.2(transitive)
+ Addedpostcss-convert-values@2.6.1(transitive)
+ Addedpostcss-discard-comments@2.0.4(transitive)
+ Addedpostcss-discard-duplicates@2.1.0(transitive)
+ Addedpostcss-discard-empty@2.1.0(transitive)
+ Addedpostcss-discard-overridden@0.1.1(transitive)
+ Addedpostcss-discard-unused@2.2.3(transitive)
+ Addedpostcss-filter-plugins@2.0.3(transitive)
+ Addedpostcss-merge-idents@2.1.7(transitive)
+ Addedpostcss-merge-longhand@2.0.2(transitive)
+ Addedpostcss-merge-rules@2.1.2(transitive)
+ Addedpostcss-message-helpers@2.0.0(transitive)
+ Addedpostcss-minify-font-values@1.0.5(transitive)
+ Addedpostcss-minify-gradients@1.0.5(transitive)
+ Addedpostcss-minify-params@1.2.2(transitive)
+ Addedpostcss-minify-selectors@2.1.1(transitive)
+ Addedpostcss-modules-extract-imports@1.2.1(transitive)
+ Addedpostcss-modules-local-by-default@1.2.0(transitive)
+ Addedpostcss-modules-scope@1.1.0(transitive)
+ Addedpostcss-modules-values@1.3.0(transitive)
+ Addedpostcss-normalize-charset@1.1.1(transitive)
+ Addedpostcss-normalize-url@3.0.8(transitive)
+ Addedpostcss-ordered-values@2.2.3(transitive)
+ Addedpostcss-reduce-idents@2.4.0(transitive)
+ Addedpostcss-reduce-initial@1.0.1(transitive)
+ Addedpostcss-reduce-transforms@1.0.4(transitive)
+ Addedpostcss-selector-parser@2.2.3(transitive)
+ Addedpostcss-svgo@2.1.6(transitive)
+ Addedpostcss-unique-selectors@2.0.2(transitive)
+ Addedpostcss-value-parser@3.3.1(transitive)
+ Addedpostcss-zindex@2.2.0(transitive)
+ Addedprepend-http@1.0.4(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedq@1.5.1(transitive)
+ Addedquery-string@4.3.4(transitive)
+ Addedreduce-css-calc@1.3.0(transitive)
+ Addedreduce-function-call@1.0.3(transitive)
+ Addedsax@1.2.4(transitive)
+ Addedschema-utils@0.4.7(transitive)
+ Addedsort-keys@1.1.2(transitive)
+ Addedsource-list-map@2.0.1(transitive)
+ Addedsource-map@0.5.70.6.1(transitive)
+ Addedsprintf-js@1.0.3(transitive)
+ Addedstrict-uri-encode@1.1.0(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedstyle-loader@0.20.3(transitive)
+ Addedsupports-color@2.0.03.2.35.5.0(transitive)
+ Addedsvgo@0.7.2(transitive)
+ Addeduniq@1.0.1(transitive)
+ Addeduniqs@2.0.0(transitive)
+ Addeduri-js@4.4.1(transitive)
+ Addedvendors@1.0.4(transitive)
+ Addedwhet.extend@0.9.9(transitive)