Best JavaScript code snippet using wpt
nodesFactory.js
Source:nodesFactory.js
1import { rdfTypes } from './graphModel';2function createImage(node) {3 const img = new Image();4 if ( node.type === rdfTypes.File.key ){5 const extension = node.name.split(".").pop();6 img.src = "./images/graph/files/" + extension + ".svg"7 } else {8 img.src = (rdfTypes[String(node.type)]?.image !== "") ? rdfTypes[String(node.type)].image : rdfTypes.Unknown.image9 }10 return img;11}12function extractProperties(node, ttlTypes) {13 if (ttlTypes === undefined) {14 return;15 }16 for (const property of node.properties) {17 for (const type_property of rdfTypes[node.type].properties) {18 if (property.predicate === (ttlTypes[type_property.type]?.iri?.id + type_property.key)) {19 if (node.attributes[type_property.property] !== undefined) {20 node.attributes[type_property.property].push(property.value);21 } else {22 node.attributes[type_property.property] = [];23 node.attributes[type_property.property].push(property.value);24 }25 }26 }27 }28 if (node.additional_properties) {29 for (const json_prop of rdfTypes[node.type].additional_properties) {30 let new_attribute = node.additional_properties;31 for (const step of json_prop.path) {32 if (new_attribute[step] !== undefined) {33 new_attribute = new_attribute[step];34 } else {35 new_attribute = undefined;36 break;37 }38 }39 if (new_attribute !== undefined) {40 if (typeof new_attribute === 'object' && new_attribute !== null && new_attribute[json_prop.innerPath]) {41 new_attribute = new_attribute[json_prop.innerPath];42 }43 node.attributes[json_prop.property] = [];44 if (json_prop.type === 'string') {45 node.attributes[json_prop.property].push(new_attribute.replace(json_prop.trimType, ''));46 } else {47 node.attributes[json_prop.property].push(parseFloat(new_attribute));48 }49 }50 }51 }52 if (node?.attributes?.identifier !== undefined) {53 node.name = node.attributes.identifier;54 }55}56var NodesFactory = function () {57 this.createNode = function (node, ttlTypes) {58 var typed_node;59 switch(node.type) {60 case "Award":61 typed_node = new Award(node, ttlTypes);62 break;63 case "Collection":64 typed_node = new Collection(node, ttlTypes);65 break;66 case "Contributor":67 typed_node = new Contributor(node, ttlTypes);68 break;69 case "Dataset":70 typed_node = new Dataset(node, ttlTypes);71 break;72 case "Protocol":73 typed_node = new Protocol(node, ttlTypes);74 break;75 case "Sample":76 typed_node = new Sample(node, ttlTypes);77 break;78 case "Subject":79 typed_node = new Subject(node, ttlTypes);80 break;81 case "File":82 typed_node = new File(node, ttlTypes);83 break;84 case "Person":85 typed_node = new Person(node, ttlTypes);86 break;87 default:88 typed_node = new Unknown(node, ttlTypes);89 }90 return typed_node;91 }92}93const Collection = function (node, ttlTypes) {94 node.img = createImage(node);95 extractProperties(node, ttlTypes);96 return node;97};98const Contributor = function (node, ttlTypes) {99 extractProperties(node, ttlTypes);100 node.img = createImage(node);101 // compile node name based on the props extracted, if these are presents102 node.name = node.attributes?.firstName !== undefined103 ? node.attributes?.middleName !== undefined104 ? node.attributes?.lastName !== undefined105 ? node.attributes?.firstName + " " + node.attributes?.middleName + " " + node.attributes?.lastName106 : node.attributes?.firstName + " " + node.attributes?.middleName107 : node.attributes?.lastName !== undefined108 ? node.attributes?.firstName + " " + node.attributes?.lastName109 : node.attributes?.firstName110 : node.name;111 return node;112};113const Award = function (node, ttlTypes) {114 extractProperties(node, ttlTypes);115 node.img = createImage(node);116 var namesArray = node.name.split("/");117 node.name = namesArray[namesArray.length - 1];118 return node;119};120const Dataset = function (node, ttlTypes) {121 node.img = createImage(node);122 extractProperties(node, ttlTypes);123 var namesArray = node.name.split(":");124 node.name = namesArray[namesArray.length - 1];125 return node;126};127const Protocol = function (node, ttlTypes) {128 node.img = createImage(node);129 extractProperties(node, ttlTypes);130 var namesArray = node.name.split("/");131 node.name = namesArray[namesArray.length - 1];132 return node;133};134const Sample = function (node, ttlTypes) {135 node.img = createImage(node);136 extractProperties(node, ttlTypes);137 return node;138};139const Subject = function (node, ttlTypes) {140 node.img = createImage(node);141 extractProperties(node, ttlTypes);142 if (node.attributes?.identifier !== undefined) {143 node.name = node.attributes?.identifier[0];144 } else {145 var namesArray = node.name.split("/");146 node.name = namesArray[namesArray.length - 1];147 }148 return node;149};150const File = function (node, ttlTypes) {151 node.img = createImage(node);152 extractProperties(node, ttlTypes);153 return node;154};155const Person = function (node, ttlTypes) {156 extractProperties(node, ttlTypes);157 node.img = createImage(node);158 // compile node name based on the props extracted, if these are presents159 node.name = node.attributes?.firstName !== undefined160 ? node.attributes?.middleName !== undefined161 ? node.attributes?.lastName !== undefined162 ? node.attributes?.firstName + " " + node.attributes?.middleName + " " + node.attributes?.lastName163 : node.attributes?.firstName + " " + node.attributes?.middleName164 : node.attributes?.lastName !== undefined165 ? node.attributes?.firstName + " " + node.attributes?.lastName166 : node.attributes?.firstName167 : node.name;168 return node;169};170const Unknown = function (node, ttlTypes) {171 node.img = createImage(node);172 extractProperties(node, ttlTypes);173 return node;174};...
device.js
Source:device.js
1let attribute = require("./attribute.js");2let sf = require('./service_functions.js');3module.exports = class device {4 constructor(plc, mqtt, config) {5 this.plc_handler = plc;6 this.mqtt_handler = mqtt;7 this.name = config.name || "unnamed device";8 this.config = config;9 this.discovery_topic = "homeassistant";10 this.discovery_retain = false;11 this.type = config.type.toLowerCase();12 // device topics13 this.mqtt_name = config.mqtt;14 this.full_mqtt_topic = config.mqtt_base + "/" + this.mqtt_name;15 // store all attribute objects in this array16 this.attributes = {};17 }18 create_attribute(config, required_type, name) {19 // create attribute object20 let new_attribute = new attribute(21 this.plc_handler,22 this.mqtt_handler,23 name,24 required_type,25 this.full_mqtt_topic);26 // the config could be an object27 // or simply an string28 if (typeof config == "object") {29 new_attribute.plc_address = config.plc;30 // optional different set address31 if (config.set_plc)32 new_attribute.plc_set_address = config.set_plc;33 // optional Read Write config34 if (config.rw)35 new_attribute.set_RW(config.rw);36 // optional update_interval37 if (config.update_interval)38 new_attribute.update_interval = config.update_interval;39 // optional inverted, works only with booleans40 if (config.inverted)41 new_attribute.boolean_inverted = config.inverted;42 // optional unit_of_measurement only for homeassistant43 if (config.unit_of_measurement)44 new_attribute.unit_of_measurement = config.unit_of_measurement;45 // optional write back changes from plc to set_plc46 if (config.write_back)47 new_attribute.write_back = config.write_back;48 } else {49 new_attribute.plc_address = config;50 }51 // register the attribute to the plc library52 new_attribute.subscribePlcUpdates();53 // split the plc adress to get the type54 let offset = new_attribute.plc_address.split(',');55 let params = offset[1].match(/(\d+|\D+)/g);56 let type = params[0];57 // check if the type is correct58 // and if it isnt then print some infos59 if (required_type != "" && type != required_type) {60 sf.debug("Wrong datatype '" + type + "' at attribute '" + name + "'");61 let numbers = "";62 for (var i = 1; i < params.length; i++) {63 numbers += params[i];64 }65 sf.debug("Did you mean " + offset[0] + "," +66 required_type + numbers +67 " instead of " + new_attribute.plc_address + " ?");68 return;69 } else {70 new_attribute.type = type;71 }72 sf.debug("- New attribute '" + new_attribute.full_mqtt_topic + "' was created");73 // save attribute in array74 this.attributes[name] = new_attribute;75 }76 send_discover_msg(info) {77 // create an topic in which the discovery message can be sent78 let topic = this.discovery_topic + "/" +79 this.type + "/s7-connector/" + this.mqtt_name + "/config";80 info.uniq_id = 's7-' + this.mqtt_name;81 this.mqtt_handler.publish(topic, JSON.stringify(info), {82 retain: this.discovery_retain83 });84 }85 rec_s7_data(attr, data) {86 // check if attribute with this name exists87 if (this.attributes[attr]) {88 // forward all data to attribute89 this.attributes[attr].rec_s7_data(data);90 }91 }92 rec_mqtt_data(attr, data, cb) {93 // check if attribute with this name exists94 if (this.attributes[attr]) {95 // forward all data to attribute96 this.attributes[attr].rec_mqtt_data(data, cb);97 }98 }99 get_plc_address(attr) {100 if (this.attributes[attr] && this.attributes[attr].plc_address) {101 return this.attributes[attr].plc_address;102 }103 return null;104 }105 get_plc_set_address(attr) {106 if (this.attributes[attr]) {107 if (this.attributes[attr].plc_set_address) {108 return this.attributes[attr].plc_set_address;109 } else if (this.attributes[attr].plc_address) {110 return this.attributes[attr].plc_address;111 }112 }113 return null;114 }...
fix-system.js
Source:fix-system.js
1const fs = require('fs');2const tags = JSON.parse(fs.readFileSync('aura-system.json.bak','utf-8'));3const tagkeys = Object.keys(tags);4for (const key of tagkeys) {5 const tag = tags[key];6 tag.namespace = 'aura';7 const a = [];8 for(const attr of Object.keys(tag.attributes)) {9 const new_attribute = {10 ...tag.attributes[attr]11 }12 new_attribute.name = attr;13 a.push(new_attribute);14 if (new_attribute.required) {15 new_attribute.required = 'true';16 } else {17 new_attribute.required = 'false';18 }19 new_attribute.access = 'global';20 }21 tag.attributes = a;22}23const out = JSON.stringify(tags, null, 3);...
Using AI Code Generation
1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org');3var options = {4};5 if (err) return console.error(err);6 console.log(data);7});
Using AI Code Generation
1wpt.new_attribute("custom_attribute");2wpt.custom_attribute = "custom_value";3wpt.custom_attribute;4wpt.new_attribute("custom_attribute");5wpt.custom_attribute = "custom_value";6wpt.custom_attribute;7wpt.new_attribute("custom_attribute");8wpt.custom_attribute = "custom_value";9wpt.custom_attribute;10wpt.new_attribute("custom_attribute");11wpt.custom_attribute = "custom_value";12wpt.custom_attribute;13wpt.new_attribute("custom_attribute");14wpt.custom_attribute = "custom_value";15wpt.custom_attribute;16wpt.new_attribute("custom_attribute");17wpt.custom_attribute = "custom_value";18wpt.custom_attribute;19wpt.new_attribute("custom_attribute");20wpt.custom_attribute = "custom_value";21wpt.custom_attribute;22wpt.new_attribute("custom_attribute");23wpt.custom_attribute = "custom_value";24wpt.custom_attribute;25wpt.new_attribute("custom_attribute");26wpt.custom_attribute = "custom_value";27wpt.custom_attribute;28wpt.new_attribute("custom_attribute");29wpt.custom_attribute = "custom_value";30wpt.custom_attribute;31wpt.new_attribute("custom_attribute");32wpt.custom_attribute = "custom_value";33wpt.custom_attribute;34wpt.new_attribute("custom_attribute");35wpt.custom_attribute = "custom_value";36wpt.custom_attribute;37wpt.new_attribute("custom_attribute");38wpt.custom_attribute = "custom_value";
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!!