Skip to content
This repository was archived by the owner on Apr 7, 2021. It is now read-only.

Commit 718fba0

Browse files
committed
fix
1 parent 9b227f2 commit 718fba0

File tree

7 files changed

+56
-77
lines changed

7 files changed

+56
-77
lines changed

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
VUE_APP_HOST=http://site.dev
2+
VUE_APP_API_PREFIX = '/api'
23
VUE_APP_LFM_CSRF_TOKEN = OFF
4+
VUE_APP_LFM_PATH = 'file-manager'

demo/request/index.js

Lines changed: 13 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,28 @@
11
import buildBaseRequest from '@feugene/request'
2-
import AuthInterceptor from './interceptors/AuthInterceptor'
3-
import { LoadingRequestInterceptor, LoadingResponseInterceptor } from '@/request/LoadingInterceptor'
4-
import ResponseNoticeInterceptor from '@/request/ResponseNoticeInterceptor'
2+
import { isObject } from '@feugene/mu/src/is'
53

6-
function initBaseUrl() {
7-
let baseUrl
8-
if (process.env.VUE_APP_HOST) {
9-
baseUrl = process.env.VUE_APP_HOST
10-
} else {
11-
baseUrl = `${window.location.protocol}//${window.location.hostname}`
12-
13-
if (window.location.port.length) {
14-
baseUrl += `:${window.location.port}`
15-
}
16-
}
17-
baseUrl += `/api/admin/file-manager`
18-
19-
return baseUrl
20-
}
4+
const baseHost = process.env.VUE_APP_HOST
5+
const apiPrefix = process.env.VUE_APP_API_PREFIX
216

227
function initHeaders() {
23-
const headers = {
24-
'X-Requested-With': 'XMLHttpRequest',
25-
}
26-
27-
// off laravel csrf-token if need
28-
if (process.env.VUE_APP_LFM_CSRF_TOKEN !== 'OFF') {
29-
// Laravel CSRF token
30-
const token = document.head.querySelector('meta[name="csrf-token"]')
31-
32-
if (!token) {
33-
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token')
34-
} else {
35-
headers['X-CSRF-TOKEN'] = token.content
36-
}
37-
}
38-
39-
return headers
40-
}
41-
42-
function initSettings() {
438
return {
44-
baseURL: initBaseUrl(),
45-
headers: initHeaders(),
9+
'X-Requested-With': 'XMLHttpRequest',
4610
}
4711
}
4812

