Reactive-Resume/client/utils/getResumeUrl.ts

37 lines
901 B
TypeScript

import env from '@beam-australia/react-env';
import { Resume } from '@reactive-resume/schema';
import get from 'lodash/get';
type Options = {
withHost?: boolean;
shortUrl?: boolean;
buildUrl?: boolean;
};
const defaultOptions: Options = {
withHost: false,
shortUrl: false,
buildUrl: false,
};
const getResumeUrl = (resume: Resume, options: Options = defaultOptions): string => {
const username: string = get(resume, 'user.username');
const shortId: string = get(resume, 'shortId');
const slug: string = get(resume, 'slug');
let url = '';
let hostname = env('URL');
if (typeof window !== 'undefined') {
hostname = window.location.origin;
}
url = options.withHost ? `${hostname}` : url;
url = options.shortUrl ? `${url}/r/${shortId}` : `${url}/${username}/${slug}`;
url = options.buildUrl ? `${url}/build` : url;
return url;
};
export default getResumeUrl;