A simple lib for wrapping lazy promise or task into result.
pnpm add @tqman/result
import { readFile } from "fs/promises";
import { resultOf } from "@tqman/result";
type Config = {
PORT: number;
};
async function readConfigFile(): Promise<Config> {
return readFile("./config.json", "utf-8").then((data) => JSON.parse(data));
}
const config = await resultOf(readConfigFile);
if (!config.ok) {
console.error("Config file not found");
process.exit(1);
}
console.log(`Listening on port ${config.value.PORT}`);