Best JavaScript code snippet using playwright-internal
cleaning.js
Source:cleaning.js  
1  var reader;2  var progress = document.querySelector('.percent');3  var readText;4  var keyText;5  var columnChanging;6  var readInList = [];7  var keyInList = [];8  var foundKeyValues = {};9  var toAssign = {};10  var index = 0;11  var cleaningStarted = false;12  var names;13  function strCompare(a, b) { // Removes speical characters, staring and ending spaces, and extra spaces for ignoring case comparison14    let s1 = a.replace(/[^A-Za-z0-9\s]/g, "").replace(/\s*/g, " ").toLowerCase().trim();15    let s2 = b.replace(/[^A-Za-z0-9\s]/g, "").replace(/\s*/g, " ").toLowerCase().trim();16    return s1.localeCompare(s2);17  }18  function resetKeys(){19    if(keyText != null){20      document.getElementById("errorMessage").innerHTML = " "21      breakKeyText();22      if(cleaningStarted){23        startCleaning();24      }25    }26    else{27      document.getElementById("errorMessage").innerHTML = "No key file was uploaded."28    }29  }30  function resetInput(){31    if(readText != null){32      document.getElementById("errorMessage").innerHTML = " "33      breakReadText();34      if (cleaningStarted) {35        startCleaning();36      }37    } else {38      document.getElementById("errorMessage").innerHTML = "No input file was uploaded."39    }40  }41  function abortRead() {42    reader.abort();43  }44  function errorHandler(evt) {45    switch(evt.target.error.code) {46      case evt.target.error.NOT_FOUND_ERR:47        document.getElementById("errorMessage").innerHTML = "File was not found.";48        break;49      case evt.target.error.NOT_READABLE_ERR:50        document.getElementById("errorMessage").innerHTML = "File was not able to be read.";51        alert('File is not readable');52        break;53      case evt.target.error.ABORT_ERR:54        break; // noop55      default:56        document.getElementById("errorMessage").innerHTML = "There was an error reading this file.";57    };58  }59  function updateProgress(evt) {60    // evt is an ProgressEvent.61    if (evt.lengthComputable) {62      var percentLoaded = Math.round((evt.loaded / evt.total) * 100);63      // Increase the progress bar length.64      if (percentLoaded < 100) {65        progress.style.width = percentLoaded + '%';66        progress.textContent = percentLoaded + '%';67      }68    }69  }70  function handleKeysSelect(evt) {71    // Reset progress indicator on new file selection.72    progress.style.width = '0%';73    progress.textContent = '0%';74    reader = new FileReader();75    reader.onerror = errorHandler;76    reader.onprogress = updateProgress;77    reader.onabort = function(e) {78      document.getElementById("errorMessage").innerHTML = "File read was cancelled";79    };80    reader.onloadstart = function(e) {81      document.getElementById('progress_bar').className = 'loading';82    };83    reader.onload = function(e) {84      // Ensure that the progress bar displays 100% at the end.85      progress.style.width = '100%';86      progress.textContent = '100%';87      setTimeout("document.getElementById('progress_bar').className='';", 2000);88      keyText = reader.result;89      breakKeyText();90    }91    // Read in the image file as a binary string.92    reader.readAsText(evt.target.files[0]);93  }94  function handleFileSelect(evt) {95    // Reset progress indicator on new file selection.96    progress.style.width = '0%';97    progress.textContent = '0%';98    reader = new FileReader();99    reader.onerror = errorHandler;100    reader.onprogress = updateProgress;101    reader.onabort = function(e) {102      document.getElementById("errorMessage").innerHTML = "File read was cancelled";103    };104    reader.onloadstart = function(e) {105      document.getElementById('progress_bar').className = 'loading';106    };107    reader.onload = function(e) {108      // Ensure that the progress bar displays 100% at the end.109      progress.style.width = '100%';110      progress.textContent = '100%';111      setTimeout("document.getElementById('progress_bar').className='';", 2000);112      readText = reader.result;113      breakReadText();114    }115    // Read in the image file as a binary string.116    reader.readAsText(evt.target.files[0]);117  }118  document.getElementById('files').addEventListener('change', handleFileSelect, false);119  document.getElementById('keys').addEventListener('change', handleKeysSelect, false);120  function download(data, filename, type) {121    var file = new Blob([data], {type: type});122    if (window.navigator.msSaveOrOpenBlob) // IE10+123        window.navigator.msSaveOrOpenBlob(file, filename);124    else { // Others125        var a = document.createElement("a"),126                url = URL.createObjectURL(file);127        a.href = url;128        a.download = filename;129        document.body.appendChild(a);130        a.click();131        setTimeout(function() {132            document.body.removeChild(a);133            window.URL.revokeObjectURL(url);134        }, 0);135      }136    }137    var mapLetterValue = function(val) {138      var base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', i, j, result = 0;139      for (i = 0, j = val.length - 1; i < val.length; i += 1, j -= 1) {140        result += Math.pow(base.length, j) * (base.indexOf(val[i]) + 1);141      }142      return result;143    };144    function isEmpty(ob){145        for(var i in ob){ return false;}146      return true;147    }148    function startCleaning(){149      foundKeyValues = {};150      toAssign = {};151      index = 0;152      cleaningStarted = true;153      names = [];154      var columnToChange = document.getElementById("ColumnToChange").value;155      columnToChange = columnToChange.toUpperCase();156      columnChanging = [ columnToChange ].map(mapLetterValue)[0] - 1;157      if(readText == null){158        document.getElementById("errorMessage").innerHTML = "No input file was uploaded."159      }160      else if (keyText == null) {161        document.getElementById("errorMessage").innerHTML = "No key file was uploaded."162      } else if (columnToChange == "") {163        document.getElementById("errorMessage").innerHTML = "No column to clean was selected."164      } else {165        document.getElementById("errorMessage").innerHTML = " "166        var currentValue;167        for(var i = 1; i < readInList.length; i++) {168          currentValue = readInList[i][columnChanging];169          if (currentValue == ""); // empty column170          else if ((foundKeyValues[currentValue] != "" && foundKeyValues[currentValue] != null )) { // we already know the value171            readInList[i][columnChanging] = foundKeyValues[currentValue];172          } else {173              var locatedValue = findValue(currentValue);174              if (locatedValue != ""){ // Item was assigned a value175                foundKeyValues[currentValue] = locatedValue;176                readInList[i][columnChanging] = locatedValue;177              }178              else { // Item hasn't been assigned yet179                if(toAssign[currentValue] != "" && toAssign[currentValue] != null) { // Item has been found elsewhere180                  toAssign[currentValue][toAssign[currentValue].length] = i;181                }182                else { // This is the first time we've found this item183                  toAssign[currentValue] = [ i ];184                }185              }186          }187        }188        assignKeysToNames();189        if(isEmpty(toAssign)){190          $("#name-chooser").text("Cleaning complete!");191        }192        else{193          $("#name-chooser").text(names[0]);194          populateChoices();195        }196      }197    }198    function assignKeysToNames(){199      names = [];200      for(item in toAssign){201        names[names.length] = item;202      }203    }204    function nextChoice(companyPicked) {205      document.getElementById("errorMessage").innerHTML = " "206      var newIndex;207      for(var i = 0; i < toAssign[names[index]].length; i++){208        newIndex = toAssign[names[index]][i];209        readInList[newIndex][columnChanging] = companyPicked;210      }211      for(var i = 0; i < keyInList.length; i++){212        if(strCompare(keyInList[i][0], companyPicked) == 0){213          keyInList[i][keyInList[i].length] = names[index];214          i = keyInList.length;215        }216      }217      if(index < names.length - 1) {218        index++;219        $("#name-chooser").text(names[index]);220        document.getElementById("customInput").value  = "";221      } else {222        $("#name-chooser").text("You're Done!");223        toAssign = {}224        index = 0;225        document.getElementById("choices").innerHTML = "";226        document.getElementById("custom").innerHTML = "";227        document.getElementById("instruction").innerHTML = '<h3 id="instruction" class="text-muted">Download your files now, or continue cleaning.</h3>';228      }229      return false;230    }231    function nextChoiceAdd() {232      document.getElementById("errorMessage").innerHTML = " "233      var theirValue = document.getElementById("customInput").value;234      var foundValue = findValue(theirValue);235      if(findValue(theirValue) != ""){236        theirValue = foundValue;237      } else {238        keyInList[keyInList.length] = [ theirValue ];239      }240      populateChoices();241      var newIndex;242      for(var i = 0; i < toAssign[names[index]].length; i++){243        newIndex = toAssign[names[index]][i];244        readInList[newIndex][columnChanging] = theirValue;245      }246      if(index < names.length - 1) {247        index++;248        $("#name-chooser").text(names[index]);249      } else {250        $("#name-chooser").text("You're Done!");251        toAssign = {}252        index = 0;253        document.getElementById("choices").innerHTML = "";254        document.getElementById("custom").innerHTML = "";255        document.getElementById("instruction").innerHTML = '<h3 id="instruction" class="text-muted">Download your files now, or continue cleaning.</h3>';256      }257      document.getElementById("customInput").value  = "";258      return false;259    }260    function populateChoices(){261      document.getElementById("choices").innerHTML = "";262      var sortedKeys = keyInList.slice().sort(function (a, b) {263        return strCompare(a[0], b[0]);264      });265      for(var i = 0; i < sortedKeys.length; i++){266        if(sortedKeys[i][0] != ""){267          document.getElementById("choices").innerHTML += '<div class="form-group" style="padding:1% 3% .25% 3%"><button class="btn" onclick="return nextChoice(\'' + sortedKeys[i][0] + '\');">' + sortedKeys[i][0] + '</button></div>';268        }269      }270      document.getElementById("custom").innerHTML = '<div class="form-group"><label for="customInput">Company Name:</label><input type="text" class="form-control" id="customInput" placeholder="New company name" onInput="displayFilteredChoices()" /></div><button class="btn btn-primary" onclick="return nextChoiceAdd();">Submit</button>';271      document.getElementById("instruction").innerHTML = '<h3 id="instruction" class="text-muted">Select a canonical company name:</h3>';272    }273    function substringComparison(a, b, chars){274      if(chars > b.length){ // if a is longer than b, it can't be b275        return false;276      }277      if (a.trim().length != a.length){ // Handles surrounding white spaces that might have slipped by278        chars = a.trim().length;279      }280      let s1 = a.replace(/[^A-Za-z0-9\s]/g, "").replace(/\s*/g, "").toLowerCase().trim().substring(0, chars);281      let s2 = b.replace(/[^A-Za-z0-9\s]/g, "").replace(/\s*/g, "").toLowerCase().trim();282      return s2.includes(s1);283    }284    function displayFilteredChoices(){285      document.getElementById("choices").innerHTML = "";286      var theirValue = document.getElementById("customInput").value;287      var filteredKeys = [];288      for (var i = 0; i < keyInList.length; i++){289        if(substringComparison(theirValue, keyInList[i][0], theirValue.replace(/[^A-Za-z0-9\s]/g, "").replace(/\s*/g, "").trim().length)){290          filteredKeys[filteredKeys.length] = keyInList[i][0];291        }292      }293      var sortedKeys = filteredKeys.slice().sort(function (a, b) {294        return strCompare(a, b);295      });296      for(var i = 0; i < sortedKeys.length; i++){297        if(sortedKeys[i] != ""){298          document.getElementById("choices").innerHTML += '<div class="form-group" style="padding:1% 3% .25% 3%"><button class="btn" onclick="return nextChoice(\'' + sortedKeys[i] + '\');">' + sortedKeys[i] + '</button></div>';299        }300      }301      document.getElementById("instruction").innerHTML = '<h3 id="instruction" class="text-muted">Select a canonical company name:</h3>';302    }303    function findValue(itemToLocate){304      for(var i = 0; i < keyInList.length; i++) {305        for(var j = 0; j < keyInList[i].length; j++){306          if (strCompare(keyInList[i][j], itemToLocate) == 0){307            return keyInList[i][0];308          }309        }310      }311      return "";312    }313    function breakReadText(){314      var splitByLine = readText.split(/\r?\n/g);315      var splitByComma = [];316      for(var i = 0; i < splitByLine.length; i++){317        splitByComma[i] = splitByLine[i].split(',');318      }319      for(var i = 0; i < splitByComma.length; i++){320        for (var j = 0; j < splitByComma[i].length; j++){321          splitByComma[i][j] = splitByComma[i][j].trim().replace(/^[^A-Za-z0-9\s]*/g, "").replace(/[^A-Za-z0-9\s]*$/g, "").replace(/\s+/g, " ");322        }323      }324      readInList = splitByComma;325    }326    function breakKeyText(){327      var splitByLine = keyText.split(/\r?\n/g);328      var splitByComma = [];329      for(var i = 0; i < splitByLine.length; i++){330        splitByComma[i] = splitByLine[i].split(',');331      }332      for(var i = 0; i < splitByComma.length; i++){333        for (var j = 0; j < splitByComma[i].length; j++){334          splitByComma[i][j] = splitByComma[i][j].trim().replace(/^[^A-Za-z0-9\s]*/g, "").replace(/[^A-Za-z0-9\s]*$/g, "").replace(/\s+/g, " ");335        }336      }337      keyInList = splitByComma;338    }339    function reassembleReadText(){340      var splitByLine = [];341      for(var i = 0; i < readInList.length; i++){342        splitByLine[i] = readInList[i].join(',');343      }344      return splitByLine.join('\n');345    }346    function reassembleKeyText(){347      var splitByLine = [];348      for(var i = 0; i < keyInList.length; i++){349        splitByLine[i] = keyInList[i].join(',');350      }351      return splitByLine.join('\n');352    }353    function downloadFile(){354      var fileName = document.getElementById("FileName").value;355      if(fileName == ""){356        document.getElementById("errorMessage").innerHTML = "No file name was given.";357      } else if ( isEmpty(readInList) ) {358        document.getElementById("errorMessage").innerHTML = "No input file was uploaded.";359      }360      else {361        document.getElementById("errorMessage").innerHTML = " ";362        var newText = reassembleReadText();363        download(newText, fileName, "text/csv");364      }365    }366    function downloadKeyFile(){367      var fileName = document.getElementById("KeyFileName").value;368      if(fileName == ""){369        document.getElementById("errorMessage").innerHTML = "No key file name was given.";370      } else if ( isEmpty(keyInList) ) {371        document.getElementById("errorMessage").innerHTML = "No key file was uploaded.";372      } else {373        document.getElementById("errorMessage").innerHTML = " ";374        var newText = reassembleKeyText();375        download(newText, fileName, "text/csv");376      }377    }378    var acc = document.getElementsByClassName("accordion");379    var i;380    for (i = 0; i < acc.length; i++) {381        acc[i].addEventListener("click", function() {382            this.classList.toggle("active");383            var panel = this.nextElementSibling;384            if (panel.style.display === "block") {385                panel.style.display = "none";386            } else {387                panel.style.display = "block";388            }389        });...transcribe.js
Source:transcribe.js  
1const url = window.location.href2const replacedURL = url.replace('#', '&')3const finalURL = new URLSearchParams(replacedURL)4var accessToken = finalURL.get('access_token')5var idToken = finalURL.get("id_token")6var expiresIn = finalURL.get('expires_in')7var tokenType = finalURL.get('token_type')8var UserID, UserName, UserEmail;9var no_of_output;10$(document).ready(function(){11    if(sessionStorage.getItem('accessToken') == null && sessionStorage.getItem('idToken') == null) {12        sessionStorage.setItem('accessToken', accessToken);13        sessionStorage.setItem('idToken', idToken);14        sessionStorage.setItem('expiresIn', expiresIn);15        sessionStorage.setItem('tokenType', tokenType);16    }17    $('#uploadPage').attr('href', "upload.html#access_token=" + sessionStorage.getItem('accessToken') + 18                                                        "&id_token=" + sessionStorage.getItem('idToken') +19                                                        "&expires_in=" + sessionStorage.getItem('expiresIn') +20                                                        "&token_type=" + sessionStorage.getItem('tokenType'));21    $('#transcribePage').attr('href', "transcribe.html#access_token=" + sessionStorage.getItem('accessToken') + 22                                                            "&id_token=" + sessionStorage.getItem('idToken') +23                                                            "&expires_in=" + sessionStorage.getItem('expiresIn') +24                                                            "&token_type=" + sessionStorage.getItem('tokenType'));25    $('#downloadPage').attr('href', "download.html#access_token=" + sessionStorage.getItem('accessToken') + 26                                                        "&id_token=" + sessionStorage.getItem('idToken') +27                                                        "&expires_in=" + sessionStorage.getItem('expiresIn') +28                                                        "&token_type=" + sessionStorage.getItem('tokenType'));29                                                        30    $.getJSON( "../stack-output.json", function( data ) {31        let cloudFrontUrl = data.CloudFrontDistroUrl32        let stackRegion = data.StackRegion33        let cognitoUserPoolLogoutUrl = data.CognitoUserPoolLogoutUrl34        let identityPoolId = data.CognitoIdentityPoolId35        let identityProvider = data.CognitoIdentityProvider36        let s3AudioBucket = data.S3AudioBucket37        let s3JsonBucket = data.S3JsonBucket38        let s3CsvBucket = data.S3CsvBucket39        let s3PdfBucket = data.S3PdfBucket40        var params = {41            AccessToken:  accessToken/* required */42        };43        44        AWS.config.region = stackRegion;45        AWS.config.apiVersions = {46            cognitoidentityserviceprovider: '2016-04-18'47        };48        var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();49        cognitoidentityserviceprovider.getUser(params, function(err, data) {50            if (err) {51                window.location.href = cloudFrontUrl52            }53            else {54                for(var i = 0; i < data.UserAttributes.length; i++) {55                    if(data.UserAttributes[i].Name == 'sub') {56                        UserID = data.UserAttributes[i].Value;57                    }58                }59                for(var i = 0; i < data.UserAttributes.length; i++) {60                    if(data.UserAttributes[i].Name == 'name') {61                        UserName = data.UserAttributes[i].Value;62                    }63                }64                for(var j = 0; j < data.UserAttributes.length; j++) {65                    if(data.UserAttributes[j].Name == 'email') {66                        UserEmail = data.UserAttributes[j].Value;67                    }68                }69                $('#UserName').text(UserName);70                $('#UserEmail').text(UserEmail);71                let logins = {}72                logins[identityProvider] = idToken73        74                AWS.config.credentials = new AWS.CognitoIdentityCredentials({75                    IdentityPoolId: identityPoolId,76                    Logins: logins77                });78                79                sessionStorage.setItem('aws', AWS.config.credentials);80                81                AWS.config.credentials.get();   82                83                var s3 = new AWS.S3({apiVersion: '2006-03-01'});84                var params = {85                    Bucket: s3CsvBucket, 86                    Key: UserID + '/' + sessionStorage.getItem('s3FileKey')87                };88                const s3Stream = s3.getObject(params, function(err, data){89                    if(err) {90                        console.log(err)91                    }92                    else {93                        var s3output = data.Body.toString('utf8')94                        var removeInvertedCom = s3output.replace(/["]+/g, '')95                        var splitByNewLine = removeInvertedCom.split('\n')96                        var header = splitByNewLine[0].split(',')97                        var time = []98                        var spk = []99                        var set = []100                        for(let i = 1; i < splitByNewLine.length; i++) {101                            var splitByComma = splitByNewLine[i].split(',')102                            var comment = '';103                            if(splitByComma.length > 3) {104                                for(let j = 0; j < splitByComma.length; j++) {105                                    if(j == 0) {106                                        time.push(splitByComma[j])107                                    }108                                    else if(j == 1) {109                                        spk.push(splitByComma[j])110                                    }111                                    else {112                                        comment+= splitByComma[j]113                                    }114                                }115                                set.push(comment.trim())116                            } else {117                                for(let j = 0; j < splitByComma.length; j++) {118                                    if(j == 0) {119                                        time.push(splitByComma[j])120                                    }121                                    else if(j == 1) {122                                        spk.push(splitByComma[j])123                                    }124                                    else {125                                        set.push(splitByComma[j].trim())126                                    }127                                }128                            }129                        }130                        const distinct = (value, index, self) => {131                            return self.indexOf(value) === index132                        }133                        var distinctSpk = spk.filter(distinct)134                        no_of_output = set.length;135                        var spk_wait_img = $('#spk_wait_img')136                        var spk_wait = $('#spk_wait')137                        $("#speakers_dynamic").empty(spk_wait_img);138                        $("#speakers_dynamic").empty(spk_wait);139                        for(let disSpk = 0; disSpk < distinctSpk.length; disSpk++) {140                            var input = document.createElement("input");141                            input.type = "text";142                            input.classList.add("form-control", "form-control-sm",  "my-1")143                            input.setAttribute("data-tag", distinctSpk[disSpk]);144                            input.setAttribute("oninput", "changeSpkName(this)");145                            input.placeholder = distinctSpk[disSpk];146                            input.value = distinctSpk[disSpk];147                            $("#speakers_dynamic").append(input)148                        }149                        var trans_wait_img = $('#trans_wait_img')150                        var trans_wait = $('#trans_wait')151                        $('#transcribe_output').removeClass("d-flex", "flex-column", "justify-content-center", "align-content-center")152                        $("#transcribe_output").empty(trans_wait_img);153                        $("#transcribe_output").empty(trans_wait);154                        for(let tra = 0; tra < set.length; tra++) {155                            var div = document.createElement("div");156                            div.classList.add("form-group");157                            var label_1 = document.createElement("label");158                            label_1.classList.add(spk[tra]);159                            var label_1_text = document.createTextNode(spk[tra] + " ");160                            label_1.append(label_1_text);161                            var label_2 = document.createElement("label");162                            var label_2_text = document.createTextNode(String.fromCharCode(160) + "|" + String.fromCharCode(160) + time[tra]);163                            label_2.append(label_2_text);164                            var textarea = document.createElement("textarea");165                            textarea.classList.add("form-control", "my-1");166                            textarea.id = "textarea-" + tra;167                            textarea.rows = "2";168                            textarea.value = set[tra];169                            var p = document.createElement("p");170                            p.classList.add("d-none");171                            p.id = 'p-' + tra;172                            div.append(label_1);173                            div.append(label_2);174                            div.append(textarea);175                            div.append(p);176                            $("#transcribe_output").append(div)177                        }178                    }179                });180            }181        });182    183        $('#downloadTranscribe').attr('onclick', `exportHTML('${s3PdfBucket}')`)184        $('#logout-btn').attr('href', cognitoUserPoolLogoutUrl)185    })186})187function changeSpkName(e) {188    var data_tag = e.getAttribute("data-tag");189    var arr_spk = document.getElementsByClassName(data_tag)190    for(let i = 0; i < arr_spk.length; i++) {191        arr_spk[i].innerHTML = e.value;192    }193}194function exportHTML(s3PdfBucket) {195    for (let i = 0; i < no_of_output; i++) {196        $('#p-' + i).text($('#textarea-' + i).val());197    }198    var doc = new jsPDF();199    var elementHTML = $('#transcribe_output').html();200    var specialElementHandlers = {201        '#elementH': function (element, renderer) {202            return true;203        }204    };205    doc.fromHTML(elementHTML, 15, 15, {206        'width': 170,207        'elementHandlers': specialElementHandlers208    });209    210    if($('#fileName').val() == '') {211        var upload = new AWS.S3.ManagedUpload({212            params: {213                Bucket: s3PdfBucket,214                Key: UserID + '/' + sessionStorage.getItem('fileName') + '.pdf',215                Body: doc.output('blob')216            }217        })218        swal({219            title: "Success",220            text: "Please wait, we are uploading your transcription for your future use.",221            icon: "success",222            closeOnClickOutside: false,223            closeOnEsc: false,224            buttons: false225        });226        var promise = upload.promise();227        promise.then(228            function(data) {229                swal.close();230                doc.save(sessionStorage.getItem('fileName') + '.pdf');231            });232    }233    else234    {235        var upload = new AWS.S3.ManagedUpload({236            params: {237                Bucket: s3PdfBucket,238                Key: UserID + '/' + $('#fileName').val() + '-' + sessionStorage.getItem('fileName') + '.pdf',239                Body: doc.output('blob')240            }241        })242        swal({243            title: "Success",244            text: "Please wait, we are uploading your transcription for your future use.",245            icon: "success",246            closeOnClickOutside: false,247            closeOnEsc: false,248            buttons: false249        });250        var promise = upload.promise();251        promise.then(252            function(data) {253                swal.close();254                doc.save($('#fileName').val() + '-' + sessionStorage.getItem('fileName') + '.pdf');255            });256    }...StringUtils-test.js
Source:StringUtils-test.js  
...71});72describe("makeSplitBy", function() {73  it("splits string into an array by character (,)", function() {74    let splitByComma = StringUtils.makeSplitBy(",");75    expect(splitByComma("a,b")).toEqual(["a", "b"]);76    expect(splitByComma("a,b,c")).toEqual(["a", "b", "c"]);77    expect(splitByComma("a,b,c,d")).toEqual(["a", "b", "c", "d"]);78    expect(splitByComma("a,b,c\\,d")).toEqual(["a", "b", "c,d"]);79    expect(splitByComma("a,b\\,c,d")).toEqual(["a", "b,c", "d"]);80    expect(splitByComma("a\\,b,c,d")).toEqual(["a,b", "c", "d"]);81    expect(splitByComma("\\,a,b,c,d")).toEqual([",a", "b", "c", "d"]);82    expect(splitByComma("a,b,c,d\\,")).toEqual(["a", "b", "c", "d,"]);83    expect(splitByComma("a,b,c,d,")).toEqual(["a", "b", "c", "d", ""]);84    expect(splitByComma(",a,b,c,d")).toEqual(["", "a", "b", "c", "d"]);85  });86  it("splits string into an array by character (/)", function() {87    let splitBySlash = StringUtils.makeSplitBy("/");88    expect(splitBySlash("a/b")).toEqual(["a", "b"]);89    expect(splitBySlash("a/b/c")).toEqual(["a", "b", "c"]);90    expect(splitBySlash("a/b/c/d")).toEqual(["a", "b", "c", "d"]);91    expect(splitBySlash("a/b/c\\/d")).toEqual(["a", "b", "c/d"]);92    expect(splitBySlash("a/b\\/c/d")).toEqual(["a", "b/c", "d"]);93    expect(splitBySlash("a\\/b/c/d")).toEqual(["a/b", "c", "d"]);94    expect(splitBySlash("\\/a/b/c/d")).toEqual(["/a", "b", "c", "d"]);95    expect(splitBySlash("a/b/c/d\\/")).toEqual(["a", "b", "c", "d/"]);96    expect(splitBySlash("a/b/c/d/")).toEqual(["a", "b", "c", "d", ""]);97    expect(splitBySlash("/a/b/c/d")).toEqual(["", "a", "b", "c", "d"]);98  });99});100describe("idempotence of makeJoinWith and splitByComma", function() {101  it("is idempotent ->", function() {102    let splitByComma = StringUtils.makeSplitBy(",");103    let joinWithComma = StringUtils.makeJoinWith(",");104    let id = string => joinWithComma(splitByComma(string));105    expect(id("a")).toEqual("a");106    expect(id("a,b")).toEqual("a,b");107    expect(id(",a,b")).toEqual(",a,b");108    expect(id("a,b,")).toEqual("a,b,");109    expect(id("a,b,c")).toEqual("a,b,c");110  });111  it("is idempotent <-", function() {112    let splitByComma = StringUtils.makeSplitBy(",");113    let joinWithComma = StringUtils.makeJoinWith(",");114    let id = string => splitByComma(joinWithComma(string));115    expect(id(["a"])).toEqual(["a"]);116    expect(id(["a", "b"])).toEqual(["a", "b"]);117    expect(id(["", "a", "b"])).toEqual(["", "a", "b"]);118    expect(id(["", "a", "b", ""])).toEqual(["", "a", "b", ""]);119    expect(id(["", "a,b", "b", ""])).toEqual(["", "a,b", "b", ""]);120  });...aggregatesync.js
Source:aggregatesync.js  
1/**2 * Aggregates GDP and Population Data by Continents3 * @param {*} filePath4 */5const fs = require('fs');6const aggregate = (filePath) => {7  let countryObjects;8  const countryMap = [];9  const conti = [];10  // converting country continent to map11  const fileContents = fs.readFileSync('countriesmap.txt', 'utf8');12  const splitString = fileContents.split('\n');13  let splitByComma;14  const countryContinentMap = new Map();15  for (let i = 0; i < splitString.length; i += 1) {16    splitByComma = splitString[i].split(',');17    splitByComma[1] = splitByComma[1].replace(/\r/g, '');18    countryContinentMap.set(splitByComma[0], splitByComma[1]);19  }20  // reading datafile and making final op21  const data = fs.readFileSync(filePath, 'utf8');22  const dataString = data.toString();23  const splitData = dataString.split('\n');24  const headers = splitData[0].split(',');25  for (let i = 0; i < headers.length; i += 1) {26    headers[i] = headers[i].replace(/['"]+/g, '');27  }28  for (let i = 1; i < splitData.length; i += 1) {29    const cleandata = splitData[i].split(',');30    for (let k = 0; k < cleandata.length; k += 1) {31      cleandata[k] = cleandata[k].replace(/['"]+/g, '');32    }33    countryObjects = {};34    for (let j = 0; j < cleandata.length; j += 1) {35      countryObjects[headers[j]] = cleandata[j];36    }37    countryMap.push(countryObjects);38  }39  for (let i = 0; i < countryMap.length; i += 1) {40    if (countryMap[i]['Country Name'] !== 'European Union') {41      countryMap[i].continent = countryContinentMap.get(countryMap[i]['Country Name']);42      conti.push(countryContinentMap.get(countryMap[i]['Country Name']));43    }44  }45  const continent = new Set(conti);46  const contisplitData = [...continent];47  contisplitData.splice(6, 1);48  const finalsplitData = [];49  const countryObjectsectdefined = {};50  for (let i = 0; i < contisplitData.length; i += 1) {51    let sumpop = 0;52    let sumgdp = 0;53    for (let j = 0; j < countryMap.length; j += 1) {54      if (contisplitData[i] === countryMap[j].continent) {55        sumpop += parseFloat(countryMap[j]['Population (Millions) - 2012']);56        sumgdp += parseFloat(countryMap[j]['GDP Billions (US Dollar) - 2012']);57      }58    }59    const name = {};60    name.GDP_2012 = sumgdp;61    name.POPULATION_2012 = sumpop;62    finalsplitData.push(name);63  }64  for (let i = 0; i < contisplitData.length; i += 1) {65    countryObjectsectdefined[contisplitData[i]] = finalsplitData[i];66  }67  fs.writeFileSync('./output/output.json', JSON.stringify(countryObjectsectdefined));68};...cli.js
Source:cli.js  
1#!/usr/bin/env node2const { program } = require('commander')3const { patch } = require('./patch')4const { install } = require('./install')5const splitByComma = str => str.split(',')6program7    .command('patch', { isDefault: true })8    .argument('<source>', 'comma separated list of files or dirs to process, supports environment variables', splitByComma)9    .argument('<html-template>', 'eg. /public/index.html or /dist/index.html')10    .option('-i --inline', 'inline config in html template')11    .action(patch)12program13    .command('install')14    .description('installs upconfig by patching package.json scripts.')15    .usage('upconfig install dev,serve CONFIG_PATH dist/index.html')16    .argument('<scripts>', 'scripts to install, comma separated, eg. start,build', splitByComma)17    .argument('<configs', 'configs to load, comma separated, eg. config.js,\$MY_ENV_CONFIG', splitByComma)18    .argument('<html-template>', 'eg. /public/index.html or /dist/index.html')19    .option('-p --package-json <path>', 'path to package json', 'package.json')20    .option('-i --inline', 'inline config in html template')21    .action(install)...index.js
Source:index.js  
1/**2 * æ°æ®ç»æï¼æ°ç»3 * ç®æ³ï¼éå4 */5/**6 * @param {string} s7 * @return {number}8 */9var countSegments = function(s) {10    if (s.trim().length === 0) {11        return 0;12    }13    var splitByComma = s.trim().split(',');14    return splitByComma.reduce((t, cur, i) => {15        var splitBySpace = cur.trim().split(' ');16        if (i === splitByComma.length - 1) {17            if (!cur.trim()) {18                return t;19            }20        }21        return t + splitBySpace.length;22    }, 0);...map.js
Source:map.js  
...5  position:[47.0219, 28.8617]6}7const splitByComma = split(',')8const updateMap = (state, {center, zoom, position}) => ({9  center: splitByComma(center),10  zoom,11  position: splitByComma(position)12}) 1314export default function(state = defaultState, action){15  switch (action.type) {16    case 'MAP':17      return updateMap(state, action.payload)1819    default:20      return state21  }22}
...otherMethods.js
Source:otherMethods.js  
1function addDecimalSeparators(cents){2	var arr = cents.toString().split("");3	while (arr.length < 3){4		arr.splice(0,0,"0");5	}6	arr.splice(arr.length-2,0,".");7	var withComma = arr.join("");8	var splitByComma = withComma.split(".");9	splitByComma[0] = addSpaces(splitByComma[0]);10	return splitByComma.join(".");11}12function addSpaces(number){13	var arr = number.toString().split("");14	for (var i = arr.length - 3; i >= 1; i -= 3){15		arr[i] = " " + arr[i];16	}17	return arr.join("");...Using AI Code Generation
1const { splitByComma } = require('playwright/lib/utils/utils');2const input = 'foo,bar,baz';3const result = splitByComma(input);4console.log(result);5const { splitByComma } = require('playwright/lib/utils/utils');6const input = 'foo,bar,baz';7const result = splitByComma(input);8console.log(result);9const { splitByComma } = require('playwright/lib/utils/utils');10const input = 'foo,bar,baz';11const result = splitByComma(input);12console.log(result);13const { splitByComma } = require('playwright/lib/utils/utils');14const input = 'foo,bar,baz';15const result = splitByComma(input);16console.log(result);17const { splitByComma } = require('playwright/lib/utils/utils');18const input = 'foo,bar,baz';19const result = splitByComma(input);20console.log(result);21const { splitByComma } = require('playwright/lib/utils/utils');22const input = 'foo,bar,baz';23const result = splitByComma(input);24console.log(result);25const { splitByComma } = require('playwright/lib/utils/utils');26const input = 'foo,bar,baz';27const result = splitByComma(input);28console.log(result);Using AI Code Generation
1const { splitByComma } = require('playwright/lib/utils/utils');2const { test } = require('@playwright/test');3const { expect } = require('@playwright/test');4test.describe('test', () => {5  test('test', async ({ page }) => {6    const list = splitByComma('a,b');7    expect(list).toEqual(['a', 'b']);8  });9});10Type: `Array<{ name: string, use: { browserName: 'chromium' | 'firefox' | 'webkit' } }>`11module.exports = {12    {13      use: {14      },15    },16    {17      use: {18      },19    },20};21Type: `{ viewport?: { width: number, height: number }, ignoreHTTPSErrors?: boolean, screenshot?: 'only-on-failure' | 'on', video?: 'on' | 'off' | 'retain-on-failure', baseURL?: string, storageState?: string, ... }`22module.exports = {23  use: {24    viewport: { width: 1280, height: 720 },25  }26};27Defines the default timeout for all tests. The default value is `30000` (30 secondsUsing AI Code Generation
1const { splitByComma } = require('@playwright/test/lib/utils').internal;2const str = 'foo,bar,baz';3const arr = splitByComma(str);4console.log(arr);5  ✓ test.spec.js (1s)6  1 passed (2s)7    at Object.<anonymous> (test.js:6:5)8    at Object.<anonymous> (test.js:6:5)9- [Playwright GitHub](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!!
