UNPKG

runpod-client

Version:

This unofficial runpod.io client provides functionality to interact with the Runpod.io API.

109 lines (108 loc) 5.67 kB
(function(s,p){typeof exports=="object"&&typeof module<"u"?module.exports=p():typeof define=="function"&&define.amd?define(p):(s=typeof globalThis<"u"?globalThis:s||self,s["runpod-client"]=p())})(this,function(){"use strict";var s=(e=>(e.create="create",e.list="list",e.start="start",e.stop="stop",e.get="get",e.getGPUTypes="getGPUTypes",e.getGPU="getGPU",e))(s||{});const p=async e=>(await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:` query Pods { myself { pods { id name runtime { uptimeInSeconds ports { ip isIpPublic privatePort publicPort type } gpus { id gpuUtilPercent memoryUtilPercent } container { cpuPercent memoryPercent } } } } } `})})).json()).data.myself.pods,i=async e=>(await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:` query GpuTypes { gpuTypes { id displayName memoryInGb } } `})})).json()).data.gpuTypes,a=async(e,n,t=1)=>(await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:` mutation { podResume( input: { podId: "${n}", gpuCount: ${t} } ) { id desiredStatus imageName env machineId machine { podHostId } } }`})})).json()).data,d=async(e,n)=>(await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:` mutation { podStop( input: {podId: "${n}" }) { id desiredStatus } }`})})).json()).data,u=async(e,n)=>(await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:` query Pod { pod( input: { podId: "${n}" } ) { id name runtime { uptimeInSeconds ports { ip isIpPublic privatePort publicPort type } gpus { id gpuUtilPercent memoryUtilPercent } container { cpuPercent memoryPercent } } } }`})})).json()).data,c=async(e,n,t)=>{const o=await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:` query GpuTypes { gpuTypes(input: {id: "${n}"}) { id displayName memoryInGb secureCloud communityCloud lowestPrice(input: {gpuCount: ${t||1}}) { minimumBidPrice uninterruptablePrice } } } `})})).json();if(o.errors)console.log(o.errors[0].message);else return o.data.gpuTypes};return e=>({action:n,id:t,count:r})=>{const o="https://api.runpod.io/graphql?api_key="+e;switch(n){case s.list:return p(o);case s.start:return t?a(o,t,r):"Please provide a pod id";case s.stop:return t?d(o,t):"Please provide a pod id";case s.get:return t?u(o,t):"Please provide a pod id";case s.getGPU:return t?c(o,t,r):"Please provide a gpu id";case s.getGPUTypes:return i(o)}}});