Commit dc50dda2 authored by Winnie Hellmann's avatar Winnie Hellmann Committed by Kushal Pandya

Remove vue-resource dependency

parent 4db9422b
...@@ -22,7 +22,6 @@ import Board from 'ee_else_ce/boards/components/board'; ...@@ -22,7 +22,6 @@ import Board from 'ee_else_ce/boards/components/board';
import BoardSidebar from 'ee_else_ce/boards/components/board_sidebar'; import BoardSidebar from 'ee_else_ce/boards/components/board_sidebar';
import initNewListDropdown from 'ee_else_ce/boards/components/new_list_dropdown'; import initNewListDropdown from 'ee_else_ce/boards/components/new_list_dropdown';
import BoardAddIssuesModal from '~/boards/components/modal/index.vue'; import BoardAddIssuesModal from '~/boards/components/modal/index.vue';
import '~/vue_shared/vue_resource_interceptor';
import { import {
NavigationType, NavigationType,
convertObjectPropsToCamelCase, convertObjectPropsToCamelCase,
......
import Vue from 'vue'; import Vue from 'vue';
import '../vue_shared/vue_resource_interceptor';
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
Vue.config.productionTip = false; Vue.config.productionTip = false;
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
import Vue from 'vue'; import Vue from 'vue';
import Flash from '../../flash'; import Flash from '../../flash';
import '../../vue_shared/vue_resource_interceptor';
import { __ } from '~/locale'; import { __ } from '~/locale';
window.gl = window.gl || {}; window.gl = window.gl || {};
......
...@@ -2,7 +2,6 @@ import Vue from 'vue'; ...@@ -2,7 +2,6 @@ import Vue from 'vue';
import { initSidebarTracking } from 'ee_else_ce/event_tracking/issue_sidebar'; import { initSidebarTracking } from 'ee_else_ce/event_tracking/issue_sidebar';
import issuableApp from './components/app.vue'; import issuableApp from './components/app.vue';
import { parseIssuableData } from './utils/parse_data'; import { parseIssuableData } from './utils/parse_data';
import '../vue_shared/vue_resource_interceptor';
export default function initIssueableApp() { export default function initIssueableApp() {
return new Vue({ return new Vue({
......
...@@ -8,19 +8,19 @@ axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; ...@@ -8,19 +8,19 @@ axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
// Maintain a global counter for active requests // Maintain a global counter for active requests
// see: spec/support/wait_for_requests.rb // see: spec/support/wait_for_requests.rb
axios.interceptors.request.use(config => { axios.interceptors.request.use(config => {
window.activeVueResources = window.activeVueResources || 0; window.pendingRequests = window.pendingRequests || 0;
window.activeVueResources += 1; window.pendingRequests += 1;
return config; return config;
}); });
// Remove the global counter // Remove the global counter
axios.interceptors.response.use( axios.interceptors.response.use(
response => { response => {
window.activeVueResources -= 1; window.pendingRequests -= 1;
return response; return response;
}, },
err => { err => {
window.activeVueResources -= 1; window.pendingRequests -= 1;
return Promise.reject(err); return Promise.reject(err);
}, },
); );
......
...@@ -27,8 +27,7 @@ export default { ...@@ -27,8 +27,7 @@ export default {
/** /**
pageInfo will come from the headers of the API call pageInfo will come from the headers of the API call
in the `.then` clause of the VueResource API call there should be a function that constructs the pageInfo for this component
there should be a function that contructs the pageInfo for this component
This is an example: This is an example:
......
import Vue from 'vue';
import VueResource from 'vue-resource';
import csrf from '../lib/utils/csrf';
Vue.use(VueResource);
// Maintain a global counter for active requests
// see: spec/support/wait_for_requests.rb
Vue.http.interceptors.push((request, next) => {
window.activeVueResources = window.activeVueResources || 0;
window.activeVueResources += 1;
next(() => {
window.activeVueResources -= 1;
});
});
// Inject CSRF token and parse headers.
// New Vue Resource version uses Headers, we are expecting a plain object to render pagination
// and polling.
Vue.http.interceptors.push((request, next) => {
request.headers.set(csrf.headerKey, csrf.token);
next(response => {
// Headers object has a `forEach` property that iterates through all values.
const headers = {};
response.headers.forEach((value, key) => {
headers[key] = value;
});
// eslint-disable-next-line no-param-reassign
response.headers = headers;
});
});
...@@ -470,9 +470,6 @@ describe 'Issues' do ...@@ -470,9 +470,6 @@ describe 'Issues' do
expect(page).to have_content 'None' expect(page).to have_content 'None'
end end
# wait_for_requests does not work with vue-resource at the moment
sleep 1
expect(issue.reload.assignees).to be_empty expect(issue.reload.assignees).to be_empty
end end
......
// eslint-disable-next-line import/prefer-default-export
export const headersInterceptor = (request, next) => {
next(response => {
const headers = {};
response.headers.forEach((value, key) => {
headers[key] = value;
});
// eslint-disable-next-line no-param-reassign
response.headers = headers;
});
};
// eslint-disable-next-line import/prefer-default-export
export const headersInterceptor = (request, next) => {
next(response => {
const headers = {};
response.headers.forEach((value, key) => {
headers[key] = value;
});
// eslint-disable-next-line no-param-reassign
response.headers = headers;
});
};
...@@ -7,7 +7,6 @@ import 'core-js/features/set-immediate'; ...@@ -7,7 +7,6 @@ import 'core-js/features/set-immediate';
import 'vendor/jasmine-jquery'; import 'vendor/jasmine-jquery';
import '~/commons'; import '~/commons';
import Vue from 'vue'; import Vue from 'vue';
import VueResource from 'vue-resource';
import Translate from '~/vue_shared/translate'; import Translate from '~/vue_shared/translate';
import jasmineDiff from 'jasmine-diff'; import jasmineDiff from 'jasmine-diff';
import { config as testUtilsConfig } from '@vue/test-utils'; import { config as testUtilsConfig } from '@vue/test-utils';
...@@ -46,7 +45,6 @@ Vue.config.errorHandler = function(err) { ...@@ -46,7 +45,6 @@ Vue.config.errorHandler = function(err) {
fail(err); fail(err);
}; };
Vue.use(VueResource);
Vue.use(Translate); Vue.use(Translate);
// enable test fixtures // enable test fixtures
...@@ -102,13 +100,6 @@ afterEach(__rewire_reset_all__); // eslint-disable-line ...@@ -102,13 +100,6 @@ afterEach(__rewire_reset_all__); // eslint-disable-line
// to run our unit tests. // to run our unit tests.
beforeEach(done => done()); beforeEach(done => done());
const builtinVueHttpInterceptors = Vue.http.interceptors.slice();
beforeEach(() => {
// restore interceptors so we have no remaining ones from previous tests
Vue.http.interceptors = builtinVueHttpInterceptors.slice();
});
let longRunningTestTimeoutHandle; let longRunningTestTimeoutHandle;
beforeEach(done => { beforeEach(done => {
......
...@@ -49,11 +49,11 @@ module WaitForRequests ...@@ -49,11 +49,11 @@ module WaitForRequests
return true unless javascript_test? return true unless javascript_test?
finished_all_ajax_requests? && finished_all_ajax_requests? &&
finished_all_vue_resource_requests? finished_all_axios_requests?
end end
def finished_all_vue_resource_requests? def finished_all_axios_requests?
Capybara.page.evaluate_script('window.activeVueResources || 0').zero? Capybara.page.evaluate_script('window.pendingRequests || 0').zero?
end end
def finished_all_ajax_requests? def finished_all_ajax_requests?
......
...@@ -1131,7 +1131,6 @@ vue-apollo,3.0.0-beta.25,ISC ...@@ -1131,7 +1131,6 @@ vue-apollo,3.0.0-beta.25,ISC
vue-functional-data-merge,2.0.6,MIT vue-functional-data-merge,2.0.6,MIT
vue-hot-reload-api,2.3.0,MIT vue-hot-reload-api,2.3.0,MIT
vue-loader,15.4.2,MIT vue-loader,15.4.2,MIT
vue-resource,1.5.0,MIT
vue-router,3.0.1,MIT vue-router,3.0.1,MIT
vue-style-loader,4.1.0,MIT vue-style-loader,4.1.0,MIT
vue-template-compiler,2.5.17,MIT vue-template-compiler,2.5.17,MIT
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment