🏡 index : quine-global/webdriverio.git

/**
 * unicode characters
 * https://w3c.github.io/webdriver/webdriver-spec.html#character-types
 */
export const UNICODE_CHARACTERS = {
    'NULL': '\uE000',
    'Unidentified': '\uE000',
    'Cancel': '\uE001',
    'Help': '\uE002',
    'Backspace': '\uE003',
    'Back space': '\uE003',
    'Tab': '\uE004',
    'Clear': '\uE005',
    'Return': '\uE006',
    'Enter': '\uE007',
    'Shift': '\uE008',
    'Control': '\uE009',
    'Control Left': '\uE009',
    'Control Right': '\uE051',
    'Alt': '\uE00A',
    'Pause': '\uE00B',
    'Escape': '\uE00C',
    'Space': '\uE00D',
    ' ': '\uE00D',
    'PageUp': '\uE00E',
    'Pageup': '\uE00E',
    'Page_Up': '\uE00E',
    'PageDown': '\uE00F',
    'Pagedown': '\uE00F',
    'Page_Down': '\uE00F',
    'End': '\uE010',
    'Home': '\uE011',
    'ArrowLeft': '\uE012',
    'Left arrow': '\uE012',
    'Arrow_Left': '\uE012',
    'ArrowUp': '\uE013',
    'Up arrow': '\uE013',
    'Arrow_Up': '\uE013',
    'ArrowRight': '\uE014',
    'Right arrow': '\uE014',
    'Arrow_Right': '\uE014',
    'ArrowDown': '\uE015',
    'Down arrow': '\uE015',
    'Arrow_Down': '\uE015',
    'Insert': '\uE016',
    'Delete': '\uE017',
    'Semicolon': '\uE018',
    'Equals': '\uE019',
    'Numpad 0': '\uE01A',
    'Numpad 1': '\uE01B',
    'Numpad 2': '\uE01C',
    'Numpad 3': '\uE01D',
    'Numpad 4': '\uE01E',
    'Numpad 5': '\uE01F',
    'Numpad 6': '\uE020',
    'Numpad 7': '\uE021',
    'Numpad 8': '\uE022',
    'Numpad 9': '\uE023',
    'Multiply': '\uE024',
    'Add': '\uE025',
    'Separator': '\uE026',
    'Subtract': '\uE027',
    'Decimal': '\uE028',
    'Divide': '\uE029',
    'F1': '\uE031',
    'F2': '\uE032',
    'F3': '\uE033',
    'F4': '\uE034',
    'F5': '\uE035',
    'F6': '\uE036',
    'F7': '\uE037',
    'F8': '\uE038',
    'F9': '\uE039',
    'F10': '\uE03A',
    'F11': '\uE03B',
    'F12': '\uE03C',
    'Command': '\uE03D',
    'Meta': '\uE03D',
    'ZenkakuHankaku': '\uE040',
    'Zenkaku_Hankaku': '\uE040'
} as const

export const SUPPORTED_BROWSERNAMES = {
    chrome: ['chrome', 'googlechrome', 'chromium', 'chromium-browser'],
    firefox: ['firefox', 'ff', 'mozilla', 'mozilla firefox'],
    edge: ['edge', 'microsoftedge', 'msedge'],
    safari: ['safari', 'safari technology preview']
}

export const DEFAULT_HOSTNAME = 'localhost'
export const DEFAULT_PROTOCOL = 'http'
export const DEFAULT_PATH = '/'
/* istanbul ignore next */
export const HOOK_DEFINITION = {
    type: 'object' as const,
    validate: (param: unknown) => {
        /**
         * option must be an array
         */
        if (!Array.isArray(param)) {
            throw new Error('a hook option needs to be a list of functions')
        }

        /**
         * array elements must be functions
         */
        for (const option of param) {
            /**
             * either a string
             */
            if (typeof option === 'function') {
                continue
            }

            throw new Error('expected hook to be type of function')
        }
    }
}