UNPKG

typedash

Version:

modern, type-safe collection of utility functions

1 lines 1.05 kB
{"version":3,"sources":["../../src/functions/ensureSuffix/ensureSuffix.ts"],"names":[],"mappings":";AAWO,SAAS,aACd,QACA,QACyB;AACzB,MAAI,OAAO,SAAS,MAAM,GAAG;AAC3B,WAAO;AAAA,EACT;AAEA,SAAO,GAAG,MAAM,GAAG,MAAM;AAC3B","sourcesContent":["/**\n * Ensures that the string ends with the given suffix.\n * @param string The string to ensure the suffix of.\n * @param suffix The suffix to ensure.\n * @returns The string with the given suffix.\n * @example\n * ```ts\n * ensureSuffix('foo', 'bar'); // 'foobar'\n * ensureSuffix('foobar', 'bar'); // 'foobar'\n * ```\n */\nexport function ensureSuffix<S extends string, Suffix extends string>(\n string: S,\n suffix: Suffix\n): EnsureSuffix<S, Suffix> {\n if (string.endsWith(suffix)) {\n return string as EnsureSuffix<S, Suffix>;\n }\n\n return `${string}${suffix}` as EnsureSuffix<S, Suffix>;\n}\n\ntype EnsureSuffix<\n S extends string,\n Suffix extends string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n> = S extends `${infer _Prefix}${Suffix}` ? S : `${S}${Suffix}`;\n"]}