40 lines
887 B
TypeScript
40 lines
887 B
TypeScript
export function preventDefault(event: Event) {
|
|
event.preventDefault();
|
|
|
|
return event;
|
|
}
|
|
|
|
export function splitOnce(
|
|
str: string,
|
|
search: string
|
|
): [string, string | null] {
|
|
const index = str.indexOf(search);
|
|
|
|
if (index === -1) {
|
|
return [str, null];
|
|
}
|
|
|
|
return [str.slice(0, index), str.slice(index + 1)];
|
|
}
|
|
|
|
export function trim(str: string, char: string) {
|
|
let start = 0;
|
|
let end = str.length;
|
|
|
|
while (start < end && str[start] === char) ++start;
|
|
|
|
while (end > start && str[end - 1] === char) --end;
|
|
|
|
return start > 0 || end < str.length ? str.substring(start, end) : str;
|
|
}
|
|
|
|
export function copyToClipboard(content: string): boolean {
|
|
navigator.clipboard.writeText(content);
|
|
|
|
return navigator.clipboard != null;
|
|
}
|
|
|
|
export function capitalize(s: string): string {
|
|
return s.slice(0, 1).toUpperCase() + s.slice(1);
|
|
}
|