@discordjs/rest
Advanced tools
Comparing version 0.4.0-dev.1649505800-3c0bbac to 0.4.0-dev.1649808564-01a423d
@@ -9,1 +9,2 @@ /// <reference lib="dom" /> | ||
export * from './lib/utils/constants'; | ||
export { makeURLSearchParams } from './lib/utils/utils'; |
@@ -168,3 +168,4 @@ "use strict"; | ||
RequestManager: () => RequestManager, | ||
RequestMethod: () => RequestMethod | ||
RequestMethod: () => RequestMethod, | ||
makeURLSearchParams: () => makeURLSearchParams | ||
}); | ||
@@ -394,2 +395,36 @@ | ||
// src/lib/utils/utils.ts | ||
function serializeSearchParam(value) { | ||
switch (typeof value) { | ||
case "string": | ||
return value; | ||
case "number": | ||
case "bigint": | ||
case "boolean": | ||
return value.toString(); | ||
case "object": | ||
if (value === null) | ||
return null; | ||
if (value instanceof Date) { | ||
return Number.isNaN(value.getTime()) ? null : value.toISOString(); | ||
} | ||
if (typeof value.toString === "function" && value.toString !== Object.prototype.toString) | ||
return value.toString(); | ||
return null; | ||
default: | ||
return null; | ||
} | ||
} | ||
__name(serializeSearchParam, "serializeSearchParam"); | ||
function makeURLSearchParams(options) { | ||
const params = new URLSearchParams(); | ||
if (!options) | ||
return params; | ||
for (const [key, value] of Object.entries(options)) { | ||
const serialized = serializeSearchParam(value); | ||
if (serialized !== null) | ||
params.append(key, serialized); | ||
} | ||
return params; | ||
} | ||
__name(makeURLSearchParams, "makeURLSearchParams"); | ||
function parseResponse(res) { | ||
@@ -928,4 +963,5 @@ if (res.headers.get("Content-Type")?.startsWith("application/json")) { | ||
RequestManager, | ||
RequestMethod | ||
RequestMethod, | ||
makeURLSearchParams | ||
}); | ||
//# sourceMappingURL=index.js.map |
import type { Response } from 'node-fetch'; | ||
/** | ||
* Creates and populates an URLSearchParams instance from an object, stripping | ||
* out null and undefined values, while also coercing non-strings to strings. | ||
* @param options The options to use | ||
* @returns A populated URLSearchParams instance | ||
*/ | ||
export declare function makeURLSearchParams(options?: Record<string, unknown>): URLSearchParams; | ||
/** | ||
* Converts the response to usable data | ||
@@ -4,0 +11,0 @@ * @param res The node-fetch response |
{ | ||
"name": "@discordjs/rest", | ||
"version": "0.4.0-dev.1649505800-3c0bbac", | ||
"version": "0.4.0-dev.1649808564-01a423d", | ||
"description": "The REST API for discord.js", | ||
@@ -5,0 +5,0 @@ "scripts": { |
@@ -1,3 +0,92 @@ | ||
# `@discordjs/rest` | ||
<div align="center"> | ||
<br /> | ||
<p> | ||
<a href="https://discord.js.org"><img src="https://discord.js.org/static/logo.svg" width="546" alt="discord.js" /></a> | ||
</p> | ||
<br /> | ||
<p> | ||
<a href="https://discord.gg/djs"><img src="https://img.shields.io/discord/222078108977594368?color=5865F2&logo=discord&logoColor=white" alt="Discord server" /></a> | ||
<a href="https://www.npmjs.com/package/@discordjs/rest"><img src="https://img.shields.io/npm/v/@discordjs/rest.svg?maxAge=3600" alt="npm version" /></a> | ||
<a href="https://www.npmjs.com/package/@discordjs/rest"><img src="https://img.shields.io/npm/dt/@discordjs/rest.svg?maxAge=3600" alt="npm downloads" /></a> | ||
<a href="https://github.com/discordjs/discord.js/actions"><img src="https://github.com/discordjs/discord.js/actions/workflows/test.yml/badge.svg" alt="Tests status" /></a> | ||
</p> | ||
</div> | ||
> The REST API module for Discord.js | ||
## Installation | ||
**Node.js 16.9.0 or newer is required.** | ||
```sh-session | ||
npm install @discordjs/rest | ||
yarn add @discordjs/rest | ||
pnpm add @discordjs/rest | ||
``` | ||
## Examples | ||
Install all required dependencies: | ||
```sh-session | ||
npm install @discordjs/rest discord-api-types | ||
yarn add @discordjs/rest discord-api-types | ||
pnpm add @discordjs/rest discord-api-types | ||
``` | ||
Send a basic message: | ||
```js | ||
import { REST } from '@discordjs/rest'; | ||
import { Routes } from 'discord-api-types/v10'; | ||
const rest = new REST({ version: '10' }).setToken('token'); | ||
try { | ||
await rest.post(Routes.channelMessages(CHANNEL_ID), { | ||
body: { | ||
content: 'A message via REST!', | ||
}, | ||
}); | ||
} catch (error) { | ||
console.error(error); | ||
} | ||
``` | ||
Create a thread from an existing message to be archived after 60 minutes of inactivity: | ||
```js | ||
import { REST } from '@discordjs/rest'; | ||
import { Routes } from 'discord-api-types/v10'; | ||
const rest = new REST({ version: '10' }).setToken('token'); | ||
try { | ||
await rest.post(Routes.threads(CHANNEL_ID, MESSAGE_ID), { | ||
body: { | ||
name: 'Thread', | ||
auto_archive_duration: 60, | ||
}, | ||
}); | ||
} catch (error) { | ||
console.error(error); | ||
} | ||
``` | ||
## Links | ||
- [Website](https://discord.js.org/) ([source](https://github.com/discordjs/website)) | ||
- [Dev documentation](https://discord.js.org/#/docs/rest/main/general/welcome) (stable coming soon) | ||
- [discord.js Discord server](https://discord.gg/djs) | ||
- [Discord API Discord server](https://discord.gg/discord-api) | ||
- [GitHub](https://github.com/discordjs/discord.js/tree/main/packages/rest) | ||
- [npm](https://www.npmjs.com/package/@discordjs/rest) | ||
- [Related libraries](https://discord.com/developers/docs/topics/community-resources#libraries) | ||
## Contributing | ||
Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the | ||
[documentation](https://discord.js.org/#/docs/rest/main/general/welcome). | ||
See [the contribution guide](https://github.com/discordjs/discord.js/blob/main/.github/CONTRIBUTING.md) if you'd like to submit a PR. | ||
## Help | ||
If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [discord.js Server](https://discord.gg/djs). |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
281150
2693
93