@akala/core
Version:
48 lines (42 loc) • 1.14 kB
text/typescript
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<T>(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<unknown>, ReversibleFormatter<unknown, unknown>
{
/**
* 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<T>(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<T>(value: T): T
{
return value;
}
}