refactor(v4.0.0-alpha): beginning of a new era

This commit is contained in:
Amruth Pillai
2023-11-05 12:31:42 +01:00
parent 0ba6a444e2
commit 22933bd412
505 changed files with 81829 additions and 0 deletions

View File

@ -0,0 +1,42 @@
import { ResumeData, resumeDataSchema } from "@reactive-resume/schema";
import { Json } from "@reactive-resume/utils";
import { Schema } from "zod";
import { Parser } from "../interfaces/parser";
export class ReactiveResumeParser implements Parser<Json, ResumeData> {
schema: Schema;
constructor() {
this.schema = resumeDataSchema;
}
readFile(file: File): Promise<Json> {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => {
try {
const result = JSON.parse(reader.result as string) as Json;
resolve(result);
} catch (error) {
reject(new Error("Failed to parse JSON"));
}
};
reader.onerror = () => {
reject(new Error("Failed to read the file"));
};
reader.readAsText(file);
});
}
validate(data: Json) {
return this.schema.parse(data) as ResumeData;
}
convert(data: ResumeData) {
return data;
}
}