@hey-api/json-schema-ref-parser
Version:
Parse, Resolve, and Dereference JSON Schema $ref pointers
29 lines (25 loc) • 734 B
text/typescript
import fs from "fs";
import { ono } from "@jsdevtools/ono";
import * as url from "../util/url.js";
import { ResolverError } from "../util/errors.js";
import type { FileInfo } from "../types/index.js";
export const fileResolver = {
handler: async ({
file,
}: {
file: FileInfo;
}): Promise<void> => {
let path: string | undefined;
try {
path = url.toFileSystemPath(file.url);
} catch (error: any) {
throw new ResolverError(ono.uri(error, `Malformed URI: ${file.url}`), file.url);
}
try {
const data = await fs.promises.readFile(path);
file.data = data;
} catch (error: any) {
throw new ResolverError(ono(error, `Error opening file "${path}"`), path);
}
},
};