typedash
Version:
modern, type-safe collection of utility functions
1 lines • 1.05 kB
Source Map (JSON)
{"version":3,"sources":["../../src/functions/ensurePrefix/ensurePrefix.ts"],"names":[],"mappings":";AAWO,SAAS,aACd,QACA,QACyB;AACzB,MAAI,OAAO,WAAW,MAAM,GAAG;AAC7B,WAAO;AAAA,EACT;AAEA,SAAO,GAAG,MAAM,GAAG,MAAM;AAC3B","sourcesContent":["/**\n * Ensures that the string starts with the given prefix.\n * @param string The string to ensure the prefix of.\n * @param prefix The prefix to ensure.\n * @returns The string with the given prefix.\n * @example\n * ```ts\n * ensurePrefix('foo', 'bar'); // 'barfoo'\n * ensurePrefix('foobar', 'foo'); // 'foobar'\n * ```\n */\nexport function ensurePrefix<S extends string, Prefix extends string>(\n string: S,\n prefix: Prefix\n): EnsurePrefix<S, Prefix> {\n if (string.startsWith(prefix)) {\n return string as EnsurePrefix<S, Prefix>;\n }\n\n return `${prefix}${string}` as EnsurePrefix<S, Prefix>;\n}\n\ntype EnsurePrefix<\n S extends string,\n Prefix extends string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n> = S extends `${Prefix}${infer _Suffix}` ? S : `${Prefix}${S}`;\n"]}