aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/helpers/author.ts
blob: a5e9bc6803555d40649be5c7072836b9188afd60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { type Author, type ContentKind, type RawAuthor } from '../../types';

/**
 * Convert author raw data to regular data.
 *
 * @param {RawAuthor<ContentKind>} data - The author raw data.
 * @param {ContentKind} kind - The author kind. Either `page` or `comment`.
 * @param {number} [avatarSize] - The author avatar size.
 * @returns {Author<ContentKind>} The author data.
 */
export const getAuthorFromRawData = (
  data: RawAuthor<typeof kind>,
  kind: ContentKind,
  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,
  };
};