Best JavaScript code snippet using playwright-internal
ablib.js
Source:ablib.js  
1/**2 *3 *  Secure Addressing4 *5 *  Copyright (C) 2014 Hiroya Matsuba6 *7 *   This file is part of Secure Addressing8 *9 *   Secure Addressing is free software: you can redistribute it and/or modify10 *   it under the terms of the GNU General Public License as published by11 *   the Free Software Foundation, either version 3 of the License, or12 *   (at your option) any later version.13 *14 *   Secure Addressing is distributed in the hope that it will be useful,15 *   but WITHOUT ANY WARRANTY; without even the implied warranty of16 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the17 *   GNU General Public License for more details.18 *19 *   You should have received a copy of the GNU General Public License20 *   along with Foobar.  If not, see <http://www.gnu.org/licenses/>.21 *22**/23var EXPORTED_SYMBOLS = ["getAbEnt", "makeDataFromCard"];24var ttldb = 3 * 24 * 3600;25Components.utils.import("resource://gre/modules/Timer.jsm");26Components.utils.import("chrome://secure-addressing/content/log.js");27Components.utils.import("chrome://secure-addressing/content/memcache.js");28Components.utils.import("resource://gre/modules/Services.jsm");29Components.utils.import("resource://gre/modules/FileUtils.jsm");30var ldapHandler = new Object();31var abManager = Components.classes["@mozilla.org/abmanager;1"]32                  .getService(Components.interfaces.nsIAbManager);33function makeDataFromCard(card) {34    if (!card) {35        return null;36    }37    let ret;38    try {39        ret = {40            email: card.primaryEmail,41            name: card.displayName,42            company:    card.getProperty("Company", "") ,43            department: card.getProperty("Department", "") ,44            title:      card.getProperty("JobTitle", ""),45            phone:      card.getProperty("WorkPhone", ""),46            address:    card.getProperty("WorkAddress", ""),47        };48    } catch (e) {49        err("error in making data from card: " + e + "\n");50        ret = null;51    }52    return ret;53}54var abListener = {55    onItemAdded: function(parentdir, item) {56        //dbg("item added\n");57        if (!(item instanceof Components.interfaces.nsIAbCard)) {58            return;59        }60        if (!(parentdir instanceof Components.interfaces.nsIAbDirectory)) {61            return;62        }63        let email = item.primaryEmail;64        let name = item.displayName;65        //dbg("got: " + email + " = " + name + "\n");66        let uri = parentdir.URI;67        let obj;68        if (uri in ldapHandler) {69            obj = ldapHandler[uri];70        } else {71        }72        let data = makeDataFromCard(item);73        if (obj && data) {74            obj.ldap_handler(data);75        } else {76            //dbg("no handler\n");77            if (!parentdir.isRemote) {78                memcacheInvalidate(email);79            }80        }81    },82    onItemRemoved: function(parentdir, item) {83        if (!(parentdir instanceof Components.interfaces.nsIAbDirectory)) {84            return;85        }86        if (!(item instanceof Components.interfaces.nsIAbCard)) {87            return;88        }89        if (!parentdir.isRemote) {90            memcacheInvalidate(item.primaryEmail);91        }92    },93    onItemPropertyChanged: function(item, aProperty, aOldValue, aNewValue) {94        if (!(item instanceof Components.interfaces.nsIAbCard)) {95            return;96        }97        memcacheInvalidate(item.primaryEmail);98    }99};100abManager.addAddressBookListener(abListener, Components.interfaces.nsIAbListener.all);101var dbs = new Object();102var queries = new Object();103function dbQuery(dbname) {104    let mDBConn;105    try {106        let file = FileUtils.getFile("ProfD", ["ldapcache.sqlite"]);107        mDBConn = Services.storage.openDatabase(file);108        mDBConn.executeSimpleSQL("CREATE TABLE IF NOT EXISTS " + dbname +109                             " (email TEXT PRIMARY KEY, name TEXT, " +110                             "company TEXT, department TEXT, title TEXT, " +111                             "phone TEXT, address TEXT, lastupdate INTEGER)");112    } catch(e) {113        err("create table error " + e + "\n");114    }115    let obj = this;116    this.dbconn = mDBConn;117    this.add_data = function(data) {118        if (!data) {119            return;120        }121        let st = this.dbconn.createAsyncStatement("INSERT INTO " + dbname + 122                                         " VALUES(:email, :name, " +123                                         ":company, :department, :title, :phone, " +124                                         ":address, :lastupdate)");125        //st.params.dbname = dbname;126        st.params.email = data.email;127        st.params.name = data.name;128        st.params.company = data.company;129        st.params.department = data.department;130        st.params.title = data.title;131        st.params.phone = data.phone;132        st.params.address = data.address;133        st.params.lastupdate = 0;134        let asyncHandler = {135            handleResult : function(result) {},136            handleError : function(err) {},137            handleCompletion : function(reason) {138                let st2 = obj.dbconn.createAsyncStatement("UPDATE " + dbname +139                                         " SET lastupdate = " +140                                         ":lastupdate WHERE email = :email");141                //st2.params.dbname = dbname;142                st2.params.email = data.email;143                st2.params.lastupdate = Date.now();144                st2.executeAsync({handleResult: function(){return;},145                                  handleError:  function(){return;},146                                  handleCompletion: function(){return;}});147            }148        };149        st.executeAsync(asyncHandler);      150    };151    this.search = function(email, callback, param) {152        let st;153        try {154            st = mDBConn.createAsyncStatement("SELECT * FROM " + dbname + " WHERE email = :email");155            st.params.email = email;156        } catch(e) {157            err("db error " + e + "\n");158        }159        let all_results = new Array();160        var asyncHndler = {161            handleResult: function(results) {162                for(let row = results.getNextRow(); row; row = results.getNextRow()) {163                    try {164                        var ret = {165                            email: row.getResultByName("email"),166                            name: row.getResultByName("name"),167                            company: row.getResultByName("company"),168                            department: row.getResultByName("department"),169                            title: row.getResultByName("title"),170                            phone: row.getResultByName("phone"),171                            address: row.getResultByName("address"),172                            lastupdate: row.getResultByName("lastupdate"),173                        };174                        all_results.push(ret);175                    } catch(e) {176                        err("error in receiving DB: " + e + "\n");177                    }178                }179            },180            handleError: function(aError) {181                err("callback error " + aError.message + " " + aError.result + "\n");182            },183            handleCompletion: function(aReason) {184                if (!callback) {185                    return;186                }187                if (aReason != Components.interfaces.mozIStorageStatementCallback.REASON_FINISHED) {188                    callback(param, null, 3);189                    return;190                }191                if ((all_results.length > 0) &&192                    (Date.now() - all_results[0].lastupdate < ttldb * 1000)) {193                    callback(param, all_results[0], 0);194                } else {195                    callback(param, null, 4);196                }197                return;198            },199        };200        st.executeAsync(asyncHndler);201        return;202    };203}204function getDB(dbname) {205    if (dbname in dbs) {206        return dbs[dbname];207    } else {208        let n = new dbQuery(dbname);209        dbs[dbname] = n;210        return n;211    }212}213function saQuery(ab, baseuri, cache, email) {214    let dbname = baseuri.replace("://", "_").replace(/-/g, "_").replace(/\./g, "_");215    let mDBConn = null;216    this.dbquery = getDB(dbname);217    let obj = this;218    this.cache = cache;219    this.dbconn = mDBConn;220    this.queryURI = ab.URI;221    this.addressBook = ab;222    this.dbname = dbname;223    this.handlers = new Array();224    this.tohandlers = new Array();225    this.register_handler = function(func, param) {226        /* call now for already known addresses */227        for(let i = 0; i < this.cards.length; i++) {228            func(param, this.cards[i], true);229        }230        let item = {func: func, param: param};231        this.handlers.push(item);232        return;233    };234    this.register_tohandler = function(func) {235        if (func) {236            this.tohandlers.push(func);237        }238    };239    this.call_handler = function(data) {240        for(let i = 0; i < this.handlers.length; i++) {241            let func = this.handlers[i].func;242            let param = this.handlers[i].param;243            func(param, data, true);244        }245    };246    this.cards = new Array();247    this.ldap_handler = function(data) {248        if (obj.dbquery) {249            obj.dbquery.add_data(data);250        }251        obj.cards.push(data);252        obj.call_handler([data]);253        //dbg("found card: data = " + data.name + "\n");254        if (obj.timeout2) {255            try {256                clearTimeout(obj.timerID);257                obj.timerID = setTimeout(function() {obj.timer_expired();}, 258                                         obj.timeout2 * 1000);259            } catch(e) {260                err("error " + e + "\n");261            }262        }263    };264    this.ldapsearch = function() {265        ldapHandler[this.queryURI] = this;266        let cards = obj.addressBook.childCards;267        while (cards.hasMoreElements()) {268            let card = cards.getNext();269            if (card instanceof Components.interfaces.nsIAbCard) {270                err("chid card found in LDAP dir\n");271            }272        }273    };274    this.timerID = -1;275    this.nexpire = 0;276    this.timer_expired = function() {277        //dbg("timer expired: " + obj.nexpire + "\n");278        obj.nexpire++;279        if (obj.cards.length == 0) {280            obj.call_handler([]);281            if (cache) {282                let adddata = {283                    email: email, name: "", company: "", department: "",284                    title: "", phone: "", address: "",285                };286                //obj.dbquery.add_data(adddata);287            }288        }289        if (obj.queryURI in ldapHandler) {290            delete ldapHandler[obj.queryURI];291        }292        if (obj.queryURI in queries) {293            delete queries[obj.queryURI];294        }295        for(let i = 0; i < obj.tohandlers.length; i++) {296            let func = obj.tohandlers[i];297            func();298        }299        obj.handlers = null;300        obj.tohandlers = null;301    };302    this.issued = false;303    this.search = function(func, arg, timeo, timeo2, tohndl) {304        let obj = this;305        if (!timeo) {306            timeo = 10 * 1000;307        } else {308            timeo = timeo * 1000;309        }310        if (this.timerID >= 0) {311            clearTimeout(this.timerID);312        }313        this.timeout2 = timeo2;314        this.timerID = setTimeout(function() {obj.timer_expired();}, timeo);315        this.register_handler(func, arg);316        this.register_tohandler(tohndl);317        if (this.issued) {318            return;319        }320        this.issued = true;321        if (cache) {322            let cachecb = function(dummy, data, error) {323                if (data) {324                    obj.cards.push(data);325                    obj.call_handler([data]);326                } else {327                    try{328                        obj.ldapsearch();329                    } catch(e) {330                        err(e);331                    }332                }  333                return;334            };335            this.dbquery.search(email, cachecb, 0);336        } else {337            this.ldapsearch();338        }339        return;340    };341}342function getQuery(ab, baseuri, cache, email) {343    let quri = ab.URI;344    if (quri in queries) {345        return queries[quri];346    } else {347        let n = new saQuery(ab, baseuri, cache, email);348        queries[quri] = n;349        return n;350    }351}352function analyzeQuery(condition) {353    let uc = true;354    let email;355    let total = 0;356    let str = "?(and";357    for(let i = 0; i < condition.length; i++) {358        let ci = condition[i];359        let substr = "(or";360        for(let j = 0; j < ci.length; j++) {361            if ((total != 0) || 362                (ci[j].key != "PrimaryEmail") ||363                (ci[j].op != "=")) {364                uc = false;365            }366            let subsubstr = "(" + ci[j].key + "," + ci[j].op + "," +367                            encodeURIComponent(ci[j].value) + ")";368            substr += subsubstr;369            email = ci[j].value;370            total++;371        }372        substr += ")";373        str += substr;374    }375    str += ")";376    //dbg("query = " + str + ", cache = " + uc + "\n");377    if (!uc) {378        email = "";379    }380    return {str: str, cache: uc, email:email};381}382function getAbEnt(uri, query, func, arg, timeo, timeo2, tohndl) {383    let q = analyzeQuery(query);384    let abURI = uri + q.str;385    let ab;386    try {387        ab = abManager.getDirectory(abURI);388    } catch(e) {389        func(arg, [], false);390        return;391    }392    if (ab.isRemote) {393        //dbg("abent remote: " + abURI);394        let rq = getQuery(ab, uri, q.cache, q.email);395        rq.search(func, arg, timeo, timeo2, tohndl);396        return 0;397    }398    399    let cards = ab.childCards;400    let cary = new Array();401    while (cards.hasMoreElements()) {402        let card = cards.getNext();403        if (card instanceof Components.interfaces.nsIAbCard) {404            let c = makeDataFromCard(card);405            cary.push(c);406        }407    }408    func(arg, cary, false);409    return 0;...BasePage.js
Source:BasePage.js  
1function GetFormControl(tsControlName){2	var loForm = GetMainForm();3	if(loForm!=null) return loForm[tsControlName];4	else return null;5}6function GetMainForm(){7	if(document.forms.length>0){8		return document.forms[0];9	}else{10		return null;11	}12}13function BoundHyperlink_onclick(toHyperlink, tsPostAction){14	if(toHyperlink.PostBack=="1"){15		var loForm = GetMainForm();16		var lsOldPostAction = "";17		if(tsPostAction!=null){18			lsOldPostAction = loForm["MnfPostAction"].value;19			loForm["MnfPostAction"].value = tsPostAction;20		}21		loForm[toHyperlink.KeyQueryName].value = toHyperlink.KeyValue;22		NetPostBack("","");23		if(tsPostAction!=null) loForm["MnfPostAction"].value = lsOldPostAction;24	}else25		SubmitUrl(toHyperlink.href, tsPostAction);26	return false;27}28function SubmitUrl(tsUrl, tsPostAction){29	var loForm = GetMainForm();30	var lsOldAction = loForm.action;31	var lsOldPostAction = "";32	if(tsPostAction!=null){33		lsOldPostAction = loForm["MnfPostAction"].value;34		loForm["MnfPostAction"].value = tsPostAction;35	}36	loForm.action = tsUrl;37	if(loForm.__VIEWSTATE!=null) loForm.__VIEWSTATE.name="___VIEWSTATE";38	if(loForm.__EVENTTARGET!=null) loForm.__EVENTTARGET.name="___EVENTTARGET";39	if(loForm.__EVENTARGUMENT!=null) loForm.__EVENTARGUMENT.name="___EVENTARGUMENT";40	loForm.submit();41	loForm.action = lsOldAction;42	if(tsPostAction!=null) loForm["MnfPostAction"].value = lsOldPostAction;43	return true;44}45function PostBackForm(tsTarget, tsPostAction){46	var loForm = GetMainForm();47	var lsOldTarget = loForm.target;48	var lsOldPostAction = "";49	if(tsPostAction!=null){50		lsOldPostAction = loForm["MnfPostAction"].value;51		loForm["MnfPostAction"].value = tsPostAction;52	}53	if(tsTarget!=null&&tsTarget!="") loForm.target = tsTarget;54	if(typeof(MnfOnSubmit) != "undefined") MnfOnSubmit();55	loForm.submit();56	loForm.target = lsOldTarget;57	if(tsPostAction!=null) loForm["MnfPostAction"].value = lsOldPostAction;58}59function PostBackToParent(){60	var loParent = GetDialogParent();61	var lsOldParentName = loParent.name;62	loParent.name = "ParentWindow";63	PostBackForm("ParentWindow");64	loParent.name =lsOldParentName;65}66function PostBackSortAction(tsSortFields){67	var loForm = GetMainForm();68	loForm.VicDataGrid_SortFields.value = tsSortFields;69	NetPostBack('','');70}71function NetPostBack(eventTarget, eventArgument) {72	var theform;73	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {74		theform = document.Form1;75	}76	else {77		theform = document.forms["Form1"];78	}79	80	if(theform==null) theform=GetMainForm();81	82	if(theform.__EVENTTARGET!=null) theform.__EVENTTARGET.value = eventTarget.split("$").join(":");83	if(theform.__EVENTARGUMENT!=null) theform.__EVENTARGUMENT.value = eventArgument;84	theform.submit();85}86function AppendQueryString(tsURL, tsQueryString){87	var lsURL = new String(tsURL);88	var lnIndex = lsURL.indexOf("?");89	if(tsQueryString=="") return tsURL;90	if(lnIndex>=0){91		return tsURL+"&"+tsQueryString;		92	}else{93		return tsURL+"?"+tsQueryString;94	}95}96function GetAppPath(){97	var loForm = GetMainForm();98	if(loForm.MNF_AppPath!=null) return "/"+loForm.MNF_AppPath.value;99	return "";100}101function AppendAppPath(tsUrl){102	if(tsUrl.substring(0,1)=="/")103		return GetAppPath()+tsUrl;104	else105		return tsUrl;106}107function GetDialogParent(){108	return window.parent.opener;109}110function DialogArgu(){111	this.Action = "";112}113function OpenDialog(tsURL,toArgu,tsInputParameters, tnWidth,tnHeight,tnTop,tnLeft,tsStyle)114{115	var lsStyle="resizable:yes;status=no;dialogHeight:"+tnHeight+"px;dialogWidth:"+tnWidth+"px;";116	lsStyle = lsStyle+";"+tsStyle; 117	var loArgus = new Object();118	if(tsURL.indexOf("?") != -1)119	    tsURL += "&RIDD="+Math.random()120	else121	    tsURL += "?RIDD="+Math.random()122	loArgus.Url = tsURL;123	loArgus.Opener = window;124	loArgus.Argu = toArgu;125	loArgus.InputParameters = tsInputParameters;126	window.showModalDialog("/MyFramework/SystemFrame/DialogFrame.aspx",loArgus ,lsStyle);127	return true;128}129function OpenWindow(tsURL, tsWindowName,tnWidth, tnHeight){130	var sW=screen.width;131	var sH=screen.height;132	var wL=(sW-tnWidth)/2;133	var wH=(sH-tnHeight)/2;134	var Win = window.open(tsURL,tsWindowName,'width=' + tnWidth + ',height=' + tnHeight + ',resizable=yes,scrollbars=yes,menubar=no,status=yes,left='+wL+',top='+wH);135}136function CallHandlers(toHandlers){137	for(var lnIndex=0; lnIndex<toHandlers.length; lnIndex++){138		if(lnIndex>0)toHandlers[lnIndex]();139	}140	if(toHandlers.length>0&&toHandlers[0]!=null) toHandlers[0]();141}142function showsubmenu(sid)143{144  145  var lsOldMenuId=document.getElementById("OldleftId");146  whichEl = eval("submenu" + sid);147  whichEl1 = eval("menuTitle" + sid);148  if (whichEl.style.display == "none")149  {150    var lsOldMenuId=document.getElementById("OldleftId");151    if(lsOldMenuId.value!="")152    {153        eval("submenu" + lsOldMenuId.value + ".style.display=\"none\";");154        eval("menuTitle" + lsOldMenuId.value + ".background=\"/MyFramework/Image/GLeftImage/crm_left.gif\";");155    156    }157    lsOldMenuId.value=sid;158    eval("submenu" + sid + ".style.display=\"\";");159    whichEl1.background="/MyFramework/Image/GLeftImage/crm_left1.gif";160  }161  else162  {163    eval("submenu" + sid + ".style.display=\"none\";");164     whichEl1.background="/MyFramework/Image/GLeftImage/crm_left.gif";165  }166  167}168function mouseover(sid)169{170  whichEl = eval("menuTitle" + sid);171  whichEl.background="/MyFramework/Image/TopImage/anniu_left_01.gif";172 173}174function mouseout(sid)175{176  whichEl = eval("submenu" + sid);177  whichEl1 = eval("menuTitle" + sid);178  if (whichEl.style.display == "none")179  {180    whichEl1.background="/MyFramework/Image/GLeftImage/crm_left.gif";181  }182  else183    whichEl1.background="/MyFramework/Image/GLeftImage/crm_left1.gif";184}185    //Çå¿ÕÒ³ÃæÊäÈëÐÅÏ¢ 186    function InputBlank()187    {188        var InputObj   = document.all.tags("input");189        var TextAreaObj= document.all.tags("textarea");190       191        for( var i=0; i<InputObj.length; i++ )192        {193            if( InputObj[i].type.toLowerCase() == "text" )194            {195                InputObj[i].value = "";196            }197        }198        199        for(var j = 0; j<TextAreaObj.length; j++)200        {201            TextAreaObj[j].value = "";202        }203        204    }205    206    207//µÃµ½µ±Ç°¶ÔÏóµÄleftºÍTop Öµ208function getObjectLeft(toObject){  209    var lnLeftValue = toObject.offsetLeft;   210    while(toObject = toObject.offsetParent){   211        lnLeftValue += toObject.offsetLeft;   212    }   213    return lnLeftValue; 214}   215function getObjectTop(toObject){   216    var  lnTopValue = toObject.offsetTop;   217    while(toObject=toObject.offsetParent){   218        lnTopValue += toObject.offsetTop;   219    }   220    return lnTopValue;221}222//Çå³ýËùÓÐÑ¡Ïî223function clearOptions(toList){224    for(var lnIndex=toList.options.length-1; lnIndex>=0; lnIndex--){225	    toList.options[lnIndex]= null;226    }   227}228//µÃµ½Ñ¡ÔñµÄÑ¡Ïî229function getSelectedOption(toList){230    for(var lnIndex=0; lnIndex<toList.options.length; lnIndex++){231        if(toList.options[lnIndex].selected){232            return toList.options[lnIndex];233	    }234    }235    return null;    236}237function hidebar(){238    lsLeftMenuTableName="";239	if(document.all["tbcrmleftmenu"]!=undefined)240		lsLeftMenuTableName = "tbcrmleftmenu";241    else242		return false;	243	if(document.all[lsLeftMenuTableName].style.display=="none"){244	    document.all["igHideBarImpage"].src='/MyFramework/Image/GLeftImage/framehide.gif';245		document.all[lsLeftMenuTableName].style.display = "block";246	}else{247		document.all[lsLeftMenuTableName].style.display = "none";248		 document.all["igHideBarImpage"].src='/MyFramework/Image/GLeftImage/frameshow.gif';249	}250	return true;251}252//window.history.forward(1);// ʹµã»÷Â乤¾ßÌõÉϺóÍËÓëǰ½ø°´Å¥ÎÞЧ 253document.onkeydown=function ShieldBack()254{   255    if ((event.altKey)&&((event.keyCode==37)|| //ÆÁ±ÎAlt+ ·½Ïò¼ü  ¡û256        (event.keyCode==39))){ //ÆÁ±ÎAlt+ ·½Ïò¼ü  ¡ú257        //alert("²»×¼ÄãʹÓÃALT+·½Ïò¼üǰ½ø»òºóÍËÍøÒ³£¡"); 258    event.returnValue=false; 259    } 260    if ((event.keyCode == 8) && (event.srcElement.type != "text" && event.srcElement.type != "textarea" && event.srcElement.type != "password")) { 261        //ÆÁ±ÎBackSpace¼ü262       event.keyCode = 0; 263       event.cancelBubble = true; 264       event.returnValue=false; 265    } 266}267/* ËÄÉáÎåÈë268 * ForRound(Dight,How):ÊýÖµ¸ñʽ»¯º¯Êý£¬DightÒª 269 * ¸ñʽ»¯µÄÊý×Ö£¬HowÒª±£ÁôµÄСÊýλÊý¡£       270 */       271function  ForRound(Dight,How)       272{273      Dight = Math.round(Dight*Math.pow(10,How))/Math.pow(10,How);       274      return Dight;       ...powerConsumption.js
Source:powerConsumption.js  
1import * as consts from '../../../consts';2import S6FInstaPowerToHourly from '../../events/mapper/toHandlers/s6fresnel/S6FInstaPowerToHourly';3import S6InstaPowerToAlert from '../../events/mapper/toHandlers/s6fresnel/S6InstaPowerToAlert';4import SONInstaPowerToHourly from '../../events/mapper/toHandlers/sonoff/SONInstaPowerToHourly';5import SONDailyConsumeToDaily from '../../events/mapper/toHandlers/sonoff/SONDailyConsumeToDaily';6const PowerConsumptionRules = (ruleEngine, {7  hourlyStatHandler,8  dailyStatHandler,9  updateOnlineStatusHandler,10  powerAlertHandler,11  closeAlertHandler,12}) => {13  // S6 Instant power message14  ruleEngine.add({15    predicate: msg => msg.Type === consts.EVENT_TYPE_FRESNEL_POWER_CONSUME ||16      msg.Type === consts.EVENT_TYPE_TOPIC_POWER_CONSUME,17    fn: (msg) => {18      hourlyStatHandler.process(S6FInstaPowerToHourly(msg));19      updateOnlineStatusHandler.process(S6FInstaPowerToHourly(msg));20    },21  });22  // S6 Alert if power < 0.123  ruleEngine.add({24    predicate: msg => (msg.Type === consts.EVENT_TYPE_FRESNEL_POWER_CONSUME ||25      msg.Type === consts.EVENT_TYPE_TOPIC_POWER_CONSUME) &&26      msg.Payload.value < 0.1,27    fn: (msg) => {28      powerAlertHandler.process(S6FInstaPowerToHourly(msg));29    },30  });31  // Close power Alert if power >= 0.132  ruleEngine.add({33    predicate: msg => (msg.Type === consts.EVENT_TYPE_FRESNEL_POWER_CONSUME ||34      msg.Type === consts.EVENT_TYPE_TOPIC_POWER_CONSUME) &&35      msg.Payload.value >= 0.1,36    fn: (msg) => {37      closeAlertHandler.process(S6InstaPowerToAlert(msg));38    },39  });40  // Sonoff Instan power message41  ruleEngine.add({42    predicate: msg => msg.Type === consts.EVENT_TYPE_ENERGY,43    fn: (msg) => {44      hourlyStatHandler.process(SONInstaPowerToHourly(msg));45      dailyStatHandler.process(SONDailyConsumeToDaily(msg));46      updateOnlineStatusHandler.process(SONInstaPowerToHourly(msg));47      powerAlertHandler.process(SONInstaPowerToHourly(msg));48    },49  });50};...simple-drag-pkg.esm.js
Source:simple-drag-pkg.esm.js  
...36  return (openBlock(), createElementBlock("div", mergeProps({37    class: "sen-drag",38    draggable: "true",39    style: _ctx.style40  }, toHandlers(_ctx.events)), toDisplayString(_ctx.text), 17 /* TEXT, FULL_PROPS */))41}42script.render = render;43script.__scopeId = "data-v-0e50d8ad";44script.__file = "src/Drag.vue";45const components = [script];46function install(app) {47    components.forEach((component) => {48        app.component(component.name, component);49    });50}51var index = {52    install,53};54export { script as Drag, index as default };lwtRules.js
Source:lwtRules.js  
1import * as consts from '../../../consts';2import SONLwtToHandler from '../../events/mapper/toHandlers/sonoff/SONLwtToHandler';3import S6LwtToHandler from '../../events/mapper/toHandlers/s6fresnel/S6LwtToHandler';4import lwtAPPEventToHandler from '../../events/mapper/toHandlers/appEvents/lwtAPPEventToHandler';5import lwtAPPEventToAlertHandler from '../../events/mapper/toHandlers/appEvents/lwtAppEventToAlertHandler';6import { STATUS_OFFLINE, STATUS_ONLINE } from '../../common/lwtConsts';7const LwtRules = (ruleEngine, {8  lwtHandler,9  closeAlertHandler,10  lwtStatusAlertHandler,11}) => {12  /* Sonoff */13  ruleEngine.add({14    predicate: msg => msg.Type === consts.EVENT_TYPE_LWT,15    fn: msg => lwtHandler.process(SONLwtToHandler(msg)),16  });17  /* Alerts */18  ruleEngine.add({19    predicate: msg => (msg.type === consts.APPEVENT_TYPE_LWT_ALERT &&20      msg.status === STATUS_OFFLINE),21    fn: msg => lwtStatusAlertHandler.process(lwtAPPEventToHandler(msg)),22  });23  ruleEngine.add({24    predicate: msg => (msg.type === consts.APPEVENT_TYPE_LWT_ALERT &&25      msg.status === STATUS_ONLINE),26    fn: msg => closeAlertHandler.process(lwtAPPEventToAlertHandler(msg)),27  });28  /* S6 Fresnel device */29  ruleEngine.add({30    predicate: msg => msg.Type === consts.EVENT_TYPE_FRESNEL_LWT ||31      msg.Type === consts.EVENT_TYPE_TOPIC_LWT,32    fn: msg => lwtHandler.process(S6LwtToHandler(msg)),33  });34};...deviceRulse.js
Source:deviceRulse.js  
1import * as consts from '../../../consts';2import S6InfoToDevice from '../../events/mapper/toHandlers/s6fresnel/S6InfoToDevice';3import S6InfoToDeviceGroups from '../../events/mapper/toHandlers/s6fresnel/S6InfoToDeviceGroups';4import S6CrontabToDeviceCrontab from '../../events/mapper/toHandlers/s6fresnel/S6CrontabToDeviceCrontab';5import SONInfoToDevice from '../../events/mapper/toHandlers/sonoff/SONInfoToDevice';6const DeviceInfoRules = (ruleEngine, {7  deviceHandler,8  deviceGroupsHandler,9  deviceCrontabHandler,10}) => {11  ruleEngine.add({12    predicate: msg => msg.Type === consts.EVENT_TYPE_INFO,13    fn: msg => deviceHandler.process(SONInfoToDevice(msg)),14  });15  ruleEngine.add({16    predicate: msg => msg.Type === consts.EVENT_TYPE_FRESNEL_INFO ||17      msg.Type === consts.EVENT_TYPE_TOPIC_INFO,18    fn: (msg) => {19      deviceHandler.process(S6InfoToDevice(msg));20      deviceGroupsHandler.process(S6InfoToDeviceGroups(msg));21    },22  });23  ruleEngine.add({24    predicate: msg => msg.Type === consts.EVENT_TYPE_TOPIC_CRONTAB,25    fn: msg => deviceCrontabHandler.process(S6CrontabToDeviceCrontab(msg)),26  });27};...collapse-transition.vue_vue_type_template_id_f68ae30a_lang.mjs
Source:collapse-transition.vue_vue_type_template_id_f68ae30a_lang.mjs  
1import { openBlock, createBlock, Transition, toHandlers, withCtx, renderSlot } from 'vue';2function render(_ctx, _cache, $props, $setup, $data, $options) {3  return openBlock(), createBlock(Transition, toHandlers(_ctx.on), {4    default: withCtx(() => [5      renderSlot(_ctx.$slots, "default")6    ]),7    _: 38  }, 16);9}10export { render };...collapse-transition.vue_vue&type=template&id=f68ae30a&lang.mjs
Source:collapse-transition.vue_vue&type=template&id=f68ae30a&lang.mjs  
1import { openBlock, createBlock, Transition, toHandlers, withCtx, renderSlot } from 'vue';2function render(_ctx, _cache, $props, $setup, $data, $options) {3  return openBlock(), createBlock(Transition, toHandlers(_ctx.on), {4    default: withCtx(() => [5      renderSlot(_ctx.$slots, "default")6    ]),7    _: 38  }, 16);9}10export { render };...Using AI Code Generation
1const { toHandlers } = require('playwright/lib/server/frames');2const { chromium } = require('playwright');3const browser = await chromium.launch({ headless: false });4const context = await browser.newContext();5const page = await context.newPage();6await page.route('**', route => toHandlers(route).request(request => {7  console.log('request intercepted');8  request.continue();9}));10await page.click('input[type="text"]');11await page.keyboard.type('Playwright');12const { toHandlers } = require('playwright/lib/server/frames');13const { chromium } = require('playwright');14const browser = await chromium.launch({ headless: false });15const context = await browser.newContext();16const page = await context.newPage();17await page.route('**', route => toHandlers(route).request(request => {18  console.log('request intercepted');19  request.continue();20}));21await page.click('input[type="text"]');22await page.keyboard.type('Playwright');23const { toHandlers } = require('playwright/lib/server/frames');24const { chromium } = require('playwright');25const browser = await chromium.launch({ headless: false });26const context = await browser.newContext();27const page = await context.newPage();28await page.route('**', route => toHandlers(route).request(request => {29  console.log('request intercepted');30  request.continue();31}));32await page.click('input[type="text"]');33await page.keyboard.type('Playwright');34const { toHandlers } = require('playwright/lib/server/frames');35const { chromium } = require('playwright');36const browser = await chromium.launch({ headless: false });37const context = await browser.newContext();38const page = await context.newPage();39await page.route('**', route => toHandlers(route).request(request => {40  console.log('request intercepted');41  request.continue();Using AI Code Generation
1const { toHandlers } = require('playwright-core/lib/server/frames');2const { toHandlers } = require('playwright-core/lib/server/frames');3const { toHandlers } = require('playwright-core/lib/server/frames');4const { toHandlers } = require('playwright-core/lib/server/frames');5const { toHandlers } = require('playwright-core/lib/server/frames');6const { toHandlers } = require('playwright-core/lib/server/frames');7const { toHandlers } = require('playwright-core/lib/server/frames');8const { toHandlers } = require('playwright-core/lib/server/frames');9const { toHandlers } = require('playwright-core/lib/server/frames');10const { toHandlers } = require('playwright-core/lib/server/frames');11const { toHandlers } = require('playwright-core/lib/server/frames');Using AI Code Generation
1const { chromium } = require('playwright');2const { toHandlers } = require('@playwright/test/lib/server/frames');3const { expect } = require('@playwright/test');4(async () => {5  const browser = await chromium.launch();6  const context = await browser.newContext();7  const page = await context.newPage();8  await page.waitForSelector('text=Docs');9  const handlers = toHandlers(page);10  const [frame] = await handlers.waitForSelector('text=Docs');11  expect(await frame.textContent()).toContain('Docs');12  await browser.close();13})();Using AI Code Generation
1const { toHandlers } = require('@playwright/test/lib/server/frames');2const { toHandlers } = require('@playwright/test');3const { toHandlers } = require('playwright');4const { toHandlers } = require('playwright-core');5const { toHandlers } = require('playwright-chromium');6const { toHandlers } = require('playwright-firefox');7const { toHandlers } = require('playwright-webkit');8const { toHandlers } = require('playwright-experimental');9const { toHandlers } = require('playwright-experimental-chromium');10const { toHandlers } = require('playwright-experimental-firefox');11const { toHandlers } = require('playwright-experimental-webkit');12const { toHandlers } = require('playwright-experimental-webkit');13const { test, expect } = require('@playwright/test');14const { toHandlers } = require('@playwright/test');15test('toHandlers method', async ({ page }) => {16  const handlers = toHandlers({17    async click(selector) {18      await page.click(selector);19    },20    async fill(selector, text) {21      await page.fill(selector, text);22    },23  });24  await handlers.click('text=Get started');25  await handlers.fill('input[placeholder="Search"]', 'api');26  await handlers.click('text=API');27  await expect(page.locator('text=API').first()).toBeVisible();28});29const { webkit } = require('playwright-core');30const { toHandlersUsing AI Code Generation
1const { toHandlers } = require('@playwright/test');2const { test } = require('@playwright/test');3const { expect } = require('@playwright/test');4const { test as base } = require('@playwright/test');5const { expect as baseExpect } = require('@playwright/test');6const { toHandlers } = require('@playwright/test');7const { test } = require('@playwright/test');8const { expect } = require('@playwright/test');9const { test as base } = require('@playwright/test');10const { expect as baseExpect } = require('@playwright/test');11test.describe('Test', () => {12  test.beforeEach(async ({ page }) => {13  });14  test('Test', async ({ page }) => {15    await page.fill('input[name="q"]', 'Hello World');16  });17});18const { toHandlers } = require('@playwright/test');19const { test } = require('@playwright/test');20const { expect } = require('@playwright/test');21const { test as base } = require('@playwright/test');22const { expect as baseExpect } = require('@playwright/test');23const { toHandlers } = require('@playwright/test');24const { test } = require('@playwright/test');25const { expect } = require('@playwright/test');26const { test as base } = require('@playwright/test');27const { expect as baseExpect } = require('@playwright/test');28const { toHandlers } = require('@playwright/test');29const { test } = require('@playwright/test');30const { expect } = require('@playwright/test');31const { test as base } = require('@playwright/test');32const { expect as baseExpect } = require('@playwright/test');33const { toHandlers } = require('@playwright/test');34const { test } = require('@playwright/test');35const { expect } = require('@playwright/test');36const { test as base } = require('@playwright/test');37const { expect as baseExpect } = require('@playwright/test');Using AI Code Generation
1const { toHandlers } = require('playwright/lib/server/frames');2const { chromium } = require('playwright');3const { createServer } = require('http');4(async () => {5  const server = createServer((req, res) => {6    res.end('Hello World!');7  });8  const port = await new Promise(resolve => {9    server.listen(0, () => resolve(server.address().port));10  });11  const browser = await chromium.launch();12  const context = await browser.newContext();13  const page = await context.newPage();14  const [request] = await Promise.all([15    new Promise(resolve => server.once('request', resolve)),16  ]);17  console.log('Request headers:', request.headers);18  console.log('Response status:', request.response.statusCode);19  console.log('Response headers:', request.response.headers);20  await browser.close();21  await server.close();22})();23const { toHandlers } = require('playwright/lib/server/frames');24const { chromium } = require('playwright');25const { createServer } = require('http');26(async () => {27  const server = createServer((req, res) => {28    res.end('Hello World!');29  });30  const port = await new Promise(resolve => {31    server.listen(0, () => resolve(server.address().port));32  });33  const browser = await chromium.launch();34  const context = await browser.newContext();35  const page = await context.newPage();36  const [request] = await Promise.all([37    new Promise(resolve => server.once('request', resolve)),38  ]);39  console.log('Request headers:', request.headers);40  console.log('Response status:', request.response.statusCode);41  console.log('Response headers:', request.response.headers);42  await browser.close();43  await server.close();44})();45const { toHandlers } = require('playwright/lib/server/frames');46const { chromium } = require('playwright');47const { createServer } = require('http');48(async () => {49  const server = createServer((req, res) => {50    res.end('Hello World!');51  });52  const port = await new Promise(resolve => {53    server.listen(0, () => resolve(server.address().port));54  });Using AI Code Generation
1const { toHandlers } = require('playwright/lib/client/transport');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const page = await browser.newPage();6  const handler = toHandlers(page);7  console.log(handler);8  await browser.close();9})();Using AI Code Generation
1const { toHandlers } = require('@playwright/test/lib/server/transport');2const handlers = toHandlers([3  {4    async handler(params, metadata) {5      console.log(params, metadata);6      return {7      };8    },9  },10]);11const { toServer } = require('@playwright/test/lib/server/transport');12const server = toServer(handlers);13server.listen(0);14console.log('Listening on ' + server.address().port);15const { toClient } = require('@playwright/test/lib/server/transport');16client.on('close', () => process.exit(0));17client.on('message', message => console.log(message));18client.on('error', error => console.log(error));19client.send({ id: 42, method: 'getCookies' });20const { toTransport } = require('@playwright/test/lib/server/transport');21transport.onmessage = message => console.log(message);22transport.onclose = () => process.exit(0);23transport.send({ id: 42, method: 'getCookies' });24const { test } = require('@playwright/test');25test('example test', async ({ page }) => {26  const title = page.locator('text=Get started');27  await title.click();28});29{30  "scripts": {31  },32  "devDependencies": {33  }34}35import { PlaywrightTestConfig } from '@playwright/test';36const config: PlaywrightTestConfig = {37  use: {38    viewport: { width: 1280, height: 720 },LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
