appium-xcuitest-driver
Version:
Appium driver for iOS using XCUITest for backend
41 lines (36 loc) • 1.09 kB
text/typescript
import type { LogEntry } from '../../commands/types';
import { fs } from 'appium/support';
import { createInterface } from 'node:readline';
import _ from 'lodash';
export const DEFAULT_LOG_LEVEL = 'ALL';
export const MAX_JSON_LOG_LENGTH = 200;
export const MAX_BUFFERED_EVENTS_COUNT = 5000;
export function toLogEntry(message: string, timestamp: number, level: string = DEFAULT_LOG_LEVEL): LogEntry {
return {
timestamp,
level,
message,
};
}
export interface GrepOptions {
caseInsensitive?: boolean;
}
export async function grepFile(
fullPath: string,
str: string,
opts: GrepOptions = {}
): Promise<boolean> {
const input = fs.createReadStream(fullPath);
const rl = createInterface({input});
return await new Promise((resolve, reject) => {
input.once('error', reject);
rl.on('line', (line) => {
if (opts.caseInsensitive && _.toLower(line).includes(_.toLower(str))
|| !opts.caseInsensitive && line.includes(str)) {
resolve(true);
input.close();
}
});
input.once('end', () => resolve(false));
});
}