steamwebapi-trade-bot
Version:
The official TypeScript library for the Steamwebapi Trade Bot
1 lines • 7.23 kB
Source Map (JSON)
{"version":3,"sources":["../src/index.ts","../src/utils.ts","../src/error.ts"],"sourcesContent":["import { mergeParams } from \"./utils\";\nimport { client } from \"./utils\";\nimport type {\n AcceptParamsType,\n CancelParamsType,\n CreateParamsType,\n DeclineParamsType,\n StatusParamsType,\n DefaultParams,\n} from \"./index.d\";\nimport { ApiError } from \"./error\";\n\ninterface ITrade {\n setApiKey: (apiKey: string) => void;\n getApiKey: () => string;\n createOffer: (createParams: CreateParamsType) => void;\n getOffers: (statusParams: StatusParamsType) => void;\n cancelOffer: (cancelParams: CancelParamsType) => void;\n declineOffer: (declineParams: DeclineParamsType) => void;\n acceptOffer: (acceptParams: AcceptParamsType) => void;\n}\n\nconst ERROR = {\n message: \"Unknown Error\",\n status: 500,\n};\n\nexport default class Trade implements ITrade {\n defaults: DefaultParams;\n private apiKey: string;\n\n constructor(apiKey: string, config: DefaultParams) {\n this.apiKey = apiKey;\n client.defaults.params.key = apiKey;\n\n this.defaults = { ...config };\n }\n\n setApiKey(apiKey: string) {\n this.apiKey = apiKey;\n return this;\n }\n\n getApiKey() {\n return this.apiKey;\n }\n\n async createOffer(createParams: CreateParamsType) {\n const params = mergeParams(createParams, this.defaults, [\n \"steamloginsecure\",\n \"partneritemassetids\",\n \"myitemsassetids\",\n \"tradelink\",\n \"partnersteamid\",\n \"message\",\n \"game\",\n ]);\n\n try {\n const createRes = await client.post(\"/create\", params);\n\n if (createRes.status !== 200) throw new ApiError(ERROR);\n\n return createRes;\n } catch (error) {\n return error;\n }\n }\n\n async getOffers(statusParams: StatusParamsType) {\n const params = mergeParams(statusParams, this.defaults, [\n \"steamcommunityapikey\",\n \"partnersteamid\",\n \"assetid\",\n ]);\n\n try {\n const offersRes = await client.post(\"/status\", params);\n if (offersRes.status !== 200) throw new ApiError(ERROR);\n\n return offersRes;\n } catch (error) {\n return error;\n }\n }\n\n async cancelOffer(cancelParams: CancelParamsType) {\n const params = mergeParams(cancelParams, this.defaults, [\n \"steamloginsecure\",\n \"tradeofferid\",\n ]);\n\n try {\n const cancelRes = await client.put(\"/cancel\", params);\n if (cancelRes.status !== 200) throw new ApiError(ERROR);\n\n return { success: true };\n } catch (error) {\n return error;\n }\n }\n\n async declineOffer(declineParams: DeclineParamsType) {\n const params = mergeParams(declineParams, this.defaults, [\n \"steamloginsecure\",\n \"tradeofferid\",\n ]);\n\n try {\n const declineRes = await client.put(\"/decline\", params);\n if (declineRes.status !== 200) throw new ApiError(ERROR);\n\n return { success: true };\n } catch (error) {\n return error;\n }\n }\n\n async acceptOffer(acceptParams: AcceptParamsType) {\n const params = mergeParams(acceptParams, this.defaults, [\n \"steamloginsecure\",\n \"partnersteamid\",\n \"tradeofferid\",\n ]);\n\n try {\n const acceptRes = await client.put(\"/accept\", params);\n if (acceptRes.status !== 200) throw new ApiError(ERROR);\n\n return { success: true };\n } catch (error) {\n return error;\n }\n }\n}\n","import axios, { AxiosInstance } from \"axios\";\nimport { ApiError } from \"./error\";\n\nconst client: AxiosInstance = axios.create({\n baseURL: \"https://www.steamwebapi.com/steam/api/trade\",\n params: {},\n});\n\nclient.interceptors.response.use(\n null,\n (error: any) => {\n const message = error.response?.data?.error?.[0] ?? error.message;\n const status =\n error.response?.data?.status ?? error.response?.status ?? 500;\n\n throw new ApiError({ message, status });\n },\n { synchronous: true }\n);\n\ntype Params = Record<string, any>;\ntype MergeKeys = string[] | null;\n\nconst mergeParams = (\n params: Params,\n defaultParams: Params,\n mergeKeys: MergeKeys\n) => {\n const obj: Params = {};\n\n mergeKeys?.forEach((key) => {\n obj[key] = params?.[key] ?? defaultParams?.[key];\n });\n\n return obj;\n};\n\nexport { client, mergeParams };\n","import { AxiosError } from \"axios\";\n\ntype ErrorType = {\n message: string;\n status: number;\n};\n\nexport class ApiError extends AxiosError {\n constructor(error: ErrorType) {\n super();\n this.name = \"APIError\";\n this.message = error.message;\n this.status = error.status;\n }\n}\n"],"mappings":"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","names":["import_axios","axios"]}