import type { Formatter, ReversibleFormatter } from "./common.js"; /** * Returns the input value. * @param {T} a - The input value. * @returns {T} The same input value. */ function identity(a: T): T { return a; } identity['reverse'] = identity; /** * A formatter that returns the input value unchanged. * This is useful for scenarios where no transformation is needed. */ export default class Identity implements Formatter, ReversibleFormatter { /** * Singleton instance for reuse. */ static readonly instance = new Identity(); /** * Returns the input value without modification. * @template T - The type of the input value. * @param {T} value - The value to format. * @returns {T} The same input value. */ format(value: T): T { return value; } /** * Returns the input value without modification. * @template T - The type of the input value. * @param {T} value - The value to unformat. * @returns {T} The same input value. */ unformat(value: T): T { return value; } }