Skip to content

Commit 13df718

Browse files
author
Karl Hepler
committed
compiled, & updated npm repo string
1 parent 7926be7 commit 13df718

File tree

4 files changed

+86
-20
lines changed

4 files changed

+86
-20
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-middleware",
3-
"version": "2.1.5",
3+
"version": "2.1.6",
44
"description": "Laravel-like middleware for angular ui.router and ngRoute",
55
"main": "dist/angular-middleware.js",
66
"authors": [

dist/angular-middleware.js

Lines changed: 82 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ function middlewareFactory($injector, $q) {
3636
/**
3737
* Initialize $middleware
3838
*
39-
* @param {object} toRoute
40-
* @param {mixed} toParams
39+
* @param {object} toRoute
40+
* @param {mixed} toParams
4141
* @returns {promise}
4242
*/
4343
return function initialize(toRoute, toParams) {
44-
// Return early if the toRoute doesn't have middleware
45-
if ( _bypassAll || !hasMiddleware(_globalMiddleware) && !hasMiddleware(toRoute) ) {
44+
// Return if we should bypass
45+
if ( shouldBypass(toRoute) ) {
4646
return $q.resolve();
4747
}
4848

@@ -54,9 +54,7 @@ function middlewareFactory($injector, $q) {
5454

5555
// Set the middleware names.
5656
// Make sure the globals are first, then concat toRoute
57-
middleware.names =
58-
getMiddlewareNames(_globalMiddleware)
59-
.concat(getMiddlewareNames(toRoute));
57+
middleware.names = concatMiddlwareNames([_globalMiddleware, toRoute]);
6058

6159
// Create a deferred promise
6260
middleware.resolution = $q.defer();
@@ -68,30 +66,98 @@ function middlewareFactory($injector, $q) {
6866
return middleware.resolution.promise;
6967
};
7068

69+
/**
70+
* Determine if we should bypass the middleware
71+
*
72+
* @param {object} route
73+
* @returns {boolean}
74+
*/
75+
function shouldBypass(route) {
76+
// If the bypassAll flag is set,
77+
// then we should bypass all - duh
78+
if ( _bypassAll ) {
79+
return true;
80+
}
81+
82+
// We can only bypass at this point
83+
// if there is no middleware to process
84+
return !middlewareExists(route);
85+
}
86+
87+
/**
88+
* Determine if any middleware exists
89+
*
90+
* @param {object} route
91+
* @returns {boolean}
92+
*/
93+
function middlewareExists(route) {
94+
return hasMiddleware(_globalMiddleware)
95+
|| hasMiddleware(route);
96+
}
97+
7198
/**
7299
* Determine if the given route has middleware
73100
*
74-
* @param {object} toRoute
101+
* @param {object} route
75102
* @returns {boolean}
76103
*/
77104
function hasMiddleware(route) {
78-
return !!route.middleware && !!route.middleware.length;
105+
var middleware = getRouteMiddleware(route);
106+
return !!middleware && !!middleware.length;
107+
}
108+
109+
/**
110+
* Gets the route middleware property
111+
*
112+
* @param {object} route
113+
* @returns {array|string}
114+
*/
115+
function getRouteMiddleware(route) {
116+
return route.middleware
117+
|| ((route.data || {}).vars || {}).middleware;
118+
}
119+
120+
/**
121+
* Concat the middleware names of the given routes
122+
*
123+
* @param {array} routes
124+
* @return {array}
125+
*/
126+
function concatMiddlewareNames(routes) {
127+
var output = [];
128+
129+
// Concat each route's middleware names
130+
for (var i = 0; i < routes.length; i++) {
131+
output.concat(
132+
getMiddlewareNames(routes[i])
133+
);
134+
}
135+
136+
return output;
79137
}
80138

81139
/**
82140
* Get the middleware names
83141
* from an array or a piped string
84142
*
85-
* @param {object} route
143+
* @param {object} route
86144
* @returns {array}
87145
*/
88146
function getMiddlewareNames(route) {
89-
// Return the middleware names as an array
90-
return route.middleware instanceof Array
91-
? route.middleware
92-
: typeof route.middleware === 'undefined'
93-
? []
94-
: route.middleware.split('|');
147+
var middleware = getRouteMiddleware(route);
148+
149+
// If the middleware is an array, just return it
150+
if ( middleware instanceof Array ) {
151+
return middleware;
152+
}
153+
154+
// If there is no middleware, then return an empty array
155+
if ( typeof middleware === 'undefined' ) {
156+
return [];
157+
}
158+
159+
// Otherwise, split the pipes & return an array
160+
return middleware.split('|');
95161
}
96162

97163
/**

dist/angular-middleware.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
22
"name": "angular-middleware",
3-
"version": "2.1.5",
3+
"version": "2.1.6",
44
"description": "Laravel-like middleware for angular uiRouter",
55
"main": "dist/angular-middleware.js",
66
"scripts": {
77
"test": "echo \"Error: no test specified\" && exit 1"
88
},
99
"repository": {
1010
"type": "git",
11-
"url": "git+https://github.com/oldtimeguitarguy/kjh-middleware.git"
11+
"url": "git+https://github.com/oldtimeguitarguy/angular-middleware.git"
1212
},
1313
"keywords": [
1414
"middleware",

0 commit comments

Comments
 (0)