Home Reference Source Test

src/predicates/endsWith.ts

import { Predicate } from './Predicate';

/**
 * @desc Ensures that the `value` ends with a given suffix.
 *
 * @example
 * import { endsWith, ensure, TinyType } from 'tiny-types';
 *
 * class TextFileName extends TinyType {
 *     constructor(public readonly value: string) {
 *         super();
 *
 *         ensure('TextFileName', value, endsWith('.txt'));
 *     }
 * }
 *
 * @param {string} suffix
 *
 * @returns {Predicate<string>}
 */
export function endsWith(suffix: string): Predicate<string> {
    return Predicate.to(`end with '${ suffix }'`, (value: string) =>
        typeof value === 'string'
            && value.endsWith(suffix),
    );
}