aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/helpers/author.ts
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-05-02 18:36:09 +0200
committerArmand Philippot <git@armandphilippot.com>2022-05-02 18:36:09 +0200
commitca921d7536cfe950b5a7d442977bbf900b48faf4 (patch)
tree2e8bb3f4b81414ee881c3d92d9bdfed411c569db /src/utils/helpers/author.ts
parent9308a6dce03bd0c616e0ba6fec227473aaa44b33 (diff)
chore: fetch posts for rss feed
Diffstat (limited to 'src/utils/helpers/author.ts')
-rw-r--r--src/utils/helpers/author.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/utils/helpers/author.ts b/src/utils/helpers/author.ts
new file mode 100644
index 0000000..cf125fc
--- /dev/null
+++ b/src/utils/helpers/author.ts
@@ -0,0 +1,32 @@
+import { type Author, type AuthorKind } from '@ts/types/app';
+import { type RawAuthor } from '@ts/types/raw-data';
+
+/**
+ * Convert author raw data to regular data.
+ *
+ * @param {RawAuthor<AuthorKind>} data - The author raw data.
+ * @param {AuthorKind} kind - The author kind. Either `page` or `comment`.
+ * @param {number} [avatarSize] - The author avatar size.
+ * @returns {Author<AuthorKind>} The author data.
+ */
+export const getAuthorFromRawData = (
+ data: RawAuthor<typeof kind>,
+ kind: AuthorKind,
+ avatarSize: number = 80
+): Author<typeof kind> => {
+ const { name, description, gravatarUrl, url } = data;
+
+ return {
+ name,
+ avatar: gravatarUrl
+ ? {
+ alt: `${name} avatar`,
+ height: avatarSize,
+ src: gravatarUrl,
+ width: avatarSize,
+ }
+ : undefined,
+ description,
+ website: url,
+ };
+};