feat: add desktop repo (#1071)
This commit is contained in:
44
packages/desktop/app/javascripts/Main/Utils/Utils.ts
Normal file
44
packages/desktop/app/javascripts/Main/Utils/Utils.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { CommandLineArgs } from '../../Shared/CommandLineArgs'
|
||||
|
||||
export function isDev(): boolean {
|
||||
return process.env.NODE_ENV === 'development'
|
||||
}
|
||||
|
||||
export function isTesting(): boolean {
|
||||
return isDev() && process.argv.includes(CommandLineArgs.Testing)
|
||||
}
|
||||
|
||||
export function isBoolean(arg: unknown): arg is boolean {
|
||||
return typeof arg === 'boolean'
|
||||
}
|
||||
|
||||
export function ensureIsBoolean(arg: unknown, fallbackValue: boolean): boolean {
|
||||
if (isBoolean(arg)) {
|
||||
return arg
|
||||
}
|
||||
return fallbackValue
|
||||
}
|
||||
|
||||
export function stringOrNull(arg: unknown): string | null {
|
||||
if (typeof arg === 'string') {
|
||||
return arg
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
/** Ensures a path's drive letter is lowercase. */
|
||||
export function lowercaseDriveLetter(filePath: string): string {
|
||||
return filePath.replace(/^\/[A-Z]:\//, (letter) => letter.toLowerCase())
|
||||
}
|
||||
|
||||
export function timeout(ms: number): Promise<void> {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms))
|
||||
}
|
||||
|
||||
export function removeFromArray<T>(array: T[], toRemove: T): void {
|
||||
array.splice(array.indexOf(toRemove), 1)
|
||||
}
|
||||
|
||||
export function last<T>(array: T[]): T | undefined {
|
||||
return array[array.length - 1]
|
||||
}
|
||||
Reference in New Issue
Block a user