Files
morten-olsen.github.io/bin/data/positions/index.ts
Morten Olsen 9b1a067d56 init
2023-03-27 10:46:18 +02:00

46 lines
1.2 KiB
TypeScript

import { createGlob } from "../../resources/glob";
import { createFile } from "../../resources/file";
import grayMatter from "gray-matter";
import { Bundler } from "../../bundler";
import { markdownBundleImages } from "../../utils/markdown";
import { dirname } from "path";
import { Position } from "../../../types";
import { Observable } from "../../observable";
type PositionOptions = {
bundler: Bundler;
};
const createPositions = ({ bundler }: PositionOptions) => {
const files = createGlob<Observable<Position>>({
pattern: "content/resume/positions/**/*.md",
create: (path) => {
const file = createFile({ path });
const position = file.pipe(async (raw) => {
const { data, content } = grayMatter(raw);
const { title } = data;
const cwd = dirname(path);
const markdown = await markdownBundleImages({
cwd,
content,
bundler,
});
const result = {
company: data.company,
title,
from: data.from,
to: data.to,
raw: content,
content: markdown,
} as any;
return result;
});
return position;
},
});
return files;
};
export { createPositions };