UNPKG

appium-xcuitest-driver

Version:

Appium driver for iOS using XCUITest for backend

55 lines 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WDA_CLASS_CHAIN_STRATEGY = void 0; exports.cssToNativeLocator = cssToNativeLocator; const driver_1 = require("appium/driver"); const utils_1 = require("../utils"); const class_chain_emitter_1 = require("./class-chain-emitter"); const constants_1 = require("./constants"); const schema_1 = require("./schema"); var constants_2 = require("./constants"); Object.defineProperty(exports, "WDA_CLASS_CHAIN_STRATEGY", { enumerable: true, get: function () { return constants_2.WDA_CLASS_CHAIN_STRATEGY; } }); const emitters = { [constants_1.CLASS_CHAIN_EMITTER_KEY]: new class_chain_emitter_1.ClassChainEmitter(constants_1.WDA_CLASS_CHAIN_STRATEGY), }; const getTransformCss = (0, utils_1.memoize)(async function loadTransformCss() { const mod = await import('@appium/css-locator-to-native'); return mod.createCssTransformer({ schema: schema_1.ATTRIBUTE_SCHEMA, emitters, resolveStrategy() { return constants_1.CLASS_CHAIN_EMITTER_KEY; }, }); }); /** * Converts a CSS selector string into a native locator for the resolved strategy. * * @param css - CSS selector to transform * @returns Native locator strategy name and selector string */ async function cssToNativeLocator(css) { try { const transformCss = await getTransformCss(); return transformCss(css); } catch (err) { throw mapCssError(err, css); } } function mapCssError(err, css) { if (isPackageError(err, 'InvalidSelectorError')) { return new driver_1.errors.InvalidSelectorError(`Invalid CSS selector '${css}'`, err); } if (isPackageError(err, 'UnsupportedSelectorError')) { return new driver_1.errors.InvalidSelectorError(`Unsupported CSS selector '${css}'`, err); } if (err instanceof Error) { return err; } return new Error(String(err)); } function isPackageError(err, name) { return err instanceof Error && err.name === name; } //# sourceMappingURL=index.js.map