core/converters/rate.converter.ts

core/converters/rate.converter.ts is a file in Project Scripts. 15 lines of code and 3 definitions.

import { DEFAULT_MONTHS, REPORT_NAME } from "#configuration/constants/rate.constants";
import { flagValue, numberFlag } from "@govlab/argv";
import { join, resolve } from "node:path";
import type { ParsedArgv } from "@govlab/argv";
import type { RateOptions } from "#types/rate.types";
import { absolutePath } from "@ssot/paths";

export const readRateOptions = function readRateOptions(argv: ParsedArgv): RateOptions {
    const asked = numberFlag(argv, "--rate", Number.NaN);
    const out = flagValue(argv, "--out");
    return {
        months: numberFlag(argv, "--months", DEFAULT_MONTHS),
        out: out === undefined ? join(absolutePath("scratch"), REPORT_NAME) : resolve(out),
        rate: Number.isFinite(asked) ? asked : null,
    };
};