@magicyan/discord 1.4.8 → 1.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,9 +6,10 @@ const selectmenu = require('../../guards/selectmenu.cjs');
6
6
  const gallery = require('./gallery.cjs');
7
7
  const row = require('./row.cjs');
8
8
  const text = require('./text.cjs');
9
+ const core = require('@magicyan/core');
9
10
 
10
11
  function createComponents(...data) {
11
- return data.flat().filter((value) => value !== null && value !== void 0).map((component) => {
12
+ return data.flat().filter((value) => core.isDefined(value)).filter((value) => typeof value !== "boolean").map((component) => {
12
13
  if (typeof component === "string") {
13
14
  return text.createTextDisplay(component);
14
15
  }
@@ -4,9 +4,10 @@ import { isAnySelectMenuBuilder } from '../../guards/selectmenu.mjs';
4
4
  import { createMediaGallery } from './gallery.mjs';
5
5
  import { createRow } from './row.mjs';
6
6
  import { createTextDisplay } from './text.mjs';
7
+ import { isDefined } from '@magicyan/core';
7
8
 
8
9
  function createComponents(...data) {
9
- return data.flat().filter((value) => value !== null && value !== void 0).map((component) => {
10
+ return data.flat().filter((value) => isDefined(value)).filter((value) => typeof value !== "boolean").map((component) => {
10
11
  if (typeof component === "string") {
11
12
  return createTextDisplay(component);
12
13
  }
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const section = require('./section.cjs');
4
+ const text = require('./text.cjs');
5
+
6
+ function createThumbArea(argA, argB) {
7
+ const data = typeof argA === "string" ? { content: argA, thumbnail: argB } : argA;
8
+ return data.thumbnail ? section.createSection(data.content, data.thumbnail) : text.createTextDisplay(data.content);
9
+ }
10
+
11
+ exports.createThumbArea = createThumbArea;
@@ -0,0 +1,9 @@
1
+ import { createSection } from './section.mjs';
2
+ import { createTextDisplay } from './text.mjs';
3
+
4
+ function createThumbArea(argA, argB) {
5
+ const data = typeof argA === "string" ? { content: argA, thumbnail: argB } : argA;
6
+ return data.thumbnail ? createSection(data.content, data.thumbnail) : createTextDisplay(data.content);
7
+ }
8
+
9
+ export { createThumbArea };
package/dist/index.cjs CHANGED
@@ -17,6 +17,7 @@ const gallery = require('./functions/components/gallery.cjs');
17
17
  const separator$1 = require('./functions/components/separator.cjs');
18
18
  const section = require('./functions/components/section.cjs');
19
19
  const text = require('./functions/components/text.cjs');
20
+ const thumbarea = require('./functions/components/thumbarea.cjs');
20
21
  const thumbnail = require('./functions/components/thumbnail.cjs');
21
22
  const components = require('./functions/components/components.cjs');
22
23
  const container = require('./functions/components/container.cjs');
@@ -56,6 +57,7 @@ exports.createMediaGallery = gallery.createMediaGallery;
56
57
  exports.createSeparator = separator$1.createSeparator;
57
58
  exports.createSection = section.createSection;
58
59
  exports.createTextDisplay = text.createTextDisplay;
60
+ exports.createThumbArea = thumbarea.createThumbArea;
59
61
  exports.createThumbnail = thumbnail.createThumbnail;
60
62
  exports.createComponents = components.createComponents;
61
63
  exports.createContainer = container.createContainer;
package/dist/index.d.cts CHANGED
@@ -505,7 +505,48 @@ declare function createSection(data: SectionData): SectionBuilder;
505
505
  */
506
506
  declare function createTextDisplay(content: string, id?: number): TextDisplayBuilder;
507
507
 
508
- type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined;
508
+ type ThumbAreaThumbnail = SectionThumbnailAccessory | null | undefined;
509
+ type ThumbAreaData = {
510
+ content: string;
511
+ thumbnail?: ThumbAreaThumbnail;
512
+ };
513
+ /**
514
+ * Creates either a {@link SectionBuilder} or a {@link TextDisplayBuilder} based on the presence of a thumbnail.
515
+ *
516
+ * If a thumbnail is provided, this function will return a {@link SectionBuilder} with the content and thumbnail.
517
+ * Otherwise, it will return a {@link TextDisplayBuilder} with only the provided content.
518
+ *
519
+ * ---
520
+ * **Overloads:**
521
+ * - Provide `content` and optional `thumbnail` as separate parameters.
522
+ * - Provide a single object with `content` and optional `thumbnail` properties.
523
+ *
524
+ * @param content - The text content to be displayed.
525
+ * @param thumbnail - (Optional) A thumbnail to include. If provided, a section will be created; otherwise, a simple text display.
526
+ *
527
+ * @param data - An object containing `content` and optional `thumbnail` properties.
528
+ *
529
+ * @returns A {@link SectionBuilder} if a thumbnail is provided, otherwise a {@link TextDisplayBuilder}.
530
+ *
531
+ * @example
532
+ * // Using positional parameters with a thumbnail
533
+ * const thumbSection = createThumbArea("Welcome!", "https://example.com/image.png");
534
+ *
535
+ * @example
536
+ * // Using an object without a thumbnail
537
+ * const textOnly = createThumbArea({ content: "Just text here" });
538
+ *
539
+ * @example
540
+ * // Using an object with a thumbnail
541
+ * const thumbSection = createThumbArea({
542
+ * content: "Check this out!",
543
+ * thumbnail: "https://example.com/image.png"
544
+ * });
545
+ */
546
+ declare function createThumbArea(content: string, thumbnail?: ThumbAreaThumbnail): SectionBuilder | TextDisplayBuilder;
547
+ declare function createThumbArea(data: ThumbAreaData): SectionBuilder | TextDisplayBuilder;
548
+
549
+ type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined | boolean;
509
550
  type CreateComponentData = ComponentData | ContainerBuilder;
510
551
  declare function createComponents(...data: (CreateComponentData | CreateComponentData[])[]): (SeparatorBuilder | TextDisplayBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
511
552
 
@@ -694,5 +735,5 @@ declare function isAnySelectMenuBuilder(value: unknown): value is AnySelectMenuB
694
735
 
695
736
  declare function isButtonBuilder(value: unknown): value is ButtonBuilder;
696
737
 
697
- export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, Separator, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus, wrapButtons };
698
- export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbnailData };
738
+ export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, Separator, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbArea, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus, wrapButtons };
739
+ export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbAreaData, ThumbAreaThumbnail, ThumbnailData };
package/dist/index.d.mts CHANGED
@@ -505,7 +505,48 @@ declare function createSection(data: SectionData): SectionBuilder;
505
505
  */
506
506
  declare function createTextDisplay(content: string, id?: number): TextDisplayBuilder;
507
507
 
508
- type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined;
508
+ type ThumbAreaThumbnail = SectionThumbnailAccessory | null | undefined;
509
+ type ThumbAreaData = {
510
+ content: string;
511
+ thumbnail?: ThumbAreaThumbnail;
512
+ };
513
+ /**
514
+ * Creates either a {@link SectionBuilder} or a {@link TextDisplayBuilder} based on the presence of a thumbnail.
515
+ *
516
+ * If a thumbnail is provided, this function will return a {@link SectionBuilder} with the content and thumbnail.
517
+ * Otherwise, it will return a {@link TextDisplayBuilder} with only the provided content.
518
+ *
519
+ * ---
520
+ * **Overloads:**
521
+ * - Provide `content` and optional `thumbnail` as separate parameters.
522
+ * - Provide a single object with `content` and optional `thumbnail` properties.
523
+ *
524
+ * @param content - The text content to be displayed.
525
+ * @param thumbnail - (Optional) A thumbnail to include. If provided, a section will be created; otherwise, a simple text display.
526
+ *
527
+ * @param data - An object containing `content` and optional `thumbnail` properties.
528
+ *
529
+ * @returns A {@link SectionBuilder} if a thumbnail is provided, otherwise a {@link TextDisplayBuilder}.
530
+ *
531
+ * @example
532
+ * // Using positional parameters with a thumbnail
533
+ * const thumbSection = createThumbArea("Welcome!", "https://example.com/image.png");
534
+ *
535
+ * @example
536
+ * // Using an object without a thumbnail
537
+ * const textOnly = createThumbArea({ content: "Just text here" });
538
+ *
539
+ * @example
540
+ * // Using an object with a thumbnail
541
+ * const thumbSection = createThumbArea({
542
+ * content: "Check this out!",
543
+ * thumbnail: "https://example.com/image.png"
544
+ * });
545
+ */
546
+ declare function createThumbArea(content: string, thumbnail?: ThumbAreaThumbnail): SectionBuilder | TextDisplayBuilder;
547
+ declare function createThumbArea(data: ThumbAreaData): SectionBuilder | TextDisplayBuilder;
548
+
549
+ type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined | boolean;
509
550
  type CreateComponentData = ComponentData | ContainerBuilder;
510
551
  declare function createComponents(...data: (CreateComponentData | CreateComponentData[])[]): (SeparatorBuilder | TextDisplayBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
511
552
 
@@ -694,5 +735,5 @@ declare function isAnySelectMenuBuilder(value: unknown): value is AnySelectMenuB
694
735
 
695
736
  declare function isButtonBuilder(value: unknown): value is ButtonBuilder;
696
737
 
697
- export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, Separator, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus, wrapButtons };
698
- export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbnailData };
738
+ export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, Separator, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbArea, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus, wrapButtons };
739
+ export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbAreaData, ThumbAreaThumbnail, ThumbnailData };
package/dist/index.d.ts CHANGED
@@ -505,7 +505,48 @@ declare function createSection(data: SectionData): SectionBuilder;
505
505
  */
506
506
  declare function createTextDisplay(content: string, id?: number): TextDisplayBuilder;
507
507
 
508
- type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined;
508
+ type ThumbAreaThumbnail = SectionThumbnailAccessory | null | undefined;
509
+ type ThumbAreaData = {
510
+ content: string;
511
+ thumbnail?: ThumbAreaThumbnail;
512
+ };
513
+ /**
514
+ * Creates either a {@link SectionBuilder} or a {@link TextDisplayBuilder} based on the presence of a thumbnail.
515
+ *
516
+ * If a thumbnail is provided, this function will return a {@link SectionBuilder} with the content and thumbnail.
517
+ * Otherwise, it will return a {@link TextDisplayBuilder} with only the provided content.
518
+ *
519
+ * ---
520
+ * **Overloads:**
521
+ * - Provide `content` and optional `thumbnail` as separate parameters.
522
+ * - Provide a single object with `content` and optional `thumbnail` properties.
523
+ *
524
+ * @param content - The text content to be displayed.
525
+ * @param thumbnail - (Optional) A thumbnail to include. If provided, a section will be created; otherwise, a simple text display.
526
+ *
527
+ * @param data - An object containing `content` and optional `thumbnail` properties.
528
+ *
529
+ * @returns A {@link SectionBuilder} if a thumbnail is provided, otherwise a {@link TextDisplayBuilder}.
530
+ *
531
+ * @example
532
+ * // Using positional parameters with a thumbnail
533
+ * const thumbSection = createThumbArea("Welcome!", "https://example.com/image.png");
534
+ *
535
+ * @example
536
+ * // Using an object without a thumbnail
537
+ * const textOnly = createThumbArea({ content: "Just text here" });
538
+ *
539
+ * @example
540
+ * // Using an object with a thumbnail
541
+ * const thumbSection = createThumbArea({
542
+ * content: "Check this out!",
543
+ * thumbnail: "https://example.com/image.png"
544
+ * });
545
+ */
546
+ declare function createThumbArea(content: string, thumbnail?: ThumbAreaThumbnail): SectionBuilder | TextDisplayBuilder;
547
+ declare function createThumbArea(data: ThumbAreaData): SectionBuilder | TextDisplayBuilder;
548
+
549
+ type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined | boolean;
509
550
  type CreateComponentData = ComponentData | ContainerBuilder;
510
551
  declare function createComponents(...data: (CreateComponentData | CreateComponentData[])[]): (SeparatorBuilder | TextDisplayBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
511
552
 
@@ -694,5 +735,5 @@ declare function isAnySelectMenuBuilder(value: unknown): value is AnySelectMenuB
694
735
 
695
736
  declare function isButtonBuilder(value: unknown): value is ButtonBuilder;
696
737
 
697
- export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, Separator, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus, wrapButtons };
698
- export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbnailData };
738
+ export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, Separator, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbArea, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus, wrapButtons };
739
+ export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbAreaData, ThumbAreaThumbnail, ThumbnailData };
package/dist/index.mjs CHANGED
@@ -15,6 +15,7 @@ export { createMediaGallery } from './functions/components/gallery.mjs';
15
15
  export { createSeparator } from './functions/components/separator.mjs';
16
16
  export { createSection } from './functions/components/section.mjs';
17
17
  export { createTextDisplay } from './functions/components/text.mjs';
18
+ export { createThumbArea } from './functions/components/thumbarea.mjs';
18
19
  export { createThumbnail } from './functions/components/thumbnail.mjs';
19
20
  export { createComponents } from './functions/components/components.mjs';
20
21
  export { createContainer } from './functions/components/container.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicyan/discord",
3
- "version": "1.4.8",
3
+ "version": "1.4.10",
4
4
  "description": "Simple functions to facilitate discord bot development",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -39,7 +39,7 @@
39
39
  "test": "vitest"
40
40
  },
41
41
  "peerDependencies": {
42
- "discord.js": "^14.19.1"
42
+ "discord.js": "^14.19.3"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@magicyan/config": "*",
@@ -49,6 +49,6 @@
49
49
  "vitest": "^2.1.9"
50
50
  },
51
51
  "dependencies": {
52
- "@magicyan/core": "^1.1.0"
52
+ "@magicyan/core": "^1.1.1"
53
53
  }
54
54
  }