diff --git a/src/common/fs/read-yaml-file.injectable.ts b/src/common/fs/read-yaml-file.injectable.ts new file mode 100644 index 0000000000..a34a69d388 --- /dev/null +++ b/src/common/fs/read-yaml-file.injectable.ts @@ -0,0 +1,25 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import readFileInjectable from "./read-file.injectable"; +import yaml from "js-yaml"; + +export type ReadYamlFile = (filePath: string) => Promise; + +const readYamlFileInjectable = getInjectable({ + id: "read-yaml-file", + + instantiate: (di): ReadYamlFile => { + const readFile = di.inject(readFileInjectable); + + return async (filePath: string) => { + const contents = await readFile(filePath); + + return yaml.load(contents); + }; + }, +}); + +export default readYamlFileInjectable;