Skip to content

Commit 8f026c5

Browse files
committed
refactor: Move types to 'types.ts'.
1 parent d246d78 commit 8f026c5

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

src/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
export * from './BetterEmbed.js';
1+
export * from './BetterEmbed';
2+
export type {AnyObject, Template} from './types';

src/types.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import type {Client, ColorResolvable, MessageEmbedOptions} from 'discord.js';
2+
3+
export type AnyObject = Record<string, any>;
4+
export type Template<V extends AnyObject | undefined = AnyObject> = Partial<MessageEmbedOptions> & (V extends undefined ? {} : {values?: V});
5+
export type CheckSizeKey = keyof Template | string;
6+
export type CheckSizeContent = Template[keyof Template];
7+
8+
export type TemplatesValues = {
9+
basic: BasicTemplate;
10+
color: ColorTemplate;
11+
complete: CompleteTemplate;
12+
image: ImageTemplate;
13+
[k: string]: Template;
14+
};
15+
16+
interface ColorTemplate extends Template<{color?: ColorResolvable}> {
17+
color: ColorResolvable;
18+
}
19+
20+
interface BasicTemplate extends Template<{client: Client}> {
21+
footer: {
22+
text: string;
23+
iconURL: string;
24+
}
25+
timestamp: Date;
26+
}
27+
28+
type CompleteTemplate = BasicTemplate & ColorTemplate & Template<{description?: string, title?: string}> & {
29+
description: string;
30+
title: string;
31+
}
32+
33+
type ImageTemplate = CompleteTemplate & Template<{url?: string}> & {
34+
image: {
35+
url: string;
36+
}
37+
}

0 commit comments

Comments
 (0)