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 seconds
Using 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!!