49-
// initiate headers, if not set manually
50-
export const defaultConfig = initSettings()
51-
5213
const request = store => (config = {}) => {
53-
const mergedConfig = { ...defaultConfig, ...config }
54-
55-
mergedConfig.store = store
56-
if (config.auth) {
57-
mergedConfig.auth = 'secret_token'
14+
const headers = {
15+
...initHeaders(),
16+
...(isObject(config.headers) ? config.headers : {}),
5817
}
5918

60-
mergedConfig.afterInitFn = instance => {
61-
instance.registerRequestInterceptors(LoadingRequestInterceptor)
62-
instance.registerResponseInterceptors(LoadingResponseInterceptor, ResponseNoticeInterceptor)
63-
64-
if (instance.config.auth) {
65-
instance.registerRequestInterceptors(AuthInterceptor)
66-
}
67-
68-
/*if (isFunction(instance.config.responseWrap)) {
69-
instance.registerResponseInterceptors(WrapperInterceptor)
70-
}*/
19+
const mergedConfig = {
20+
baseURL: `${baseHost}${apiPrefix}`,
21+
...config,
22+
headers,
7123
}
72-
/*
73-
config.responseWrap.fn = (instance) => {
74-
instance.registerResponseInterceptors(WrapperInterceptor)
75-
}*/
24+
25+
mergedConfig.store = store
7626

7727
return buildBaseRequest(mergedConfig)
7828
}

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
},
2626
"peerDependencies": {
2727
"@feugene/mu": "^2.20.1",
28-
"@feugene/request": "^0.0.4",
28+
"@feugene/request": "^0.1.1",
2929
"axios": "^0.21.1",
3030
"core-js": "^3.9.0",
3131
"element-ui": "^2.15.1",
@@ -36,7 +36,7 @@
3636
"@babel/plugin-proposal-optional-chaining": "^7.13.0",
3737
"@babel/plugin-transform-runtime": "^7.13.5",
3838
"@feugene/mu": "^2.20.1",
39-
"@feugene/request": "^0.0.4",
39+
"@feugene/request": "^0.1.1",
4040
"@vue/cli-plugin-babel": "~4.5.11",
4141
"@vue/cli-plugin-eslint": "~4.5.11",
4242
"@vue/cli-service": "~4.5.11",

src/http/get.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export default {
66
* @returns {*}
77
*/
88
initialize() {
9+
console.log(request().interceptors)
10+
911
return request().get('initialize')
1012
},
1113

src/request/LoadingInterceptor.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import EventBus from '@/eventBus'
22

33
export const LoadingRequestInterceptor = options => [
44
config => {
5+
console.log('LoadingRequestInterceptor')
56
options.store.commit('fm/messages/addLoading')
67
return config
78
},

src/request/index.js

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,36 @@
11
import Vue from 'vue'
2+
import { LoadingRequestInterceptor, LoadingResponseInterceptor } from '@/request/LoadingInterceptor'
3+
import ResponseNoticeInterceptor from '@/request/ResponseNoticeInterceptor'
24

3-
const request = (config) => {
4-
return Vue.prototype.$request(config)
5+
const fmApiPath = process.env.VUE_APP_LFM_PATH || 'file-manager'
6+
7+
const wrapRequest = axiosInstance => {
8+
return axiosInstance.reconfigure(
9+
/**
10+
* @param {Request} instance
11+
*/
12+
instance => {
13+
instance.config.baseURL += `/${fmApiPath}`
14+
15+
if (process.env.VUE_APP_LFM_CSRF_TOKEN !== 'OFF') {
16+
// Laravel CSRF token
17+
const token = document.head.querySelector('meta[name="csrf-token"]')
18+
19+
if (!token) {
20+
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token')
21+
} else {
22+
instance.config.headers['X-CSRF-TOKEN'] = token.content
23+
}
24+
}
25+
26+
instance.registerRequestInterceptors(LoadingRequestInterceptor)
27+
instance.registerResponseInterceptors(LoadingResponseInterceptor, ResponseNoticeInterceptor)
28+
}
29+
)
30+
}
31+
32+
const request = config => {
33+
return wrapRequest(Vue.prototype.$request(config))
534
}
635

736
export default request

yarn.lock

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,22 +1041,17 @@
10411041
minimatch "^3.0.4"
10421042
strip-json-comments "^3.1.1"
10431043

1044-
"@feugene/mu@^2.20.0":
1045-
version "2.20.0"
1046-
resolved "https://registry.yarnpkg.com/@feugene/mu/-/mu-2.20.0.tgz#b0f7a5e1deb177163d46a07525759cf256795109"
1047-
integrity sha512-z58/1uhj59K0ZggO39ou+Ng4jQbjaNJ5bCvVsgwVeUCN0lHP/fbGP64BPl5I40mHKQJZg+vdoDQqoaynPYHSSg==
1048-
10491044
"@feugene/mu@^2.20.1":
10501045
version "2.20.1"
10511046
resolved "https://registry.yarnpkg.com/@feugene/mu/-/mu-2.20.1.tgz#20a0ed1b6b776ed637bcaa3df8f8480af43ccf06"
10521047
integrity sha512-1vAsmC7thOg+vMs/eqOGNZpwAMbLve6ockctLfi+53nJTRggbZuks3nNUyyAMuYlpSxC/ZezLjzL2yYQwe1Tng==
10531048

1054-
"@feugene/request@^0.0.4":
1055-
version "0.0.4"
1056-
resolved "https://registry.yarnpkg.com/@feugene/request/-/request-0.%3Cspan%20class="x x-first x-last">0.4.tgz#f974725563eee0d5e9fb884726afe849a7a99969"
1057-
integrity sha512-mgMcEhTCfoY6EV9n+EaSvaZ1N2/+GGDC2KyqViauIritHZAhr5cOeS4QX65spvDGgE0LKgUfYDdHN6vDCCZg2A==
1049+
"@feugene/request@^0.1.1":
1050+
version "0.1.1"
1051+
resolved "https://registry.yarnpkg.com/@feugene/request/-/request-0.%3Cspan%20class="x x-first x-last">1.1.tgz#80e45195d6dab002e45ddbc8480c7e6502c6ce8d"
1052+
integrity sha512-QEiNuVE8GyiG8Ltb6aNv8pPwd5Krrx6diPd/VUZSz+ssfeopTmhtyIrC5oWO0EssyHEHXCy5PYqvjCWwnJmP8A==
10581053
dependencies:
1059-
"@feugene/mu" "^2.20.0"
1054+
"@feugene/mu" "^2.20.1"
10601055
axios "^0.21.1"
10611056

10621057

0 commit comments

Comments
 (0)