Update utils.js
This commit is contained in:
parent
bd0b29aaee
commit
8736c1a26b
52
src/utils.js
52
src/utils.js
|
@ -11,6 +11,8 @@ dayjs.extend(utc)
|
||||||
axiosCookieJarSupport(axios)
|
axiosCookieJarSupport(axios)
|
||||||
|
|
||||||
const utils = {}
|
const utils = {}
|
||||||
|
const defaultUserAgent =
|
||||||
|
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36 Edg/79.0.309.71'
|
||||||
|
|
||||||
utils.loadConfig = function (file) {
|
utils.loadConfig = function (file) {
|
||||||
if (!file) throw new Error('Path to [site].config.js is missing')
|
if (!file) throw new Error('Path to [site].config.js is missing')
|
||||||
|
@ -39,10 +41,6 @@ utils.loadConfig = function (file) {
|
||||||
output: 'guide.xml',
|
output: 'guide.xml',
|
||||||
request: {
|
request: {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
headers: {
|
|
||||||
'User-Agent':
|
|
||||||
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36 Edg/79.0.309.71'
|
|
||||||
},
|
|
||||||
maxContentLength: 5 * 1024 * 1024,
|
maxContentLength: 5 * 1024 * 1024,
|
||||||
timeout: 5000,
|
timeout: 5000,
|
||||||
withCredentials: true,
|
withCredentials: true,
|
||||||
|
@ -194,15 +192,53 @@ utils.writeToFile = function (filename, data) {
|
||||||
fs.writeFileSync(path.resolve(filename), data)
|
fs.writeFileSync(path.resolve(filename), data)
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.fetchData = function (item, config) {
|
utils.buildRequest = async function (item, config) {
|
||||||
const request = { ...config.request }
|
const request = { ...config.request }
|
||||||
request.url = typeof config.url === 'function' ? config.url(item) : config.url
|
const headers = await utils.getRequestHeaders(item, config)
|
||||||
request.data =
|
request.headers = { 'User-Agent': defaultUserAgent, ...headers }
|
||||||
typeof config.request.data === 'function' ? config.request.data(item) : config.request.data
|
request.url = await utils.getRequestUrl(item, config)
|
||||||
|
request.data = await utils.getRequestData(item, config)
|
||||||
|
|
||||||
|
return request
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.fetchData = function (request) {
|
||||||
return axios(request)
|
return axios(request)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
utils.getRequestHeaders = async function (item, config) {
|
||||||
|
if (typeof config.request.headers === 'function') {
|
||||||
|
const headers = config.request.headers(item)
|
||||||
|
if (typeof headers === 'Promise') {
|
||||||
|
return await headers
|
||||||
|
}
|
||||||
|
return headers
|
||||||
|
}
|
||||||
|
return config.request.headers
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.getRequestData = async function (item, config) {
|
||||||
|
if (typeof config.request.data === 'function') {
|
||||||
|
const data = config.request.data(item)
|
||||||
|
if (typeof data === 'Promise') {
|
||||||
|
return await data
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
return config.request.data
|
||||||
|
}
|
||||||
|
|
||||||
|
utils.getRequestUrl = async function (item, config) {
|
||||||
|
if (typeof config.url === 'function') {
|
||||||
|
const url = config.url(item)
|
||||||
|
if (typeof url === 'Promise') {
|
||||||
|
return await url
|
||||||
|
}
|
||||||
|
return url
|
||||||
|
}
|
||||||
|
return config.url
|
||||||
|
}
|
||||||
|
|
||||||
utils.getUTCDate = function () {
|
utils.getUTCDate = function () {
|
||||||
return dayjs.utc()
|
return dayjs.utc()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue