Best JavaScript code snippet using root
composeDeviceConfig.js
Source:composeDeviceConfig.js
...14 const deviceConfig = localConfig.type15 ? composeDeviceConfigFromPlain(opts)16 : composeDeviceConfigFromAliased(opts);17 applyCLIOverrides(deviceConfig, cliConfig);18 deviceConfig.device = unpackDeviceQuery(deviceConfig);19 return deviceConfig;20}21/**22 * @param {DetoxConfigErrorComposer} opts.errorComposer23 * @param {Detox.DetoxConfig} opts.globalConfig24 * @param {Detox.DetoxPlainConfiguration} opts.localConfig25 * @returns {Detox.DetoxDeviceConfig}26 */27function composeDeviceConfigFromPlain(opts) {28 const { errorComposer, localConfig } = opts;29 const type = localConfig.type;30 const device = localConfig.device || localConfig.name;31 const utilBinaryPaths = localConfig.utilBinaryPaths;32 const deviceConfig = type in EXPECTED_DEVICE_MATCHER_PROPS33 ? _.omitBy({ type, device, utilBinaryPaths }, _.isUndefined)34 : { ...localConfig };35 validateDeviceConfig({ deviceConfig, errorComposer });36 return deviceConfig;37}38/**39 * @param {DetoxConfigErrorComposer} opts.errorComposer40 * @param {Detox.DetoxConfig} opts.globalConfig41 * @param {Detox.DetoxAliasedConfiguration} opts.localConfig42 * @returns {Detox.DetoxDeviceConfig}43 */44function composeDeviceConfigFromAliased(opts) {45 const { errorComposer, globalConfig, localConfig } = opts;46 /** @type {Detox.DetoxDeviceConfig} */47 let deviceConfig;48 const isAliased = typeof localConfig.device === 'string';49 if (isAliased) {50 if (_.isEmpty(globalConfig.devices)) {51 throw errorComposer.thereAreNoDeviceConfigs(localConfig.device);52 } else {53 deviceConfig = globalConfig.devices[localConfig.device];54 }55 if (!deviceConfig) {56 throw errorComposer.cantResolveDeviceAlias(localConfig.device);57 }58 } else {59 if (!localConfig.device) {60 throw errorComposer.deviceConfigIsUndefined();61 }62 deviceConfig = localConfig.device;63 }64 validateDeviceConfig({65 deviceConfig,66 errorComposer,67 deviceAlias: isAliased ? localConfig.device : undefined68 });69 return { ...deviceConfig };70}71/**72 * @param {DetoxConfigErrorComposer} errorComposer73 * @param {Detox.DetoxDeviceConfig} deviceConfig74 * @param {String | undefined} deviceAlias75 */76function validateDeviceConfig({ deviceConfig, errorComposer, deviceAlias }) {77 if (!deviceConfig.type) {78 throw errorComposer.missingDeviceType(deviceAlias);79 }80 const maybeError = _.attempt(() => environmentFactory.validateConfig(deviceConfig));81 if (_.isError(maybeError)) {82 throw errorComposer.invalidDeviceType(deviceAlias, deviceConfig, maybeError);83 }84 if (!KNOWN_TYPES.has(deviceConfig.type)) {85 return;86 }87 if (deviceConfig.bootArgs != null) {88 if (!_.isString(deviceConfig.bootArgs)) {89 throw errorComposer.malformedDeviceProperty(deviceAlias, 'bootArgs');90 }91 if (deviceConfig.type !== 'ios.simulator' && deviceConfig.type !== 'android.emulator') {92 throw errorComposer.unsupportedDeviceProperty(deviceAlias, 'bootArgs');93 }94 }95 if (deviceConfig.utilBinaryPaths != null) {96 if (!Array.isArray(deviceConfig.utilBinaryPaths)) {97 throw errorComposer.malformedDeviceProperty(deviceAlias, 'utilBinaryPaths');98 }99 if (deviceConfig.utilBinaryPaths.some(s => !_.isString(s))) {100 throw errorComposer.malformedDeviceProperty(deviceAlias, 'utilBinaryPaths');101 }102 if (!deviceConfig.type.match(/^android\.(attached|emulator|genycloud)$/)) {103 throw errorComposer.unsupportedDeviceProperty(deviceAlias, 'utilBinaryPaths');104 }105 }106 if (deviceConfig.forceAdbInstall !== undefined) {107 if (!_.isBoolean(deviceConfig.forceAdbInstall)) {108 throw errorComposer.malformedDeviceProperty(deviceAlias, 'forceAdbInstall');109 }110 if (!deviceConfig.type.match(/^android\.(attached|emulator|genycloud)$/)) {111 throw errorComposer.unsupportedDeviceProperty(deviceAlias, 'forceAdbInstall');112 }113 }114 if (deviceConfig.gpuMode !== undefined) {115 if (!_.isString(deviceConfig.gpuMode)) {116 throw errorComposer.malformedDeviceProperty(deviceAlias, 'gpuMode');117 }118 if (!deviceConfig.gpuMode.match(/^(auto|host|swiftshader_indirect|angle_indirect|guest)$/)) {119 throw errorComposer.malformedDeviceProperty(deviceAlias, 'gpuMode');120 }121 if (deviceConfig.type !== 'android.emulator') {122 throw errorComposer.unsupportedDeviceProperty(deviceAlias, 'gpuMode');123 }124 }125 if (deviceConfig.headless !== undefined) {126 if (!_.isBoolean(deviceConfig.headless)) {127 throw errorComposer.malformedDeviceProperty(deviceAlias, 'headless');128 }129 if (deviceConfig.type !== 'android.emulator') {130 throw errorComposer.unsupportedDeviceProperty(deviceAlias, 'headless');131 }132 }133 if (deviceConfig.readonly !== undefined) {134 if (!_.isBoolean(deviceConfig.readonly)) {135 throw errorComposer.malformedDeviceProperty(deviceAlias, 'readonly');136 }137 if (deviceConfig.type !== 'android.emulator') {138 throw errorComposer.unsupportedDeviceProperty(deviceAlias, 'readonly');139 }140 }141 if (_.isObject(deviceConfig.device)) {142 const expectedProperties = EXPECTED_DEVICE_MATCHER_PROPS[deviceConfig.type];143 if (!_.isEmpty(expectedProperties)) {144 const minimalShape = _.pick(deviceConfig.device, expectedProperties);145 if (_.isEmpty(minimalShape)) {146 throw errorComposer.missingDeviceMatcherProperties(deviceAlias, expectedProperties);147 }148 }149 }150}151function applyCLIOverrides(deviceConfig, cliConfig) {152 if (cliConfig.deviceName) {153 deviceConfig.device = cliConfig.deviceName;154 }155 const deviceType = deviceConfig.type;156 if (cliConfig.deviceBootArgs) {157 if ((deviceType === 'ios.simulator') || (deviceType === 'android.emulator')) {158 deviceConfig.bootArgs = cliConfig.deviceBootArgs;159 } else {160 log.warn(`--device-boot-args CLI override is not supported by device type = "${deviceType}" and will be ignored`);161 }162 }163 if (cliConfig.forceAdbInstall !== undefined) {164 if (deviceType.startsWith('android.')) {165 deviceConfig.forceAdbInstall = cliConfig.forceAdbInstall;166 } else {167 log.warn(`--force-adb-install CLI override is not supported by device type = "${deviceType}" and will be ignored`);168 }169 }170 const emulatorCLIConfig = _.pick(cliConfig, ['headless', 'gpu', 'readonlyEmu']);171 const emulatorOverrides = _.omitBy({172 headless: cliConfig.headless,173 gpuMode: cliConfig.gpu,174 readonly: cliConfig.readonlyEmu,175 }, _.isUndefined);176 if (!_.isEmpty(emulatorOverrides)) {177 if (deviceType === 'android.emulator') {178 Object.assign(deviceConfig, emulatorOverrides);179 } else {180 const flags = Object.keys(emulatorCLIConfig).map(key => '--' + _.kebabCase(key)).join(', ');181 log.warn(`${flags} CLI overriding is not supported by device type = "${deviceType}" and will be ignored`);182 }183 }184}185function unpackDeviceQuery(deviceConfig) {186 const query = deviceConfig.device;187 if (!_.isString(query)) {188 return query;189 }190 switch (deviceConfig.type) {191 case 'ios.none':192 case 'ios.simulator':193 if (_.includes(query, ',')) {194 const [type, os] = _.split(query, /\s*,\s*/);195 return { type, os };196 }197 return { type: query };198 case 'android.attached':199 return { adbName: query };...
Using AI Code Generation
1var root = require('iotivity-node').server;2var deviceQuery = root.unpackDeviceQuery(query);3var platformQuery = root.unpackPlatformQuery(query);4var root = require('iotivity-node').server;5var deviceQuery = root.unpackDeviceQuery(query);6var platformQuery = root.unpackPlatformQuery(query);7var root = require('iotivity-node').server;8var deviceQuery = root.unpackDeviceQuery(query);9var platformQuery = root.unpackPlatformQuery(query);10var root = require('iotivity-node').server;11var deviceQuery = root.unpackDeviceQuery(query);12var platformQuery = root.unpackPlatformQuery(query);13var root = require('iotivity-node').server;14var deviceQuery = root.unpackDeviceQuery(query);15var platformQuery = root.unpackPlatformQuery(query);16var root = require('iotivity-node').server;17var deviceQuery = root.unpackDeviceQuery(query);18var platformQuery = root.unpackPlatformQuery(query);19var root = require('iotivity-node').server;20var deviceQuery = root.unpackDeviceQuery(query);21var platformQuery = root.unpackPlatformQuery(query);22var root = require('iotivity-node').server;23var deviceQuery = root.unpackDeviceQuery(query);24var platformQuery = root.unpackPlatformQuery(query);
Using AI Code Generation
1var root = require('Root');2var deviceQuery = root.unpackDeviceQuery("deviceQuery");3console.log(deviceQuery);4var root = require('Root');5var deviceQuery = { "device" : "device" };6var packedDeviceQuery = root.packDeviceQuery(deviceQuery);7console.log(packedDeviceQuery);
Using AI Code Generation
1var root = require('iotivity-node');2var server = require('iotivity-node').server;3var client = require('iotivity-node').client;4var resource = require('iotivity-node').resource;5var platform = require('iotivity-node').platform;6var device = require('iotivity-node').device;7var resource = require('iotivity-node').resource;8var resource = require('iotivity-node').resource;9var resource = require('iotivity-node').resource;10var resource = require('iotivity-node').resource;11var resource = require('iotivity-node').resource;12var resource = require('iotivity-node').resource;13var resource = require('iotivity-node').resource;14var query = resource.unpackDeviceQuery('
Using AI Code Generation
1var root = require('ripple/platform/webworks.core/2.0.0/client/root');2var deviceQuery = root.unpackDeviceQuery("device=blackberry");3var client = require('ripple/platform/webworks.core/2.0.0/client');4var deviceQuery = client.unpackDeviceQuery("device=blackberry");5var device = require('ripple/platform/webworks.core/2.0.0/client/device');6var deviceQuery = device.unpackDeviceQuery("device=blackberry");7var transport = require('ripple/platform/webworks.core/2.0.0/client/transport');8var deviceQuery = transport.unpackDeviceQuery("device=blackberry");9var event = require('ripple/platform/webworks.core/2.0.0/client/event');10var deviceQuery = event.unpackDeviceQuery("device=blackberry");
Using AI Code Generation
1var root = require('ddc').root;2var deviceQuery = root.unpackDeviceQuery('USB\\VID_04D8&PID_003F\\5&2D7F8E8B&0&2');3console.log(deviceQuery);4var device = require('ddc').device;5var deviceQuery = device.unpackDeviceQuery('USB\\VID_04D8&PID_003F\\5&2D7F8E8B&0&2');6console.log(deviceQuery);7var monitor = require('ddc').monitor;8var deviceQuery = monitor.unpackDeviceQuery('USB\\VID_04D8&PID_003F\\5&2D7F8E8B&0&2');9console.log(deviceQuery);10var monitor = require('ddc').monitor;11var deviceQuery = monitor.unpackDeviceQuery('USB\\VID_04D8&PID_003F\\5&2D7F8E8B&0&2');12console.log(deviceQuery);13var monitor = require('ddc').monitor;14var deviceQuery = monitor.unpackDeviceQuery('USB\\VID_04D8&PID_003F\\5&2D7F8E8B&0&2');15console.log(deviceQuery);16var monitor = require('ddc').monitor;17var deviceQuery = monitor.unpackDeviceQuery('USB\\VID_04D8&PID_003F\\5&2D7F8E8B&0&2');18console.log(deviceQuery);19var monitor = require('ddc').monitor;20var deviceQuery = monitor.unpackDeviceQuery('USB\\VID_04D8&PID_003F\\5&2D7F8E8B&0&2');21console.log(deviceQuery);22var monitor = require('ddc
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!