37 lines
901 B
TypeScript
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;
|