Skip to content

Commit b799952

Browse files
committed
Instantiate interceptor only once
1 parent f1f0ec1 commit b799952

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

lib/httpMock.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ function mockTemplate() {
1515

1616
$provide.decorator('$http', ['$delegate', '$q', '$injector', function($http, $q, $injector) {
1717

18-
var interceptors = $httpProvider.interceptors;
18+
var interceptors = [];
1919

20-
function getInterceptor(interceptorExpression) {
21-
if (angular.isString(interceptorExpression)) {
22-
return $injector.get(interceptorExpression);
23-
} else {
24-
return $injector.invoke(interceptorExpression);
25-
}
26-
}
20+
angular.forEach($httpProvider.interceptors, function(interceptorExpression) {
21+
var interceptor = angular.isString(interceptorExpression) ?
22+
$injector.get(interceptorExpression) : $injector.invoke(interceptorExpression);
23+
interceptors.push(interceptor);
24+
});
2725

2826
function transformData(data, headers, status, fns) {
2927
if (typeof fns === 'function') {
@@ -50,7 +48,7 @@ function mockTemplate() {
5048

5149
function getTransformedAndInterceptedRequestConfig(requestConfig) {
5250
for (var i = 0; i < interceptors.length; i++) {
53-
var interceptor = getInterceptor(interceptors[i]);
51+
var interceptor = interceptors[i];
5452

5553
if (interceptor.request) {
5654
$q.when(interceptor.request(requestConfig)).then(function(interceptedRequestConfig){
@@ -84,7 +82,7 @@ function mockTemplate() {
8482

8583
// Response interceptors are invoked in reverse order as per docs
8684
for (var i = interceptors.length - 1; i >= 0; i--) {
87-
var interceptor = getInterceptor(interceptors[i]);
85+
var interceptor = interceptors[i];
8886

8987
if (interceptor.response && statusIsSuccessful(response.status)) {
9088
$q.when(interceptor.response(response)).then(function(interceptedResponse){

0 commit comments

Comments
 (0)