appium-uiautomator2-driver
Version:
UiAutomator2 integration for Appium
35 lines (32 loc) • 997 B
text/typescript
// TODO(appium server 3.4.1+): Replace local `isEmpty` / `escapeRegExp` with imports from `appium/support`
// once this driver declares that minimum server version.
/**
* Returns true when the value has no elements/properties.
*
* @param value - Value to check
* @returns `true` if the value is empty
*/
export function isEmpty(value: unknown): boolean {
if (value == null) {
return true;
}
if (typeof value === 'string' || Array.isArray(value) || Buffer.isBuffer(value)) {
return value.length === 0;
}
if (value instanceof Map || value instanceof Set) {
return value.size === 0;
}
if (typeof value === 'object' || typeof value === 'function') {
return Object.keys(value).length === 0;
}
return true;
}
/**
* Escapes RegExp special characters in a string.
*
* @param value - Input string
* @returns Escaped string safe for RegExp source
*/
export function escapeRegExp(value: string): string {
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}