mirror of
https://github.com/morten-olsen/morten-olsen.github.io.git
synced 2026-02-08 01:46:28 +01:00
38 lines
842 B
TypeScript
38 lines
842 B
TypeScript
import { resolve } from 'path';
|
|
import { createFile } from '../../resources/file';
|
|
import YAML from 'yaml';
|
|
import { Bundler } from '../../bundler';
|
|
import { Profile } from '../../../types';
|
|
import { createImage } from '../../resources/image';
|
|
|
|
type ProfileOptions = {
|
|
path: string;
|
|
cwd: string;
|
|
bundler: Bundler;
|
|
};
|
|
|
|
const createProfile = ({ cwd, path, bundler }: ProfileOptions) => {
|
|
const file = createFile({
|
|
path: resolve(cwd, path),
|
|
});
|
|
|
|
const profile = file.pipe(async (yaml) => {
|
|
const data = YAML.parse(yaml);
|
|
const imagePath = resolve('content', data.image);
|
|
const result: Profile = {
|
|
...data,
|
|
imageUrl: createImage({
|
|
image: imagePath,
|
|
format: 'avif',
|
|
bundler,
|
|
}),
|
|
imagePath,
|
|
};
|
|
return result;
|
|
});
|
|
|
|
return profile;
|
|
};
|
|
|
|
export { createProfile };
|