Replace axios with native fetch
This commit is contained in:
parent
ac9e52ac96
commit
a0326b00d1
18
package-lock.json
generated
18
package-lock.json
generated
@ -1481,15 +1481,6 @@
|
||||
"integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/svg-sprite-loader": {
|
||||
"version": "3.9.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/svg-sprite-loader/-/svg-sprite-loader-3.9.2.tgz",
|
||||
"integrity": "sha512-J4TffGc8WeBVUmLOQSrCgujcGEnovtvmyzRtfXj5ri/f4yaayTCPY4qwNEvdk67tnHV6GnhhuPsdOn6WrnfAMw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/webpack": "*"
|
||||
}
|
||||
},
|
||||
"@types/tapable": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz",
|
||||
@ -3005,15 +2996,6 @@
|
||||
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
|
||||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.21.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz",
|
||||
"integrity": "sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"follow-redirects": "^1.10.0"
|
||||
}
|
||||
},
|
||||
"babel-code-frame": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
|
||||
|
@ -21,7 +21,6 @@
|
||||
"@vue/cli-service": "~4.5.0",
|
||||
"@vue/compiler-sfc": "^3.0.0",
|
||||
"@vue/eslint-config-typescript": "^5.0.2",
|
||||
"axios": "^0.21.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"eslint": "^7.5.0",
|
||||
"eslint-plugin-vue": "^7.0.0-0",
|
||||
|
127
src/api.ts
127
src/api.ts
@ -1,4 +1,3 @@
|
||||
import axios, {AxiosResponse} from 'axios';
|
||||
import {
|
||||
DynmapArea,
|
||||
DynmapCircle,
|
||||
@ -16,50 +15,45 @@ import {
|
||||
DynmapWorld
|
||||
} from "@/dynmap";
|
||||
|
||||
function buildServerConfig(response: AxiosResponse): DynmapServerConfig {
|
||||
const data = response.data;
|
||||
|
||||
function buildServerConfig(response: any): DynmapServerConfig {
|
||||
return {
|
||||
version: data.dynmapversion || '',
|
||||
allowChat: data.allowwebchat || false,
|
||||
chatRequiresLogin: data['webchat-requires-login'] || false,
|
||||
chatInterval: data['webchat-interval'] || 5,
|
||||
defaultMap: data.defaultmap || undefined,
|
||||
defaultWorld: data.defaultworld || undefined,
|
||||
defaultZoom: data.defaultzoom || 0,
|
||||
followMap: data.followmap || undefined,
|
||||
followZoom: data.followzoom || 0,
|
||||
updateInterval: data.updaterate || 3000,
|
||||
showLayerControl: data.showlayercontrol || true,
|
||||
title: data.title || 'Dynmap',
|
||||
loginEnabled: data['login-enabled'] || false,
|
||||
loginRequired: data.loginrequired || false,
|
||||
maxPlayers: data.maxcount || 0,
|
||||
hash: data.confighash || 0,
|
||||
version: response.dynmapversion || '',
|
||||
allowChat: response.allowwebchat || false,
|
||||
chatRequiresLogin: response['webchat-requires-login'] || false,
|
||||
chatInterval: response['webchat-interval'] || 5,
|
||||
defaultMap: response.defaultmap || undefined,
|
||||
defaultWorld: response.defaultworld || undefined,
|
||||
defaultZoom: response.defaultzoom || 0,
|
||||
followMap: response.followmap || undefined,
|
||||
followZoom: response.followzoom || 0,
|
||||
updateInterval: response.updaterate || 3000,
|
||||
showLayerControl: response.showlayercontrol || true,
|
||||
title: response.title || 'Dynmap',
|
||||
loginEnabled: response['login-enabled'] || false,
|
||||
loginRequired: response.loginrequired || false,
|
||||
maxPlayers: response.maxcount || 0,
|
||||
hash: response.confighash || 0,
|
||||
};
|
||||
}
|
||||
|
||||
function buildMessagesConfig(response: AxiosResponse): DynmapMessageConfig {
|
||||
const data = response.data;
|
||||
|
||||
function buildMessagesConfig(response: any): DynmapMessageConfig {
|
||||
return {
|
||||
chatNotAllowed: data['msg-chatnotallowed'] || '',
|
||||
chatRequiresLogin: data['msg-chatrequireslogin'] || '',
|
||||
chatCooldown: data.spammessage || '',
|
||||
mapTypes: data['msg-maptypes'] || '',
|
||||
players: data['msg-players'] || '',
|
||||
playerJoin: data.joinmessage || '',
|
||||
playerQuit: data.quitmessage || '',
|
||||
anonymousJoin: data['msg-hiddennamejoin'] || '',
|
||||
anonymousQuit: data['msg-hiddennamequit'] || '',
|
||||
chatNotAllowed: response['msg-chatnotallowed'] || '',
|
||||
chatRequiresLogin: response['msg-chatrequireslogin'] || '',
|
||||
chatCooldown: response.spammessage || '',
|
||||
mapTypes: response['msg-maptypes'] || '',
|
||||
players: response['msg-players'] || '',
|
||||
playerJoin: response.joinmessage || '',
|
||||
playerQuit: response.quitmessage || '',
|
||||
anonymousJoin: response['msg-hiddennamejoin'] || '',
|
||||
anonymousQuit: response['msg-hiddennamequit'] || '',
|
||||
}
|
||||
}
|
||||
|
||||
function buildWorlds(response: AxiosResponse): Array<DynmapWorld> {
|
||||
const data = response.data,
|
||||
worlds: Array<DynmapWorld> = [];
|
||||
function buildWorlds(response: any): Array<DynmapWorld> {
|
||||
const worlds: Array<DynmapWorld> = [];
|
||||
|
||||
(data.worlds || []).forEach((world: any) => {
|
||||
(response.worlds || []).forEach((world: any) => {
|
||||
const maps: Map<string, DynmapWorldMap> = new Map();
|
||||
|
||||
(world.maps || []).forEach((map: any) => {
|
||||
@ -102,9 +96,8 @@ function buildWorlds(response: AxiosResponse): Array<DynmapWorld> {
|
||||
return worlds;
|
||||
}
|
||||
|
||||
function buildComponents(response: AxiosResponse): DynmapComponentConfig {
|
||||
const data = response.data,
|
||||
components: DynmapComponentConfig = {
|
||||
function buildComponents(response: any): DynmapComponentConfig {
|
||||
const components: DynmapComponentConfig = {
|
||||
markers: {
|
||||
showLabels: false,
|
||||
},
|
||||
@ -115,7 +108,7 @@ function buildComponents(response: AxiosResponse): DynmapComponentConfig {
|
||||
logoControls: [],
|
||||
};
|
||||
|
||||
(data.components || []).forEach((component: any) => {
|
||||
(response.components || []).forEach((component: any) => {
|
||||
const type = component.type || "unknown";
|
||||
|
||||
switch(type) {
|
||||
@ -386,7 +379,13 @@ function buildUpdates(data: Array<any>): DynmapUpdates {
|
||||
|
||||
export default {
|
||||
getConfiguration(): Promise<DynmapConfigurationResponse> {
|
||||
return axios.get(window.config.url.configuration).then((response): DynmapConfigurationResponse => {
|
||||
return fetch(window.config.url.configuration).then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
}
|
||||
|
||||
return response.json();
|
||||
}).then((response): DynmapConfigurationResponse => {
|
||||
return {
|
||||
config: buildServerConfig(response),
|
||||
messages: buildMessagesConfig(response),
|
||||
@ -401,11 +400,16 @@ export default {
|
||||
url = url.replace('{world}', world);
|
||||
url = url.replace('{timestamp}', timestamp.toString());
|
||||
|
||||
return axios.get(url).then((response): DynmapUpdateResponse => {
|
||||
const data = response.data,
|
||||
players: Set<DynmapPlayer> = new Set();
|
||||
return fetch(url).then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
}
|
||||
|
||||
(data.players || []).forEach((player: any) => {
|
||||
return response.json();
|
||||
}).then((response): DynmapUpdateResponse => {
|
||||
const players: Set<DynmapPlayer> = new Set();
|
||||
|
||||
(response.players || []).forEach((player: any) => {
|
||||
players.add({
|
||||
account: player.account || "",
|
||||
health: player.health || 0,
|
||||
@ -440,15 +444,15 @@ export default {
|
||||
|
||||
return {
|
||||
worldState: {
|
||||
timeOfDay: data.servertime || 0,
|
||||
thundering: data.isThundering || false,
|
||||
raining: data.hasStorm || false,
|
||||
timeOfDay: response.servertime || 0,
|
||||
thundering: response.isThundering || false,
|
||||
raining: response.hasStorm || false,
|
||||
},
|
||||
playerCount: data.count || 0,
|
||||
configHash: data.configHash || 0,
|
||||
timestamp: data.timestamp || 0,
|
||||
playerCount: response.count || 0,
|
||||
configHash: response.configHash || 0,
|
||||
timestamp: response.timestamp || 0,
|
||||
players,
|
||||
updates: buildUpdates(data.updates || []),
|
||||
updates: buildUpdates(response.updates || []),
|
||||
}
|
||||
});
|
||||
},
|
||||
@ -456,18 +460,23 @@ export default {
|
||||
getMarkerSets(world: string): Promise<Map<string, DynmapMarkerSet>> {
|
||||
const url = `${window.config.url.markers}_markers_/marker_${world}.json`;
|
||||
|
||||
return axios.get(url).then((response): Map<string, DynmapMarkerSet> => {
|
||||
const data = response.data,
|
||||
sets: Map<string, DynmapMarkerSet> = new Map();
|
||||
return fetch(url).then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network response was not ok');
|
||||
}
|
||||
|
||||
data.sets = data.sets || {};
|
||||
return response.json();
|
||||
}).then((response): Map<string, DynmapMarkerSet> => {
|
||||
const sets: Map<string, DynmapMarkerSet> = new Map();
|
||||
|
||||
for(const key in data.sets) {
|
||||
if(!Object.prototype.hasOwnProperty.call(data.sets, key)) {
|
||||
response.sets = response.sets || {};
|
||||
|
||||
for(const key in response.sets) {
|
||||
if(!Object.prototype.hasOwnProperty.call(response.sets, key)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const set = data.sets[key],
|
||||
const set = response.sets[key],
|
||||
markers = buildMarkers(set.markers || {}),
|
||||
circles = buildCircles(set.circles || {}),
|
||||
areas = buildAreas(set.areas || {}),
|
||||
|
Loading…
Reference in New Issue
Block a user