UNPKG

servertap-js

Version:

A TypeScript library for working with the ServerTap API

1 lines 9.48 kB
{"version":3,"file":"index.cjs","sources":["../src/utils.ts","../src/base.ts","../src/players/index.ts","../src/server/index.ts","../src/chat/index.ts","../src/economy/index.ts","../src/placeholder/index.ts","../src/plugins/index.ts","../src/index.ts"],"sourcesContent":["export function applyMixins(derivedCtor: any, baseCtors: any[]) {\r\n baseCtors.forEach(baseCtor => {\r\n Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {\r\n Object.defineProperty(\r\n derivedCtor.prototype,\r\n name,\r\n Object.getOwnPropertyDescriptor(baseCtor.prototype, name)\r\n );\r\n });\r\n });\r\n}","import fetch from 'isomorphic-unfetch';\r\nimport { Config } from './types';\r\n\r\n\r\nexport abstract class Base {\r\n private apiKey: string\r\n private baseUrl: string\r\n\r\n constructor(config: Config) {\r\n this.apiKey = config.apiKey\r\n this.baseUrl = config.baseUrl || 'https://dev.to/api/'\r\n }\r\n\r\n protected request<T>(endpoint: string, options?: RequestInit, contentType: string = 'application/json'): Promise<T> {\r\n const url = this.baseUrl + \"/v1\" + endpoint\r\n let headers = {\r\n 'Content-type': contentType,\r\n 'api-key': this.apiKey\r\n }\r\n\r\n const config = {\r\n ...options,\r\n headers,\r\n }\r\n\r\n return fetch(url, config).then(r => {\r\n if (r.ok) {\r\n return r.json()\r\n }\r\n switch (r.status) {\r\n case 404:\r\n throw new Error(\"Not found\");\r\n case 400:\r\n throw new Error(\"Bad request\");\r\n }\r\n })\r\n }\r\n}\r\n","import { Base } from \"../base\";\r\nimport { OfflinePlayer, Player } from \"./interfaces\";\r\n\r\nexport class Players extends Base {\r\n getAllPlayers(): Promise<OfflinePlayer[]> {\r\n return this.request<OfflinePlayer[]>(`/players/all`);\r\n }\r\n getPlayers(): Promise<Player[]> {\r\n return this.request<Player[]>(`/players`);\r\n }\r\n getOps(): Promise<OfflinePlayer[]> {\r\n return this.request<OfflinePlayer[]>(`/server/ops`);\r\n }\r\n addOp(playerUuid: string): Promise<string> {\r\n return this.request(`/server/ops`, { method: \"POST\", body: `playerUuid=${playerUuid}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n removeOp(playerUuid: string): Promise<string> {\r\n return this.request(`/server/ops`, { method: \"DELETE\", body: `playerUuid=${playerUuid}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n getPlayer(playerUuid: string): Promise<Player> {\r\n return this.request<Player>(`/players/${playerUuid}`);\r\n }\r\n getPlayerInventory(playerUuid: string, worldUuid: string): Promise<string> {\r\n return this.request(`/players/${playerUuid}/${worldUuid}/inventory`);\r\n }\r\n}","import { Base } from \"../base\";\r\nimport { Server as IServer, World } from \"./interfaces\";\r\nimport { Whitelist, ScoreBoard } from \"./interfaces\";\r\n\r\nexport class Server extends Base {\r\n ping(): Promise<string> {\r\n return this.request<string>(`/ping`);\r\n }\r\n getServer(): Promise<IServer> {\r\n return this.request<IServer>(`/server`);\r\n }\r\n execCommand(command: string): Promise<string> {\r\n if (command.startsWith(\"/\")) {\r\n command = command.substring(1);\r\n }\r\n return this.request<string>(`/server/exec`, { method: \"POST\", body: `command=${command}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n getWhitelist(): Promise<Whitelist[]> {\r\n return this.request<Whitelist[]>(`/server/whitelist`);\r\n }\r\n addWhitelist(uuid: string, name: string): Promise<string> {\r\n return this.request<string>(`/server/whitelist`, { method: \"POST\", body: `uuid=${uuid}&name=${name}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n getWorlds(): Promise<World[]> {\r\n return this.request<World[]>(`/worlds`);\r\n }\r\n saveWorld(uuid: string): Promise<string> {\r\n return this.request<string>(`/worlds/${uuid}/save`, { method: \"POST\" });\r\n }\r\n getScoreBoards(): Promise<ScoreBoard[]> {\r\n return this.request<ScoreBoard[]>(`/scoreboard`);\r\n }\r\n getScoreBoard(name: string): Promise<ScoreBoard> {\r\n return this.request<ScoreBoard>(`/scoreboard/${name}`);\r\n }\r\n\r\n\r\n}","import { Base } from \"../base\";\r\n\r\nexport class Chat extends Base {\r\n broadcast(message: string): Promise<string> {\r\n return this.request(\"/chat/broadcast\", { method: \"POST\", body: `message=${message}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n tell(playerUuid: string, message: string): Promise<string> {\r\n return this.request(\"/chat/tell\", { method: \"POST\", body: `playerUuid=${playerUuid}&message=${message}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n}","import { Base } from \"../base\";\r\n\r\nexport class Economy extends Base {\r\n pay(uuid: string, amount: number): Promise<string> {\r\n return this.request(`/economy/pay`, { method: \"POST\", body: `uuid=${uuid}&amount=${amount}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n debit(uuid: string, amount: number): Promise<string> {\r\n return this.request(`/economy/debit`, { method: \"POST\", body: `uuid=${uuid}&amount=${amount}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n economy(): Promise<string> {\r\n return this.request(`/economy`);\r\n }\r\n\r\n}","import { Base } from \"../base\";\r\n\r\nexport class PlaceHolderApi extends Base {\r\n replace(message: string, uuid: string): Promise<string> {\r\n return this.request(`/placeholder/replace`, { method: \"POST\", body: `message=${message},uuid=${uuid}` }, \"application/x-www-form-urlencoded\");\r\n }\r\n}","import { Base } from \"../base\";\r\nimport { Plugin } from \"./interfaces\";\r\n\r\nexport class Plugins extends Base {\r\n getPlugins(): Promise<Plugin[]> {\r\n return this.request<Plugin[]>(`/plugins`);\r\n }\r\n}","import { Players } from \"./players\";\r\nimport { Server } from \"./server\";\r\nimport { Chat } from \"./chat\";\r\nimport { Economy } from \"./economy\";\r\nimport { PlaceHolderApi } from \"./placeholder\";\r\nimport { Plugins } from \"./plugins\";\r\nimport { Base } from \"./base\";\r\n\r\nimport { applyMixins } from \"./utils\";\r\n\r\n\r\nclass ServerTap extends Base {\r\n}\r\ninterface ServerTap extends Players, Server, Chat, Economy, PlaceHolderApi, Plugins { }\r\napplyMixins(ServerTap, [Players, Server, Chat, Economy, PlaceHolderApi, Plugins]);\r\n\r\nexport default ServerTap;"],"names":["derivedCtor","Base","config","apiKey","baseUrl","this","request","endpoint","options","contentType","url","headers","fetch","then","r","ok","json","status","Error","Players","getAllPlayers","getPlayers","getOps","addOp","playerUuid","method","body","removeOp","getPlayer","getPlayerInventory","worldUuid","Server","ping","getServer","execCommand","command","startsWith","substring","getWhitelist","addWhitelist","uuid","name","getWorlds","saveWorld","getScoreBoards","getScoreBoard","Chat","broadcast","message","tell","Economy","pay","amount","debit","economy","PlaceHolderApi","replace","Plugins","getPlugins","ServerTap","forEach","baseCtor","Object","getOwnPropertyNames","prototype","defineProperty","getOwnPropertyDescriptor"],"mappings":"qgBAA4BA,ECINC,0BAIlB,WAAYC,QAHJC,mBACAC,eAGJC,KAAKF,OAASD,EAAOC,OACrBE,KAAKD,QAAUF,EAAOE,SAAW,yCAG3BE,QAAA,SAAWC,EAAkBC,EAAuBC,YAAAA,IAAAA,EAAsB,oBAChF,IAAMC,EAAML,KAAKD,QAAU,MAAQG,EAM7BL,OACCM,GACHG,QAPU,CACV,eAAgBF,EAChB,UAAWJ,KAAKF,UAQpB,OAAOS,UAAMF,EAAKR,GAAQW,KAAK,SAAAC,GAC3B,GAAIA,EAAEC,GACF,OAAOD,EAAEE,OAEb,OAAQF,EAAEG,QACN,SACI,UAAUC,MAAM,aACpB,SACI,UAAUA,MAAM,wBC9BvBC,+GACTC,cAAA,WACI,YAAYd,2BAEhBe,WAAA,WACI,YAAYf,uBAEhBgB,OAAA,WACI,YAAYhB,0BAEhBiB,MAAA,SAAMC,GACF,YAAYlB,sBAAuB,CAAEmB,OAAQ,OAAQC,mBAAoBF,GAAgB,wCAE7FG,SAAA,SAASH,GACL,YAAYlB,sBAAuB,CAAEmB,OAAQ,SAAUC,mBAAoBF,GAAgB,wCAE/FI,UAAA,SAAUJ,GACN,YAAYlB,oBAA4BkB,MAE5CK,mBAAA,SAAmBL,EAAoBM,GACnC,YAAYxB,oBAAoBkB,MAAcM,oBApBzB7B,GCChB8B,+GACTC,KAAA,WACI,YAAY1B,oBAEhB2B,UAAA,WACI,YAAY3B,sBAEhB4B,YAAA,SAAYC,GAIR,OAHIA,EAAQC,WAAW,OACnBD,EAAUA,EAAQE,UAAU,SAEpB/B,uBAAgC,CAAEmB,OAAQ,OAAQC,gBAAiBS,GAAa,wCAEhGG,aAAA,WACI,YAAYhC,gCAEhBiC,aAAA,SAAaC,EAAcC,GACvB,YAAYnC,4BAAqC,CAAEmB,OAAQ,OAAQC,aAAcc,WAAaC,GAAU,wCAE5GC,UAAA,WACI,YAAYpC,sBAEhBqC,UAAA,SAAUH,GACN,YAAYlC,mBAA2BkC,UAAa,CAAEf,OAAQ,YAElEmB,eAAA,WACI,YAAYtC,0BAEhBuC,cAAA,SAAcJ,GACV,YAAYnC,uBAAmCmC,OA7B3BxC,GCFf6C,+GACTC,UAAA,SAAUC,GACN,YAAY1C,QAAQ,kBAAmB,CAAEmB,OAAQ,OAAQC,gBAAiBsB,GAAa,wCAE3FC,KAAA,SAAKzB,EAAoBwB,GACrB,YAAY1C,QAAQ,aAAc,CAAEmB,OAAQ,OAAQC,mBAAoBF,cAAsBwB,GAAa,yCALzF/C,GCAbiD,+GACTC,IAAA,SAAIX,EAAcY,GACd,YAAY9C,uBAAwB,CAAEmB,OAAQ,OAAQC,aAAcc,aAAeY,GAAY,wCAEnGC,MAAA,SAAMb,EAAcY,GAChB,YAAY9C,yBAA0B,CAAEmB,OAAQ,OAAQC,aAAcc,aAAeY,GAAY,wCAErGE,QAAA,WACI,YAAYhD,wBARSL,GCAhBsD,uGACTC,QAAA,SAAQR,EAAiBR,GACrB,YAAYlC,+BAAgC,CAAEmB,OAAQ,OAAQC,gBAAiBsB,WAAgBR,GAAU,yCAF7EvC,GCCvBwD,uGACTC,WAAA,WACI,YAAYpD,wBAFSL,GCQvB0D,8FAAkB1D,GRXID,EQchB2D,EAAW,CAACxC,EAASY,EAAQe,EAAMI,EAASK,EAAgBE,GRb1DG,QAAQ,SAAAC,GACdC,OAAOC,oBAAoBF,EAASG,WAAWJ,QAAQ,SAAAnB,GACnDqB,OAAOG,eACHjE,EAAYgE,UACZvB,EACAqB,OAAOI,yBAAyBL,EAASG,UAAWvB"}