Class: EmbedParser
An embed tag will send an embed in the tag response. There are two ways to use the embed tag, either by using properly formatted embed JSON or manually inputting the accepted embed properties.
Embed can be used either by using a json string or by using the embed properties.
Example
Using JSON
{embed: json}
Example
{embed: { "title": "Hello!", "description": "This is a test embed." } }
{embed: {
"title": "Here's a random duck!",
"image": { "url": "https://random-d.uk/api/randomimg" },
"color": 15194415
} }
Example
Using properties
{embed(property):value}
Example
{embed(color): 0x37b2cb}
{embed(title): Rules}
{embed(description): Follow these rules to ensure a good experience in our server!}
{embed(field): Rule 1|Respect everyone you speak to.|false}
Developers need to construct the embed builder themselves with the output of the tag.
Example
const { Interpreter } = require("tagscript")
const { EmbedParser } = require("tagscript-plugin-discord")
const ts = new Interpreter(new EmbedParser())
const result = await ts.run('{embed: { "title": "Hello!", "description": "This is a test embed." }}')
// You might need to change the embed object before passing to `EmbedBuilder`. Changes such as change thumbnail and image value from string to object.
const embed = new EmbedBuilder(response.actions.embed);
Remarks
The return type depends on user's input. So it might not be EmbedData | APIEmbed
. So use a typeguard to check.
Hierarchy
-
↳
EmbedParser
Implements
Constructors
constructor
• new EmbedParser()
Overrides
Properties
acceptedNames
• Protected
acceptedNames: string
[]
Inherited from
requiredParameter
• Protected
requiredParameter: boolean
Inherited from
requiredPayload
• Protected
requiredPayload: boolean
Inherited from
Methods
parse
▸ parse(ctx
): Promise
(opens in a new tab)<string
>
Parses the given tag.
Parameters
Name | Type | Description |
---|---|---|
ctx | Context | The context of the tag. |
Returns
Promise
(opens in a new tab)<string
>
Implementation of
parseEmbedJSON
▸ Protected
parseEmbedJSON(payload
): Awaitable
<APIEmbed
(opens in a new tab) | EmbedData
(opens in a new tab)>
This method is protected so that anyone can extend the embed json parser to allow urls
Parameters
Name | Type | Description |
---|---|---|
payload | string | The payload to parse |
Returns
Awaitable
<APIEmbed
(opens in a new tab) | EmbedData
(opens in a new tab)>
returnEmbed
▸ Private
returnEmbed(ctx
, data
): string
Parameters
Name | Type |
---|---|
ctx | Context |
data | APIEmbed (opens in a new tab) | EmbedData (opens in a new tab) |
Returns
string
willAccept
▸ willAccept(ctx
): boolean
Whether the parser can handle the given tag.
Parameters
Name | Type | Description |
---|---|---|
ctx | Context | The context of the tag. |
Returns
boolean