Best JavaScript code snippet using playwright-internal
queuehandler.js
Source:queuehandler.js
1/* jshint node: true, couch: true, esversion: 6 */2/*eslint no-undef: 0, no-unused-vars: 0*/3var couch_module = require("./couch_module.js");4var queue = require("queue");5 6var q = queue();7function user_obj()8{9 this.create = User_Create;10 this.destroy = User_Destroy;11 this.checkinfo = User_CheckInfo;12 this.changepassword = User_ChangePassword;13 this.checkifauthor = User_CheckIfAuthor;14 this.authorizeread = User_AuthorizeRead;15 this.authorizewrite = User_AuthorizeWrite;16 this.checkreadaccessall = User_CheckReadAccessAll;17 this.checkwriteaccessall = User_CheckWriteAccessAll;18 this.checkwriteaccessfile = User_CheckWriteAccessFile;19 this.checkreadaccessfile = User_CheckReadAccessFile;20}21function group_obj()22{23 this.create = Group_Create;24 this.destroy = Group_Destroy;25 this.adduser = Group_AddUser;26 this.removeuser = Group_RemoveUser;27 this.checkuser = Group_CheckUser;28 this.checkowner = Group_CheckOwner;29 this.checkreadaccessfile = Group_CheckReadAccessFile;30 this.checkwriteaccessfile = Group_CheckWriteAccessFile;31}32function file_obj()33{34 this.publish = File_Publish;35 this.edit = File_Edit;36 this.setmetadata = File_SetMetadata;37 this.setispublic = File_SetIsPublic;38 this.addreadaccess = File_AddReadAccess;39 this.remreadaccess = File_RemReadAccess;40 this.addwriteaccess = File_AddWriteAccess;41 this.remwriteaccess = File_RemWriteAccess;42 this.addgroupreadaccess = File_AddGroupReadAccess;43 this.remgroupreadaccess = File_RemGroupReadAccess;44 this.addgroupwriteaccess = File_AddGroupWriteAccess;45 this.remgroupwriteaccess = File_RemGroupWriteAccess;46}47var user = new user_obj();48var group = new group_obj();49var file = new file_obj();50var queuehandler = {51 user : user,52 group : group,53 file : file54};55module.exports = queuehandler;56var isempty = true;57q.concurrency = 1;58q.timeout = 3000; 59q.on("timeout", function(next, job)60 {61 console.log("job timed out:", job.toString().replace(/\n/g, ""));62 next();63 });64/*65 * This function is called automatically after pushing each task into the queue to ensure it is running. 66 */67function ensurequeue()68{69 if(isempty)70 {71 isempty = !isempty;72 q.start(function(err) {/*console.log('all done:');*/});73 }74}75/* These functions act as a wrapper for the tasks defined in couch_module.js by pushing them into the queue and starting it with ensurequeue() */76/**77 * Creates a new user.78 * Response format: true if successful, false if failed.79 * @param {string} username - The name of the user to be created.80 * @param {string} password - The password of the user to be created.81 * @param {string} date - The current date.82 * @param {function} cb - The callback function in the form of cb(err,response).83 */84function User_Create(username,password,date,cb)85{86 q.push(function(queuecb){couch_module.user.create(username,password,date,(err,response) => {cb(err,response); queuecb();});});87 ensurequeue();88}89/**90 * Deletes a specified user.91 * Response format: true if successful, false if failed.92 * @param {string} username - The name of the user to be deleted.93 * @param {function} cb - The callback function in the form of cb(err,response).94 */95function User_Destroy(username,cb)96{97 q.push(function(queuecb){couch_module.user.destroy(username,(err,response) => {cb(err,response); queuecb();});});98 ensurequeue();99}100/**101 * Retrieves info for a specified user.102 * Response format: User info document. 103 * @param {string} username - The name of the user whose info is to be retrieved.104 * @param {function} cb - The callback function in the form of cb(err,response).105 */106function User_CheckInfo(username,cb)107{108 q.push(function(queuecb){couch_module.user.checkinfo(username,(err,response) => {cb(err,response); queuecb();});});109 ensurequeue();110}111/**112 * Changes password for a specified user.113 * Response format: true if successful, false if failed.114 * @param {string} username - The name of the user whose password is to be changed.115 * @param {string} newpwd - The new password.116 * @param {function} cb - The callback function in the form of cb(err,response).117 */118function User_ChangePassword(username,newpwd,cb)119{120 q.push(function(queuecb){couch_module.user.create(username,newpwd,(err,response) => {cb(err,response); queuecb();});});121 ensurequeue();122}123/**124 * Checks if the specified user is the owner of the specified file.125 * Response format: true if authorship verified, false otherwise.126 * @param {string} username - The name of the user.127 * @param {string} filename - The name of the file.128 * @param {function} cb - The callback function in the form of cb(err,response).129 */130function User_CheckIfAuthor(username,filename,cb)131{132 q.push(function(queuecb){couch_module.user.checkifauthor(username,filename,(err,response) => {cb(err,response); queuecb();});});133 ensurequeue();134}135/**136 * Checks if the specified user or any groups they belong to are in the file's readaccess lists.137 * Response format: true if access verified, false otherwise.138 * @param {string} username - The name of the user.139 * @param {string} filename - The name of the file.140 * @param {function} cb - The callback function in the form of cb(err,response).141 */142function User_AuthorizeRead(username,filename,cb)143{144 q.push(function(queuecb){couch_module.user.authorizeread(username,filename,(err,response) => {cb(err,response); queuecb();});});145 ensurequeue();146}147/**148 * Checks if the specified user or any groups they belong to are in the file's writeaccess lists.149 * Response format: true if access verified, false otherwise.150 * @param {string} username - The name of the user.151 * @param {string} filename - The name of the file.152 * @param {function} cb - The callback function in the form of cb(err,response).153 */154function User_AuthorizeWrite(username,filename,cb)155{156 q.push(function(queuecb){couch_module.user.authorizewrite(username,filename,(err,response) => {cb(err,response); queuecb();});});157 ensurequeue();158}159/**160 * Return all files that a specified user can read.161 * Response format: Associative array of files.162 * @param {string} username - The name of the user whose readable files are to be retrieved.163 * @param {function} cb - The callback function in the form of cb(err,response).164 */165function User_CheckReadAccessAll(username,cb)166{167 q.push(function(queuecb){couch_module.user.checkreadaccessall(username,(err,response) => {cb(err,response); queuecb();});});168 ensurequeue();169}170/**171 * Return all files that a specified user can write.172 * Response format: Associative array of files.173 * @param {string} username - The name of the user whose writable files are to be retrieved.174 * @param {function} cb - The callback function in the form of cb(err,response).175 */176function User_CheckWriteAccessAll(username,cb)177{178 q.push(function(queuecb){couch_module.user.checkwriteaccessall(username,(err,response) => {cb(err,response); queuecb();});});179 ensurequeue();180}181/**182 * Return a specific file if the specified user can read it.183 * Response format: Associative array of files.184 * @param {string} username - The name of the user attempting to read the file.185 * @param {string} filename - The name of the file to be retrieved.186 * @param {function} cb - The callback function in the form of cb(err,response).187 */188function User_CheckReadAccessFile(username,filename,cb)189{190 q.push(function(queuecb){couch_module.user.checkreadaccessfile(username,filename,(err,response) => {cb(err,response); queuecb();});});191 ensurequeue();192}193/**194 * Return a specific file if the specified user can write to it.195 * Response format: Associative array of files.196 * @param {string} username - The name of the user attempting to write to the file.197 * @param {string} filename - The name of the file to be retrieved.198 * @param {function} cb - The callback function in the form of cb(err,response).199 */200function User_CheckWriteAccessFile(username,filename,cb)201{202 q.push(function(queuecb){couch_module.user.checkwriteaccessfile(username,filename,(err,response) => {cb(err,response); queuecb();});});203 ensurequeue();204}205/**206 * Creates a new file. 207 * Response format: true if successful, false if failed.208 * @param {string} username - The name of the user creating the file209 * @param {string} filename - The name of the file to be created.210 * @param {string} text - The contents of the file.211 * @param {string} date - The current date.212 * @param {function} cb - The callback function in the form of cb(err,response).213 */214function File_Publish(username,filename,text,date,language,tags,notes,cb)215{216 q.push(function(queuecb){couch_module.file.publish(username,filename,text,date,language,tags,notes,(err,response) => {cb(err,response); queuecb();});});217 ensurequeue();218}219/**220 * Edits the text in an existing file. 221 * Response format: true if successful, false if failed.222 * @param {string} filename - The name of the file to be edited.223 * @param {string} newtext - The new contents of the file.224 * @param {function} cb - The callback function in the form of cb(err,response).225 */226function File_Edit(filename,newtext,cb)227{228 q.push(function(queuecb){couch_module.file.edit(filename,newtext,(err,response) => {cb(err,response); queuecb();});});229 ensurequeue();230}231/**232 * Edits the metadata of an existing file [currently language,tags and notes]233 * Response format: true if successful, false if failed.234 * @param {string} filename - The name of the file to be edited.235 * @param {string} newlanguage - The new language of the file.236 * @param {array} tags - The new tags to be added to the file. Pass this as an array of string(s).237 * @param {string} newnotes - The new notes of the file.238 * @param {function} cb - The callback function in the form of cb(err,response).239 */240function File_SetMetadata(filename,newlanguage,newtags,newnotes,cb)241{242 q.push(function(queuecb){couch_module.file.setmetadata(filename,newlanguage,newtags,newnotes,(err,response) => {cb(err,response); queuecb();});});243 ensurequeue();244}245/**246 * Sets a file as publicly viewable by anyone. 247 * Response format: true if successful, false if failed.248 * @param {string} filename - The name of the relevant file.249 * @param {string} newuser - The name of the user to be granted permission.250 * @param {function} cb - The callback function in the form of cb(err,response).251 */252function File_SetIsPublic(filename,isPublic,cb)253{254 q.push(function(queuecb){couch_module.file.setispublic(filename,ispublic,(err,response) => {cb(err,response); queuecb();});});255 ensurequeue();256}257/**258 * Grants a user read access permissions for the specified file. 259 * Response format: true if successful, false if failed.260 * @param {string} filename - The name of the relevant file.261 * @param {string} newuser - The name of the user to be granted permission.262 * @param {function} cb - The callback function in the form of cb(err,response).263 */264function File_AddReadAccess(filename,newuser,cb)265{266 q.push(function(queuecb){couch_module.file.addreadaccess(filename,newuser,(err,response) => {cb(err,response); queuecb();});});267 ensurequeue();268}269/**270 * Revokes a user's read access permissions for the specified file. 271 * Response format: true if successful, false if failed.272 * @param {string} filename - The name of the relevant file.273 * @param {string} remuser - The name of the user whose permission is to be revoked274 * @param {function} cb - The callback function in the form of cb(err,response).275 */276function File_RemReadAccess(filename,remuser,cb)277{278 q.push(function(queuecb){couch_module.file.remreadaccess(filename,remuser,(err,response) => {cb(err,response); queuecb();});});279 ensurequeue();280}281/**282 * Grants a user write access permissions for the specified file.283 * Response format: true if successful, false if failed.284 * @param {string} filename - The name of the relevant file.285 * @param {string} newuser - The name of the user to be granted permission.286 * @param {function} cb - The callback function in the form of cb(err,response).287 */288function File_AddWriteAccess(filename,newuser,cb)289{290 q.push(function(queuecb){couch_module.file.addwriteaccess(filename,newuser,(err,response) => {cb(err,response); queuecb();});});291 ensurequeue();292}293/**294 * Revokes a user's write access permissions for the specified file.295 * Response format: true if successful, false if failed.296 * @param {string} filename - The name of the relevant file.297 * @param {string} remuser - The name of the user whose permission is to be revoked298 * @param {function} cb - The callback function in the form of cb(err,response).299 */300function File_RemWriteAccess(filename,remuser,cb)301{302 q.push(function(queuecb){couch_module.file.remwriteaccess(filename,remuser,(err,response) => {cb(err,response); queuecb();});});303 ensurequeue();304}305/**306 * Grants a group read access permissions for the specified file.307 * Response format: true if successful, false if failed.308 * @param {string} filename - The name of the relevant file.309 * @param {string} newgroup - The name of the group to be granted permission.310 * @param {function} cb - The callback function in the form of cb(err,response).311 */312function File_AddGroupReadAccess(filename,newgroup,cb)313{314 q.push(function(queuecb){couch_module.file.addgroupreadaccess(filename,newgroup,(err,response) => {cb(err,response); queuecb();});});315 ensurequeue();316}317/**318 * Revokes a group's read access permissions for the specified file.319 * Response format: true if successful, false if failed.320 * @param {string} filename - The name of the relevant file.321 * @param {string} remuser - The name of the group whose permission is to be revoked322 * @param {function} cb - The callback function in the form of cb(err,response).323 */324function File_RemGroupReadAccess(filename,remgroup,cb)325{326 q.push(function(queuecb){couch_module.file.remgroupreadaccess(filename,remgroup,(err,response) => {cb(err,response); queuecb();});});327 ensurequeue();328}329/**330 * Grants a group write access permissions for the specified file.331 * Response format: true if successful, false if failed.332 * @param {string} filename - The name of the relevant file.333 * @param {string} newgroup - The name of the group to be granted permission.334 * @param {function} cb - The callback function in the form of cb(err,response).335 */336function File_AddGroupWriteAccess(filename,newgroup,cb)337{338 q.push(function(queuecb){couch_module.file.addgroupwriteaccess(filename,newgroup,(err,response) => {cb(err,response); queuecb();});});339 ensurequeue();340}341/**342 * Revokes a group's write access permissions for the specified file.343 * Response format: true if successful, false if failed.344 * @param {string} filename - The name of the relevant file.345 * @param {string} remuser - The name of the group whose permission is to be revoked346 * @param {function} cb - The callback function in the form of cb(err,response).347 */348function File_RemGroupWriteAccess(filename,remgroup,cb)349{350 q.push(function(queuecb){couch_module.file.remgroupwriteaccess(filename,remgroup,(err,response) => {cb(err,response); queuecb();});});351 ensurequeue();352}353/**354 * Creates a new group.355 * Response format: true if successful, false if failed.356 * @param {string} groupname - The name of the group to be created.357 * @param {string} owner - The owner of the group to be created.358 * @param {function} cb - The callback function in the form of cb(err,response).359 */360function Group_Create(groupname,owner,cb)361{362 q.push(function(queuecb){couch_module.group.create(groupname,owner,(err,response) => {cb(err,response); queuecb();});});363 ensurequeue();364}365/**366 * Deletes the specified group.367 * Response format: true if successful, false if failed.368 * @param {string} groupname - The name of the group to be deleted.369 * @param {function} cb - The callback function in the form of cb(err,response).370 */371function Group_Destroy(groupname,cb)372{373 q.push(function(queuecb){couch_module.group.destroy(groupname,(err,response) => {cb(err,response); queuecb();});});374 ensurequeue();375}376/**377 * Adds a user to an existing group.378 * Response format: true if successful, false if failed.379 * @param {string} groupname - The name of the group.380 * @param {string} newuser - The name of the user to be added.381 * @param {function} cb - The callback function in the form of cb(err,response).382 */383function Group_AddUser(groupname,newuser,cb)384{385 q.push(function(queuecb){couch_module.group.adduser(groupname,newuser,(err,response) => {cb(err,response); queuecb();});});386 ensurequeue();387}388/**389 * Removes a user from an existing group.390 * Response format: true if successful, false if failed.391 * @param {string} groupname - The name of the group.392 * @param {string} remuser - The name of the user to be removed.393 * @param {function} cb - The callback function in the form of cb(err,response).394 */395function Group_RemoveUser(groupname,remuser,cb)396{397 q.push(function(queuecb){couch_module.group.removeuser(groupname,remuser,(err,response) => {cb(err,response); queuecb();});});398 ensurequeue();399}400/**401 * Checks if the specified user is a member of a group.402 * Response format: true if successful, false if failed.403 * @param {string} groupname - The name of the group.404 * @param {string} checkuser - The name of the user to be checked.405 * @param {function} cb - The callback function in the form of cb(err,response).406 */407function Group_CheckUser(groupname,checkuser,cb)408{409 q.push(function(queuecb){couch_module.group.checkuser(groupname,checkuser,(err,response) => {cb(err,response); queuecb();});});410 ensurequeue();411}412/**413 * Checks if the specified user is the owner of a group.414 * Response format: true if successful, false if failed.415 * @param {string} groupname - The name of the group.416 * @param {string} checkuser - The name of the user to be checked.417 * @param {function} cb - The callback function in the form of cb(err,response).418 */419function Group_CheckOwner(groupname,checkowner,cb)420{421 q.push(function(queuecb){couch_module.group.checkowner(groupname,checkowner,(err,response) => {cb(err,response); queuecb();});});422 ensurequeue();423}424/**425 * Return a specific file if the specified group can read it.426 * Response format: Associative array of files.427 * @param {string} groupname - The name of the group attempting to read the file.428 * @param {string} filename - The name of the file to be retrieved.429 * @param {function} cb - The callback function in the form of cb(err,response).430 */431function Group_CheckReadAccessFile(groupname, filename, cb)432{433 q.push(function(queuecb){couch_module.group.checkreadaccessfile(groupname, filename, (err,response) => {cb(err,response); queuecb();});});434 ensurequeue();435}436/**437 * Return a specific file if the specified group can write to it.438 * Response format: Associative array of files.439 * @param {string} groupname - The name of the group attempting to write to the file.440 * @param {string} filename - The name of the file to be retrieved.441 * @param {function} cb - The callback function in the form of cb(err,response).442 */443function Group_CheckWriteAccessFile(groupname, filename, cb)444{445 q.push(function(queuecb){couch_module.group.checkwriteaccessfile(groupname, filename, (err,response) => {cb(err,response); queuecb();});});446 ensurequeue();...
coChannel.js
Source:coChannel.js
1var coChannel = function(no_buffer, type){2 this._no_buffer = no_buffer == undefined ? 0: no_buffer;3 this._type = type == undefined? coChannel.DEFAULT: type;4 this._getRequest = [];5 this._putRequest = [];6 this._bricks = [];7 this._isClosed = false;8 this._isClosing = false;9 this.put.selected = function(){10 var _this = this;11 var res;12 var queueCb13 var rtn = new Promise((resolve, reject)=>{14 res = resolve;15 })16 rtn.queue = function(){17 _this.put()18 .then(_ => {19 res(_);20 })21 .catch(err => console.log('err', err));22 queueCb = _this._putRequest[_this._putRequest.length - 1];23 }24 rtn.unqueue = function(){25 var index = _this._putRequest.indexOf(queueCb);26 if(index == -1) return;27 else _this._putRequest.splice(index, 1);28 }29 return rtn;30 }.bind(this);31 this.take.selected = function(){32 var _this = this;33 var res;34 var queueCb35 var rtn = new Promise((resolve, reject)=>{36 res = resolve;37 })38 rtn.queue = function(){39 _this.take()40 .then(_ => {41 res(_);42 })43 .catch(err => console.log('err', err));44 queueCb = _this._getRequest[_this._getRequest.length - 1];45 }46 rtn.unqueue = function(){47 var index = _this._getRequest.indexOf(queueCb);48 if(index == -1) return;49 else _this._getRequest.splice(index, 1);50 }51 return rtn;52 }.bind(this);53 return this;54}55coChannel.select = function(selectedArr){56 for(var i = 0; i < selectedArr.length; i++){57 var selected = selectedArr[i];58 selected.queue();59 }60 var removeChReserve = function(){61 selectedArr.forEach(selected => selected.unqueue());62 }63 return Promise.race(selectedArr)64 .then(_ => {65 removeChReserve();66 return _;67 })68}69coChannel.wrap = function(f){70 return function(){71 var ch = arguments[arguments.length - 1]72 var _arg = Array.prototype.slice.call(arguments, 0, arguments.length - 1)73 return ch.put()74 .then(() => f.apply(null, _arg))75 .then(result => ch.take().then(() => result))76 .catch(err => ch.take().then(_ => Promise.reject(err)))77 }78}79coChannel.prototype.put = function(brick){80 var _this = this;81 if(this._isClosing) return Promise.resolve(false);82 var promise = new Promise((resolve, reject) => {83 this._askForVacancy(() => {84 _this._bricks.push(brick);85 _this._alertNewBrick();86 resolve(true);87 })88 })89 return promise; 90}91coChannel.prototype.take = function(){92 var _this = this;93 var promise = new Promise((resolve, reject) => {94 _this._askForBrick(brick => {95 resolve(brick);96 })97 })98 return promise;99}100coChannel.prototype.sput = function(brick){101 if(!this._canPut()) return false;102 this.put(brick);103 return true;104}105coChannel.prototype.stake = function(){106 if(!this._canTake()) return false;107 return [this._takeBrick()];108}109coChannel.prototype.close = function(){110 var promise = this.put(coChannel.CLOSED);111 this._isClosing = true;112 return promise;113}114coChannel.prototype._canPut = function(){115 if(this._getRequest.length > 0) return true;116 if(this._type == coChannel.SLIDING){117 if(this._bricks.length == this._no_buffer){118 this._bricks.shift();119 }120 }121 return (this._bricks.length < this._no_buffer);122}123coChannel.prototype._canTake = function(){124 return this._bricks.length != 0 || this._putRequest.length != 0;125}126coChannel.prototype._askForVacancy = function(cb){127 if(this._canPut()) cb();128 else this._putRequest.push(cb);129}130coChannel.prototype._askForBrick = function(cb){131 this._alertNewVacancy();132 var bricksLength = this._bricks.length;133 if(bricksLength != 0) this._assignBick(cb);134 else this._getRequest.push(cb);135}136coChannel.prototype._assignBick = function(cb){137 var brick = this._takeBrick();138 cb(brick);139 this._alertNewVacancy();140}141coChannel.prototype._takeBrick = function(){142 this._alertNewVacancy();143 var brick = this._bricks[0];144 if(brick != coChannel.CLOSED){145 this._bricks.splice(0, 1)[0];146 }else{147 this._isClosed = true;148 }149 return brick;150}151coChannel.prototype._alertNewBrick = function(){152 if(this._getRequest.length == 0) return;153 var cb = this._getRequest.splice(0, 1)[0];154 this._assignBick(cb);155}156coChannel.prototype._alertNewVacancy = function(){157 if(this._putRequest.length == 0) return;158 var cb = this._putRequest.splice(0, 1)[0];159 cb();160}161coChannel.CLOSED = {};162coChannel.SLIDING = 'sliding';163coChannel.DROPING = 'droping';164coChannel.DEFAULT = 'default';...
Player.js
Source:Player.js
1import React, { useEffect, useState } from 'react';2import styled, { css } from 'styled-components';3import {4 IoIosArrowDropupCircle,5 IoIosArrowDropdownCircle,6} from 'react-icons/io';7import Song from './Song';8import PlayerControls from './PlayerControls';9import SmallTitle from './ui/SmallTitle';10const Wrapper = styled.div`11 position: absolute;12 bottom: 0;13 right: 0;14 overflow: hidden;15 box-sizing: border-box;16 box-shadow: 0px 4px 30px rgba(0, 0, 0, 0.25);17 border-radius: 3px;18 width: 400px;19 height: ${(props) => (props.isOpen ? '50vh' : '180px')};20 transition: height 200ms;21 display: flex;22 flex-direction: column;23 justify-content: space-between;24 background-color: ${(props) => props.theme.background.primary};25 padding: 10px;26 box-sizing: border-box;27`;28const Header = styled.div`29 display: flex;30 justify-content: space-between;31 &:hover {32 cursor: pointer;33 }34`;35const CloseButton = styled.button`36 color: ${(props) => props.theme.text.secondary};37 background: none;38 border: none;39 transition: 200ms transform;40 &:hover {41 cursor: pointer;42 transform: scale(1.2);43 }44`;45const Queue = styled.div`46 display: ${(props) => (props.visible ? 'flex' : 'none')};47 flex-direction: column;48 overflow-y: scroll;49 flex: 1 1 auto;50 margin: 10px 0;51 & > .title,52 & > div {53 margin: 2.5px 0;54 }55 :first-child {56 margin-top: 0;57 }58 :last-child {59 margin-bottom: 0;60 }61`;62const QueueSong = styled(Song)`63 flex: 0 0 auto;64 border-radius: 3px;65`;66const CurrentSong = styled(Song)`67 margin: 10px 0;68`;69const EmptyState = styled.span`70 color: ${(props) => props.theme.text.secondary};71 margin: 10px 0;72`;73function Player() {74 const { Events } = window.MusicKit;75 const { player } = window.MusicKitInstance;76 const [isOpen, setIsOpen] = useState(false);77 const [queue, setQueue] = useState({ items: [] });78 const [nowPlayingItemIndex, setNowPlayingItemIndex] = useState(-1);79 useEffect(() => {80 const queueCb = (items) => setQueue({ items });81 const queuePosCb = ({ position }) => setNowPlayingItemIndex(position);82 player.addEventListener(Events.queueItemsDidChange, queueCb);83 player.addEventListener(Events.queuePositionDidChange, queuePosCb);84 return () => {85 player.removeEventListener(Events.queueItemsDidChange, queueCb);86 player.removeEventListener(Events.queuePositionDidChange, queuePosCb);87 };88 }, []);89 function toggleOpen() {90 setIsOpen(!isOpen);91 }92 return (93 <Wrapper isOpen={isOpen}>94 <Header onClick={toggleOpen}>95 <SmallTitle>{isOpen ? 'Queue' : 'Player'}</SmallTitle>96 <CloseButton onClick={toggleOpen}>97 {isOpen ? <IoIosArrowDropdownCircle /> : <IoIosArrowDropupCircle />}98 </CloseButton>99 </Header>100 <Queue visible={isOpen}>101 {queue.items.map((item, index) => (102 <QueueSong103 key={item.id}104 active={nowPlayingItemIndex === index}105 song={item}106 onClick={() => player.changeToMediaAtIndex(index)}107 />108 ))}109 </Queue>110 {!isOpen111 && nowPlayingItemIndex !== -1112 && queue.items[nowPlayingItemIndex] && (113 <CurrentSong114 song={queue.items[nowPlayingItemIndex]}115 onClick={toggleOpen}116 />117 )}118 {nowPlayingItemIndex === -1 && <EmptyState>Nothing playing</EmptyState>}119 <PlayerControls />120 </Wrapper>121 );122}...
changeArgColumn.js
Source:changeArgColumn.js
...17 sql = "ALTER TABLE `activityData` CHANGE `arg` `arg` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'é¢å¤çåæ°';";18 mysql.game(null, country, city).query(sql, function (err, res) {19 if (err) {20 console.log(city, err);21 queueCb();22 } else {23 queueCb();24 //mysql.game(null, country, city).end(queueCb); // if no db connect request later25 }26 });27 }, function (queueCb) {28 queueCb();29 }, function (queueCb) {30 sql = "DELETE FROM `activityData` WHERE `activityData`.`type` = 45";31 mysql.game(null, country, city).query(sql, function (err, res) {32 if (err) {33 console.log(city, err);34 queueCb();35 } else {36 queueCb();37 //mysql.game(null, country, city).end(queueCb); // if no db connect request later38 }39 });40 }, function (queueCb) {41 queueCb();42 }, function (queueCb) {43 queueCb();44 }, function (queueCb) {45 queueCb();46 }], function (err, res) {47 console.log(country, city, 'end');48 cb(err);49 });50 }, function (err) {51 console.log(country, 'end');52 forCb();53 });54}, function (err) {55 console.log(err);56 process.exit();...
core.js
Source:core.js
1(function() {2'use strict';3/**4 * Initialization function that validates environment5 * requirements.6 */7angular8 .module('material.core', [ 'material.core.gestures', 'material.core.theming' ])9 .config( MdCoreConfigure );10function MdCoreConfigure($provide, $mdThemingProvider) {11 $provide.decorator('$$rAF', ["$delegate", rAFDecorator]);12 $mdThemingProvider.theme('default')13 .primaryPalette('ad-0070CC', {14 'default': '500', // by default use shade 400 from the pink palette for primary intentions15 'hue-1': '500', // use shade 100 for the <code>md-hue-1</code> class16 'hue-2': '500', // use shade 100 for the <code>md-hue-1</code> class17 'hue-3': '500' // use shade 100 for the <code>md-hue-1</code> class18 })19 .accentPalette('ad-4c4c4c', {20 'default': '900' // by default use shade 400 from the pink palette for primary intentions21 })22 .warnPalette('ad-cc0000')23 .backgroundPalette('grey');24}25function rAFDecorator( $delegate ) {26 /**27 * Use this to throttle events that come in often.28 * The throttled function will always use the *last* invocation before the29 * coming frame.30 *31 * For example, window resize events that fire many times a second:32 * If we set to use an raf-throttled callback on window resize, then33 * our callback will only be fired once per frame, with the last resize34 * event that happened before that frame.35 *36 * @param {function} callback function to debounce37 */38 $delegate.throttle = function(cb) {39 var queueArgs, alreadyQueued, queueCb, context;40 return function debounced() {41 queueArgs = arguments;42 context = this;43 queueCb = cb;44 if (!alreadyQueued) {45 alreadyQueued = true;46 $delegate(function() {47 queueCb.apply(context, queueArgs);48 alreadyQueued = false;49 });50 }51 };52 };53 return $delegate;54}...
changeLeagueNameColumn.js
Source:changeLeagueNameColumn.js
...17 sql = "ALTER TABLE `league` CHANGE `leagueName` `leagueName` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;";18 mysql.game(null, country, city).query(sql, function (err, res) {19 if (err) {20 console.log(city, err);21 queueCb();22 } else {23 queueCb();24 //mysql.game(null, country, city).end(queueCb); // if no db connect request later25 }26 });27 }, function (queueCb) {28 queueCb();29 }, function (queueCb) {30 queueCb();31 }, function (queueCb) {32 queueCb();33 }, function (queueCb) {34 queueCb();35 }, function (queueCb) {36 queueCb();37 }], function (err) {38 console.log(country, city, 'end');39 cb(err);40 });41 }, function () {42 console.log(country, 'end');43 forCb();44 });45}, function () {46 process.exit();...
decorators.js
Source:decorators.js
1angular.module('material.decorators', [])2.config(['$provide', function($provide) {3 $provide.decorator('$$rAF', ['$delegate', '$rootScope', rAFDecorator]);4 function rAFDecorator($$rAF, $rootScope) {5 /**6 * Use this to debounce events that come in often.7 * The debounced function will always use the *last* invocation before the8 * coming frame.9 *10 * For example, window resize events that fire many times a second:11 * If we set to use an raf-debounced callback on window resize, then12 * our callback will only be fired once per frame, with the last resize13 * event that happened before that frame.14 *15 * @param {function} callback function to debounce16 */17 $$rAF.debounce = function(cb) {18 var queueArgs, alreadyQueued, queueCb, context;19 return function debounced() {20 queueArgs = arguments;21 context = this;22 queueCb = cb;23 if (!alreadyQueued) {24 alreadyQueued = true;25 $$rAF(function() {26 queueCb.apply(context, queueArgs);27 alreadyQueued = false;28 });29 }30 };31 };32 return $$rAF;33 }...
index.js
Source:index.js
1var async = require('async');2module.exports = function (stream, chunksize, consumer, cb) {3 var data = new Buffer(0);4 var error = null;5 var queue = async.queue(function (piece, queueCB) {6 if (error) return queueCB();7 consumer(piece, function (err) {8 if (err) error = err;9 queueCB();10 });11 });12 queue.drain = function () {13 stream.resume();14 }15 stream.on('data', function (chunk) {16 if (error) return;17 data = Buffer.concat([data, chunk]);18 if (data.length >= chunksize) {19 stream.pause();20 while (data.length >= chunksize) {21 queue.push(data.slice(0, chunksize));22 data = data.slice(chunksize);23 }24 }25 });26 stream.on('error', function (err) {27 error = err;28 });29 stream.on('end', function() {30 if (error) return cb(error);31 if (data && data.length > 0) {32 queue.drain = function () {33 cb(error);34 }35 return queue.push(data);36 }37 cb(null);38 });...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({path: 'google.png'});7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.queueCb(() => {15 console.log("hello");16 });17 await page.screenshot({path: 'google.png'});18 await browser.close();19})();20const { chromium } = require('playwright');21(async () => {22 const browser = await chromium.launch();23 const context = await browser.newContext();24 const page = await context.newPage();25 await page.queueCb(() => {26 console.log("hello");27 });28 await page.screenshot({path: 'google.png'});29 await browser.close();30})();31const { chromium } = require('playwright');32(async () => {33 const browser = await chromium.launch();34 const context = await browser.newContext();35 const page = await context.newPage();36 await page.queueCb(() => {37 console.log("hello");38 });39 await page.screenshot({path: 'google.png'});40 await browser.close();41})();42const { chromium } = require('playwright');
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: `example.png` });6 await browser.close();7})();
Using AI Code Generation
1const playwright = require('playwright');2const { queueCb } = require('playwright/lib/server/browserContext');3(async () => {4 const browser = await playwright.chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await queueCb(async () => {8 await page.screenshot({ path: 'example.png' });9 });10 await browser.close();11})();12const queueCb = (cb) => {13 const queue = [];14 const result = new Promise((resolve, reject) => {15 queue.push(() => {16 cb().then(resolve, reject);17 });18 });19 result._queue = queue;20 return result;21};22module.exports = {23};
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 const [request] = await Promise.all([6 page.waitForRequest(/.*\.png$/),7 ]);8 console.log(request.url());9 await browser.close();10})();11const { chromium } = require('playwright');12describe('My Test', () => {13 it('should work', async () => {14 const browser = await chromium.launch();15 const page = await browser.newPage();16 const [request] = await Promise.all([17 page.waitForRequest(/.*\.png$/),18 ]);19 console.log(request.url());20 await browser.close();21 });22});23const { chromium } = require('playwright');24describe('My Test', () => {25 it('should work', async () => {26 const browser = await chromium.launch();27 const page = await browser.newPage();28 const [request] = await Promise.all([29 page.waitForRequest(/.*\.png$/),30 ]);31 console.log(request.url());32 await browser.close();33 });34});35const { chromium } = require('playwright');36describe('My Test', () => {37 it('should work', async () => {38 const browser = await chromium.launch();39 const page = await browser.newPage();40 const [request] = await Promise.all([41 page.waitForRequest(/.*\.png$/),42 ]);43 console.log(request.url());44 await browser.close();45 });46});
Using AI Code Generation
1const { ChromiumProcess } = require('playwright-core/lib/server/chromium/crProcess');2const { BrowserServer } = require('playwright-core/lib/server/browserServer');3const { BrowserContext } = require('playwright-core/lib/server/browserContext');4const { Page } = require('playwright-core/lib/server/page');5const { Frame } = require('playwright-core/lib/server/frame');6const { JSHandle } = require('playwright-core/lib/server/jsHandle');7const { ElementHandle } = require('playwright-core/lib/server/elementHandler');8const { chromium } = require('playwright-core');9(async () => {10 const browser = await chromium.launch();11 const context = await browser.newContext();12 const page = await context.newPage();13 const crProcess = browser._browserContext._browser._process;14 const browserServer = browser._browserContext._browser;15 const browserContext = browser._browserContext;16 const frame = page.mainFrame();17 const queueCb = (cb) => {18 crProcess._queueCallback(cb);19 };20 queueCb(async () => {21 console.log('crProcess', crProcess);22 console.log('browserServer', browserServer);23 console.log('browserContext', browserContext);24 console.log('frame', frame);25 });26 await page.close();27 await context.close();28 await browser.close();29})();30crProcess ChromiumProcess {
Using AI Code Generation
1const { queueCb } = require('playwright/lib/server/frames');2const { Page } = require('playwright/lib/server/page');3const { Frame } = require('playwright/lib/server/frame');4const { JSHandle } = require('playwright/lib/server/jsHandle');5const { ElementHandle } = require('playwright/lib/server/elementHandler');6const { evalOnSelector } = require('playwright/lib/server/frames');7const { queueCb } = require('playwright/lib/server/frames');8const { queueCb } = require('playwright/lib/server/frames');9const { queueCb } = require('playwright/lib/server/frames');10const { queueCb } = require('playwright/lib/server/frames');11const { queueCb } = require('playwright/lib/server/frames');12const { queueCb } = require('playwright/lib/server/frames');13const { queueCb } = require('playwright/lib/server/frames');14const { queueCb } = require('playwright/lib/server/frames');15const { queueCb } = require('playwright/lib/server/frames');
Using AI Code Generation
1const { chromium } = require('playwright');2const { queueCb } = require('playwright-internal');3(async () => {4 const browser = await chromium.launch();5 const page = await browser.newPage();6 await queueCb(async () => {7 await page.screenshot({ path: `example.png` });8 });9 await browser.close();10})();11 at CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:81:23)12 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)13 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)14 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)15 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)16 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)17 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)18 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)19 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)20 at async CDPSession.send (/Users/username/Downloads/playwright-internal/node_modules/playwright-core/lib/cjs/protocol/channels.js:73:23)
Using AI Code Generation
1const { queueCb } = require('playwright/lib/internal/queue');2module.exports = async ({ page }) => {3 await queueCb(async () => {4 });5};6module.exports = {7 use: {8 viewport: { width: 1280, height: 720 },9 launchOptions: {10 },11 },12 {13 use: {14 launchOptions: {15 },16 },17 },18 {19 use: {20 launchOptions: {21 },22 },23 },24 {25 use: {26 launchOptions: {27 },28 },29 },30};31{32 "scripts": {33 },34 "dependencies": {35 }36}
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!!