type LoggerOpts = {
    force?: boolean;
};

type Logger = {
    log: (message: string, opts?: LoggerOpts) => void;
    warn: (message: string) => void;
    error: (message: string) => void;
};

export const getLogger = ({ isSilent }: { isSilent?: boolean } = {}): Logger => {
    return {
        log: (message, { force } = {}) => {
            if (isSilent && !force) {
                return;
            }

            console.log(message);
        },
        warn: message => {
            console.warn(message);
        },
        error: message => {
            console.error(message);
        }
    };
};