guard
Utility to split opportunities by the account level (free\pro\enterprise\etc.) for frontend and node
Install
With bower
bower i -S guard
With npm
npm i -S guard-bit
File
Save guard.min.js or guard.js to your assets folder
Examples
Without any config
var guard = ;// level === 0 by default// getters; // false; // false // handlers; // nothing logged; // nothing logged guard; // getters; // true; // true // handlers; // 'called!'; // 'called!'
Request callback (unauth/auth)
var guard = ; // level === 0 (unauthorized) by default// getters; // false; // false // handlers// calls request provided in constructor// and after request success calls callback'called!'; // 'called' after login success (100ms) // request called only once (only one login popup)// but when it's done both callbacks will call; // 'called' after 100ms// awesome! // onward suppose 100ms passed and we are on 1 level // getters; // true; // true // handlers; // 'called!'; // 'called!'
Several access level and rules (unauth/auth/pro/admin)
var guard = ; // level === 0 (unauthorized) by default// getters; // false; // true // handlers'called!'; // 'called' after login success// level === 1; // 'My Profile' immediately (but async) ; // 'called' after admin request success// level === 2 guard; 'Ha!';// calls request to user (login popup)// after it's success, calls admin request// after admin request success calls callback
As middleware
{ return { if ; else res; }} app;
More useful methods
var guard = ; guard; var unsubscribe = guard; // request for next levelguard;// 'Request for Auth'// 'now on level 1'// 'second listener!' ; // get current levelguard;// 1 guard;// 'now on level 0' guard;// 'Request for Auth'// 'now on level 1'// 'after success uplevel' // it's possible to set new config on same instance// config in same form as in constructorguard;
API (TypeScript)
declare declare ;
Versions
It uses semver. Current version is 1.x.x. It means that API is stable. Whooa!