merge in new changes
This commit is contained in:
@@ -1,60 +1,27 @@
|
||||
import { createDirectus, rest } from '@directus/sdk';
|
||||
|
||||
type Global = {
|
||||
title: string;
|
||||
description: string;
|
||||
name: string;
|
||||
initals: string;
|
||||
tagline: string;
|
||||
email: string;
|
||||
portrait: string;
|
||||
portrait_alt: string;
|
||||
logo: string;
|
||||
about: string;
|
||||
};
|
||||
import type {
|
||||
Global,
|
||||
Post,
|
||||
Experience,
|
||||
Education,
|
||||
Certificate,
|
||||
Project,
|
||||
Skill,
|
||||
} from '@lib/directusTypes';
|
||||
|
||||
type About = {
|
||||
background: string;
|
||||
experience: string;
|
||||
education: string;
|
||||
certifications: string;
|
||||
};
|
||||
|
||||
type Links = {
|
||||
github: string;
|
||||
linkedin: string;
|
||||
gitea: string;
|
||||
};
|
||||
|
||||
type Skill = {
|
||||
title: string;
|
||||
description: string;
|
||||
icon: string;
|
||||
level: string;
|
||||
};
|
||||
|
||||
export type Post = {
|
||||
slug: string;
|
||||
title: string;
|
||||
description: string;
|
||||
content: string;
|
||||
image: string;
|
||||
image_alt: string;
|
||||
published_date: Date;
|
||||
updated_date: Date;
|
||||
tags: string[];
|
||||
};
|
||||
import { getDirectusURL } from '@lib/directusFunctions';
|
||||
|
||||
type Schema = {
|
||||
global: Global;
|
||||
about: About;
|
||||
links: Links;
|
||||
skills: Skill[];
|
||||
site_global: Global;
|
||||
posts: Post[];
|
||||
site_experience: Experience;
|
||||
site_education: Education;
|
||||
site_certificate: Certificate;
|
||||
site_projects: Project;
|
||||
site_skills: Skill;
|
||||
};
|
||||
|
||||
const directus = createDirectus<Schema>(
|
||||
process.env.DIRECTUS_URL ?? 'https://directus.alexlebens.dev'
|
||||
).with(rest());
|
||||
const directus = createDirectus<Schema>(getDirectusURL()).with(rest());
|
||||
|
||||
export default directus;
|
||||
|
||||
12
src/lib/directusFunctions.ts
Normal file
12
src/lib/directusFunctions.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
const getDirectusURL = () => {
|
||||
if (process.env.DIRECTUS_URL) {
|
||||
return `https://${process.env.DIRECTUS_URL}`;
|
||||
}
|
||||
return 'https://directus.alexlebens.dev';
|
||||
};
|
||||
|
||||
async function getDirectusImageURL(image: string) {
|
||||
return `${getDirectusURL()}/assets/${image}`;
|
||||
}
|
||||
|
||||
export { getDirectusURL, getDirectusImageURL };
|
||||
87
src/lib/directusTypes.ts
Normal file
87
src/lib/directusTypes.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
export type Global = {
|
||||
name: string;
|
||||
about: string;
|
||||
about_description: string;
|
||||
initials: string;
|
||||
email: string;
|
||||
site_url: string;
|
||||
logo: string;
|
||||
portrait: string;
|
||||
portrait_alt: string;
|
||||
home_image: string;
|
||||
home_image_alt: string;
|
||||
categories_image: string;
|
||||
categories_image_alt: string;
|
||||
blog_image: string;
|
||||
blog_image_alt: string;
|
||||
footer_image: string;
|
||||
footer_image_alt: string;
|
||||
};
|
||||
|
||||
export type Post = {
|
||||
slug: string;
|
||||
title: string;
|
||||
description: string;
|
||||
tags: string[];
|
||||
category: string;
|
||||
selected: boolean;
|
||||
content: string;
|
||||
image: string;
|
||||
image_alt: string;
|
||||
image_second: string;
|
||||
image_second_alt: string;
|
||||
published_date: Date;
|
||||
updated_date: Date;
|
||||
};
|
||||
|
||||
export type Experience = {
|
||||
id: string;
|
||||
name: string;
|
||||
location: string;
|
||||
location_type: string;
|
||||
url: string;
|
||||
startDate: string;
|
||||
endDate: string;
|
||||
position: string;
|
||||
summary: string;
|
||||
responsibilities: string[];
|
||||
highlights: string[];
|
||||
achievements: string[];
|
||||
skills: string[];
|
||||
};
|
||||
|
||||
export type Education = {
|
||||
id: string;
|
||||
institution: string;
|
||||
url: string;
|
||||
area: string;
|
||||
studyType: string;
|
||||
graduationDate: string;
|
||||
};
|
||||
|
||||
export type Certificate = {
|
||||
id: string;
|
||||
name: string;
|
||||
issuer: string;
|
||||
issuerDate: string;
|
||||
url: string;
|
||||
};
|
||||
|
||||
export type Project = {
|
||||
id: string;
|
||||
name: string;
|
||||
isActive: boolean;
|
||||
description: string;
|
||||
highlights: string[];
|
||||
url: string;
|
||||
source: string;
|
||||
};
|
||||
|
||||
export type Skill = {
|
||||
id: string;
|
||||
title: string;
|
||||
description: string;
|
||||
icon: string;
|
||||
level: string;
|
||||
date_created: string;
|
||||
};
|
||||
Reference in New Issue
Block a user