Best JavaScript code snippet using playwright-internal
dal.js
Source:dal.js  
...44	    });45	}46    }47    async create (desc) {48        this._connect();49	const results = await this._run(`SELECT * FROM version LIMIT 1`, []);50	if (results.length > 0) {51	    throw 'Version # already exists';52	}53	await this._run(`INSERT INTO version VALUES (?)`, [desc.version]);54        this._close();55    }56    async update (desc) {57	this._connect();58	const results = await this._run(`SELECT * FROM version LIMIT 1`);59	if (results.length > 0) {60	    await this._run(`UPDATE version SET version = ?`, [desc.version]);61	}62	else {63	    await this._run(`INSERT INTO version VALUES (?)`, [desc.version]);64	}65	this._close();66    }67    68    async read () {69	this._connect();70	const rows = await this._run(`SELECT * FROM version LIMIT 1`);71        if (rows.length > 0) { 72            return {version: rows[0].version}73	}74    }75}76class Tags {77    constructor (folder) {78	this._fname = path.join(folder, _IMAGES_DB);79    }80    _connect () {81	this._db = new sqlite3.Database(this._fname);82    }83    _close () {84	if (this._db) {85	    this._db.close();86	}87    }88    _run (sql, params) {89	// allow queries to be using asynchronously90	if (this._db) { 91	    return new Promise((resolve, reject) => {92		this._db.all(sql, params, function (error, rows) {93		    if (error)94			reject(error);95		    else96			resolve(rows);97		});98	    });99	}100    }101    async create (desc) {102	this._connect();103	const rows = await this._run(`SELECT * FROM tags WHERE uuid = ? and tag = ? LIMIT 1`,104			       [desc.uuid, desc.tag]);105	if (rows.length > 0) {106	    throw `UUID ${desc.uuid} and tag ${desc.tag} already exist`;107	}108	await this._run(`INSERT INTO tags VALUES (?, ?)`, [desc.uuid, desc.tag]);109	this._close();110    }111    async delete (uuid, tag) {112	this._connect();113	await this._run(`DELETE FROM tags WHERE uuid = ? AND tag = ?`, [uuid, tag]);114	this._close();115    }116    async delete_all_by_uuid (uuid) {117	this._connect();118	await this._run(`DELETE FROM tags WHERE uuid = ?`, [uuid]);119	this._close();120    }121    async read_by_uuid (uuid) {122	this._connect();123	const rows = await this._run(`SELECT * FROM tags WHERE uuid = ?`, [uuid]);124	this._close();125	return rows;126    }127    async read_by_uuids (uuids) {128	this._connect();129	if (uuids.length > 990) {130	    throw `About to hit the limit of the number of uuids that can be looked up at once`;131	}132	const uuid_str = uuids.map(r => '?').join(', ');133	const rows = await this._run(`SELECT * FROM tags WHERE uuid IN (${uuid_str})`, uuids);134	this._close();135	return rows;136    }137    async read_all_tags () {138	this._connect();139	let rows = await this._run(`SELECT distinct tag FROM tags`);140	// rows = rows.map(r => ({tag: r.tag}));141	this._close();142	return rows;143    }144}145class Images {146    147    constructor (folder) {148	this._fname = path.join(folder, _IMAGES_DB);149    }150    _connect () {151	this._db = new sqlite3.Database(this._fname);152    }153    _close () {154	if (this._db) {155	    this._db.close();156	}157    }158    _run (sql, params) {159	// allow queries to be using asynchronously160	if (this._db) { 161	    return new Promise((resolve, reject) => {162		this._db.all(sql, params, function (error, rows) {163		    if (error)164			reject(error);165		    else166			resolve(rows);167		});168	    });169	}170    }171    async create (desc) {172	this._connect();173	const timestamp = toISO(new Date());174	let rows = await this._run(`SELECT * FROM images WHERE uuid = ? LIMIT 1`, [desc.uuid])175	if (rows.length > 0) {176	    throw `UUID ${desc.uuid} already exists`;177	}178	await this._run(`INSERT INTO images VALUES (?, ?, ?, ?, ?, ?, ?)`, [179	    desc.uuid,180	    desc.extension,181	    desc.content.join('\n\n'),182	    timestamp,183	    timestamp,184	    null,185	    desc.draft ? 1 : 0186	]);187	this._close();188    }189    async update (desc) {190	this._connect();191	const timestamp = toISO(new Date());192	let rows = await this._run(`SELECT * FROM images WHERE uuid = ? LIMIT 1`, [desc.uuid]);193	if (rows.length > 0) {194	    await this._run(`DELETE FROM images WHERE uuid = ?`, [desc.uuid]);195	}196	await this._run(`INSERT INTO images VALUES (?, ?, ?, ?, ?, ?, ?)`, [197	    desc.uuid,198	    desc.extension,199	    desc.content.join('\n\n'),200	    toISO(desc.date_created),201	    timestamp,202	    desc.date_published && desc.draft == 0 ? toISO(desc.date_published) : null,203	    desc.draft ? 1 : 0204	]);205	this._close();206    }207    async delete (uuid) {208	this._connect();209	await this._run(`DELETE FROM images WHERE uuid = ?`, [uuid]);210	this._close();211    }212    _process_row (r) {213	return { uuid: r.uuid,214                 extension: r.extension,215                 content: r.content.split('\n\n'),216                 date_created: new Date(r.date_created),217                 date_updated: new Date(r.date_updated),218                 date_published: r.date_published ? new Date(r.date_published) : null,219                 draft: r.draft ? true : false }220    }221    async count_all () {222	this._connect();223	const rows = await this._run(`SELECT count(*) as ct FROM images WHERE draft = 0`);224	this._close();225	return rows[0];226    }227    async count_all_drafts () {228	this._connect();229	const rows = await this._run(`SELECT count(*) as ct FROM images WHERE draft = 1 AND content IS NOT NULL AND content <> ''`);230	this._close();231	return rows[0];232    }233    async count_all_new () {234	this._connect();235	const rows = await this._run(`SELECT count(*) as ct FROM images WHERE draft = 1 AND (content IS NULL OR content = '')`);236	this._close();237	return rows[0];238    }239    async count_all_by_tag (tag) {240	this._connect();241	const rows = await this._run(`SELECT count(*) as ct FROM images WHERE uuid IN (SELECT uuid FROM tags WHERE tag = ?) AND draft = 0`, [tag]);242	this._close();243	return rows[0];244    }245    async read_all (offset, limit) {246	if (offset === 'undefined') {247	    offset = 0;248	}249	if (limit === 'undefined') {250	    limit = 10;251	}252	this._connect();253	let results = await this._run(`SELECT * FROM images WHERE draft = 0 ORDER BY datetime(date_published) desc LIMIT ? OFFSET ?`, [limit, offset]);254	results = results.map(r => this._process_row(r));255	this._close();256	return results;257    }258    async read_all_by_tag (tag, offset, limit) {259	if (offset === 'undefined') {260	    offset = 0;261	}262	if (limit === 'undefined') {263	    limit = 10;264	}265	this._connect();266	let results = await this._run(`SELECT * FROM images WHERE uuid IN (SELECT uuid FROM tags WHERE tag = ?) AND draft = 0 ORDER BY datetime(date_published) desc LIMIT ? OFFSET ?`, [tag, limit, offset]);267	results = results.map(r => this._process_row(r));268	this._close();269	return results;270    }271    async read_all_drafts (offset, limit) {272	if (offset === 'undefined') {273	    offset = 0;274	}275	if (limit === 'undefined') {276	    limit = 10;277	}278	this._connect();279	let results = await this._run(`SELECT * FROM images WHERE draft = 1 AND content IS NOT NULL AND content <> '' ORDER BY datetime(date_updated) desc LIMIT ? OFFSET ?`, [limit, offset]);280	results = results.map(r => this._process_row(r));281	this._close();282	return results;283    }284    async read_all_new (offset, limit) {285	if (offset === 'undefined') {286	    offset = 0;287	}288	if (limit === 'undefined') {289	    limit = 10;290	}291	this._connect();292	let results = await this._run(`SELECT * FROM images WHERE draft = 1 AND (content IS NULL OR content = '') ORDER BY datetime(date_updated) desc LIMIT ? OFFSET ?`, [limit, offset]);293	results = results.map(r => this._process_row(r));294	this._close();295	return results;296    }297    async read (uuid) {298	this._connect();299	const results = await this._run(`SELECT * FROM images WHERE uuid = ?` , [uuid]);300        if (results.length > 0) {301	    if (results.length > 1) {302		throw `Too many rows ${results.length} for UUID ${uuid}`;303	    }304            return this._process_row(results[0]);305	}306    }307}308class Notes {309    310    constructor (folder) {311	this._fname = path.join(folder, _IMAGES_DB);312    }313    _connect () {314	this._db = new sqlite3.Database(this._fname);315    }316    _close () {317	if (this._db) {318	    this._db.close();319	}320    }321    _run (sql, params) {322	// allow queries to be using asynchronously323	if (this._db) { 324	    return new Promise((resolve, reject) => {325		this._db.all(sql, params, function (error, rows) {326		    if (error)327			reject(error);328		    else329			resolve(rows);330		});331	    });332	}333    }334    async create (desc) {335	this._connect();336	const timestamp = toISO(new Date());337	let rows = await this._run(`SELECT * FROM notes WHERE uuid = ? LIMIT 1`, [desc.uuid])338	if (rows.length > 0) {339	    throw `UUID ${desc.uuid} already exists`;340	}341	await this._run(`INSERT INTO notes VALUES (?, ?, ?)`, [342	    desc.uuid,343	    desc.content.join('\n\n'),344	    timestamp345	]);346	this._close();347    }348    async update (desc) {349	this._connect();350	const timestamp = toISO(new Date());351	let rows = await this._run(`SELECT * FROM notes WHERE uuid = ? LIMIT 1`, [desc.uuid]);352	if (rows.length > 0) {353	    await this._run(`UPDATE notes SET content = ?, date_updated = ? WHERE uuid = ?`,354			    [desc.content.join('\n\n'), timestamp, desc.uuid])355	}356	else { 357	    await this._run(`INSERT INTO notes VALUES (?, ?, ?)`, [358		desc.uuid,359		desc.content.join('\n\n'),360		timestamp361	    ]);362	}363	this._close();364    }365    async delete (uuid) {366	this._connect();367	await this._run(`DELETE FROM notes WHERE uuid = ?`, [uuid]);368	this._close();369    }370    _process_row (r) {371	return {372	    uuid: r.uuid,373            content: r.content.split('\n\n'),374            date_updated: new Date(r.date_updated)375	}376    }377    async count_all () {378	this._connect();379	const rows = await this._run(`SELECT count(*) as ct FROM notes`);380	this._close();381	return rows[0];382    }383    async read_all (offset, limit) {384	if (offset === 'undefined') {385	    offset = 0;386	}387	if (limit === 'undefined') {388	    limit = 10;389	}390	this._connect();391	let results = await this._run(`SELECT * FROM notes ORDER BY datetime(date_updated) desc LIMIT ? OFFSET ?`, [limit, offset]);392	results = results.map(r => this._process_row(r));393	this._close();394	return results;395    }396    async read (uuid) {397	this._connect();398	const results = await this._run(`SELECT * FROM notes WHERE uuid = ?` , [uuid]);399        if (results.length > 0) {400	    if (results.length > 1) {401		throw `Too many rows ${results.length} for UUID ${uuid}`;402	    }403            return this._process_row(results[0]);404	}405    }406}407module.exports = {408    Version: Version,409    Tags: Tags,410    Images: Images,411    Notes: Notes,...mongoClient.js
Source:mongoClient.js  
1"use strict"2var {MongoClient,ObjectID} = require('mongodb');3var assert = require('assert');4var log4js = require('log4js');5var logger = log4js.getLogger();6class MongoDb {7  constructor(host, port, db, user, pw){8    return new Promise((done, fail) => {9      var auth = (user && pw) ? (user+':'+pw+'@') : '';10      port = port || 27017;11      MongoClient.connect(`mongodb://${auth}${host}:${port}/${db}`, (err, db) => {12        assert.equal(null, err);13        this._connect = db;14        done(this);15      })16    });17  }18  convQuery(query){19    try{20      if(query.hasOwnProperty('_id')){21        if(query['_id']['$in']){22          query['_id']['$in'] = query['_id']['$in'].map((tId) => ObjectID(tId));23        }else{24          query['_id'] = ObjectID(query['_id']);25        }26      }27    }catch(e){28      logger.error(e.message);29    }30    return query;31  }32  insert(collect, doc, options){33    return new Promise((done, fail) => {34      if(this._connect && doc){35        var coll = this._connect.collection(collect);36        coll[(Array.isArray(doc) ? 'insertMany' : 'insert')](doc, options, (err, info) => {37          err && logger.error(err)38          assert.equal(null, err);39          //logger.info(result);40          done(info);41        });42      }else{43        fail();44      }45    });46  }47  remove(collect, query, options){48    return new Promise((done, fail) => {49      if(this._connect && query){50        var coll = this._connect.collection(collect);51        var ret = coll.removeMany(query, options);52        // conver object id53        this.convQuery(query);54        55        done();56      }else{57        fail();58      }59    });60  }61  findAndModify(collect, query, doc, options){62    return new Promise((done, fail) => {63      if(this._connect && query && doc){64        var coll = this._connect.collection(collect);65        //this.convQuery(query);66        options = options || {};67        coll.findOneAndUpdate(query, doc, options).then((data) => {68          done(data);69        }).catch((e) => {70          fail(e);71        });72      }else{73        fail();74      }75    });76  }77  upSert(collect, query, doc, options){78    return new Promise((done, fail) => {79      if(this._connect && doc){80        var coll = this._connect.collection(collect);81        // conver object id82        this.convQuery(query);83        84        options = options || {};85        options.w = 1;86        options.upsert = true;87        88        coll[(Array.isArray(doc) ? 'updateMany' : 'update')](query, doc,options, (err, info) => {89          err && logger.error(err)90          assert.equal(null, err);91          done(info);92        });93      }else{94        fail();95      }96    })97  }98  query(collect, query, options){99    //logger.info('test')100    return new Promise((done, fail) => {101      if(this._connect){102        var coll = this._connect.collection(collect);103        // conver object id104        this.convQuery(query);105        106        //logger.info(coll);107        coll.find(query, options).toArray((err, info) => {108          assert.equal(null, err);109          done(info);110        });111      }else{112        fail();113      }114    });115  }116  buildIndex(collect, keys, reserve, extras){117    return new Promise((done, fail) => {118      if(this._connect){119        var coll = this._connect.collection(collect);120        var index = {};121        Array.isArray(keys) ? keys.map((key) => {index[key]= (reserve ? -1 : 1)}) : (index[keys]=(reserve ? -1 : 1));122        return callback ? coll.ensureIndex(index, extras, (err, indexName) => {123          assert.equal(null, err);124          console.log('buildIndex:'+indexName)125          done(indexName);126        }) : coll.ensureIndex(index, extras);127      }else{128        fail();129      }130    });131  }132  update(collect, query, doc){133    return new Promise((done, fail) => {134      if(this._connect){135        // conver object id136        this.convQuery(query);137        var coll = this._connect.collection(collect);138        return coll.updateOne(query, doc, {w:1}).then((info) => {139          done(info);140        }).catch((e) => {141          fail(e)142        });143      }else{144        fail();145      }146    });147  }148  checkIndex(collect, option){149    return new Promise((done, fail) => {150      if(this._connect){151        var coll = this._connect.collection(collect);152        return coll.indexInformation(option || {full:true}, (err, info) => {153          assert.equal(null, err);154          done(info);155        });156      }else{157        fail();158      }159    });160  }161}...cardinfo.js
Source:cardinfo.js  
1	/******************************************************************************************************************* 2		Ä«µåÇҺΠ¾È³»3	*******************************************************************************************************************/4	$( document ).ready(function() {5		$('[cardinfo]').click(function(e) {6			$('#sp-cardinfo, #sp-cardinfo-loading').remove();7			var _url = $(this).data('url');8			var _offset = $(this).offset();9			var _load = '<div id="sp-cardinfo-loading" style="top:'+ (_offset.top-24) +'px;left:'+ (_offset.left-7) +'px;">ºÒ·¯¿À´ÂÁß</div>';10			var _now = (document.documentElement && document.documentElement.scrollTop) ||  document.body.scrollTop;11			$('body').prepend( _load );12			$('#sp-cardinfo-loading').fadeIn('fast');13			$.ajax({14				type: 'get',15				dataType: 'html',16				url: _url,17				success: function(data){18					var $result = $(data).filter('#sp-result').html();19					$('body').append( $result );20					$('#sp-cardinfo').css('height',$(document).height()).fadeIn('fast');21					//$('#sp-cardinfo > ul').css({'top':_offset.top,'left':_offset.left - 600});22					$('#sp-cardinfo > ul').css('top',_now + 100);23					$('#sp-cardinfo-loading').fadeOut();24					/* ¿¬µ¿ */25					var _connect;26					var _connectdata;27					if( $('#sp-cardinfo [connect="¹«ÀÌÀÚÇÒºÎ"]').size() ){28						$('#sp-cardinfo [connect="¹«ÀÌÀÚÇÒºÎ"]').each(function( a ){29							if( $(this).data('connect') ){30								_connectdata = $(this).data('connect').split('^');31								if( _connectdata.length == 1 ){32									_connect  = '';33									_connect += '<ul>';34									_connect += '	<p>'+ _connectdata[0] +'</p>';35									_connect += '</ul>';36									$('#sp-cardinfo [connectbox="¹«ÀÌÀÚÇÒºÎ"]').append( _connect );37								}else if( _connectdata.length == 2 ){38									_connect  = '';39									_connect += '<ul>';40									_connect += '	<li class="sp-title">'+ _connectdata[0] +'</li>';41									_connect += '	<li class="sp-content">'+ _connectdata[1] +'</li>';42									_connect += '</ul>';43									$('#sp-cardinfo [connectbox="¹«ÀÌÀÚÇÒºÎ"]').append( _connect );44								}45							}46						});47					}48					if( $('#sp-cardinfo [connect="ºÎºÐ¹«ÀÌÀÚÇÒºÎ"]').size() ){49						$('#sp-cardinfo [connect="ºÎºÐ¹«ÀÌÀÚÇÒºÎ"]').each(function( a ){50							if( $(this).data('connect') ){51								_connectdata = $(this).data('connect').split('^');52								if( _connectdata.length == 1 ){53									_connect  = '';54									_connect += '<ul>';55									_connect += '	<p>'+ _connectdata[0] +'</p>';56									_connect += '</ul>';57									$('#sp-cardinfo [connectbox="ºÎºÐ¹«ÀÌÀÚÇÒºÎ"]').append( _connect );58								}else if( _connectdata.length == 2 ){59									_connect  = '';60									_connect += '<ul>';61									_connect += '	<li class="sp-title">'+ _connectdata[0] +'</li>';62									_connect += '	<li class="sp-content">'+ _connectdata[1] +'</li>';63									_connect += '</ul>';64									$('#sp-cardinfo [connectbox="ºÎºÐ¹«ÀÌÀÚÇÒºÎ"]').append( _connect );65								}66							}67						});68					}69				},70				error: function(xhr,status,error){71					$('#sp-cardinfo-loading').html('Àá½Ã ÈÄ ´Ù½Ã ½ÃµµÇØÁÖ¼¼¿ä');72					setTimeout(function(){73						$('#sp-cardinfo-loading').fadeOut('fast');74					}, 2000);75				},76				timeout: 300077			});78		});79		//KEY EVENT80		$(document).keydown(function(e) {81			if (e.keyCode == 27) {82				$('#sp-cardinfo').fadeOut('fast');83			}84		});85		//$(document).on('click', '#sp-cardinfo, #sp-cardinfo > ul > button', function(e) {86		$('#sp-cardinfo, #sp-cardinfo > ul > button').live('click', function(){87			$('#sp-cardinfo').fadeOut('fast');88		});89		//$(document).on('click', ''#sp-cardinfo > ul', function(e) {90		$('#sp-cardinfo > ul').live('click', function(e){91			e.stopPropagation();92		});93		//$(document).on('click', '#sp-cardinfo > ul > p > button', function(e) {94		$('#sp-cardinfo > ul > p > button').live('click',function(){95			var _index = $('#sp-cardinfo > ul > p > button').index( $(this) );96			$('#sp-cardinfo > ul > p > button').removeClass('-on');97			$('#sp-cardinfo > ul > p > button').eq(_index).addClass('-on');98			$('#sp-cardinfo > ul > li').removeClass('-on');99			$('#sp-cardinfo > ul > li').eq(_index).addClass('-on');100		});...service.test.js
Source:service.test.js  
1/*global bridge,assert,suite,setup,teardown,test*/2/*jshint esnext:true, maxlen:false*/3suite('Service /', function() {4  var service = bridge.service;5  setup(function() {6    this.sinon = sinon.sandbox.create();7  });8  teardown(function() {9    this.sinon.restore();10  });11  suite('Service#method()', function() {12    var fakeMessage;13    var myService;14    setup(function() {15      myService = service('service-name');16      fakeMessage = {17        type: '_method',18        foo: 'foo',19        data: {20          name: 'my-method',21          args: ['a', 'b', 'c']22        },23        event: { ports: [] },24        respond: sinon.spy()25      };26    });27    teardown(function() {28      myService.destroy();29    });30    test('it responds to the message with the return value', function() {31      myService.method('my-method', () => 'value');32      myService.emit('_method', fakeMessage);33      sinon.assert.calledWith(fakeMessage.respond, 'value');34    });35    test('it applys arguments to the callback', function() {36      var spy = sinon.spy();37      myService.method('my-method', spy);38      myService.emit('_method', fakeMessage);39      sinon.assert.calledWith(spy, 'a', 'b', 'c');40    });41    test('it throws if no method is found', function(done) {42      myService.method('my-method', () => {});43      fakeMessage.data.name = 'unknown';44      try { myService.emit('_method', fakeMessage); }45      catch (e) { done(); }46    });47  });48  suite('on connect', function() {49    var fakeMessage;50    setup(function() {51      fakeMessage = {52        type: '_connect',53        data: {54          clientId: 123,55          service: 'service1'56        },57        event: { ports: [] },58        setSourcePort: sinon.spy(),59        respond: sinon.spy()60      };61    });62    teardown(function() {});63    test('it does not respond if the service name does not match', function() {64      fakeMessage.data.service = 'service3';65      var myService = service('service1');66      myService.emit('_connect', fakeMessage);67      sinon.assert.notCalled(fakeMessage.respond);68      myService = service('service2');69      myService.emit('_connect', fakeMessage);70      sinon.assert.notCalled(fakeMessage.respond);71      myService = service('service3');72      myService.emit('_connect', fakeMessage);73      sinon.assert.called(fakeMessage.respond);74    });75    test('it does not respond if no clientId was provided', function() {76      delete fakeMessage.data.clientId;77      var myService = service('service1');78      myService.emit('_connect', fakeMessage);79      sinon.assert.notCalled(fakeMessage.respond);80      fakeMessage.data.clientId = 123;81      myService.emit('_connect', fakeMessage);82      sinon.assert.called(fakeMessage.respond);83    });84    test('it does not respond if the client is already connected', function() {85      var myService = service('service1');86      myService.emit('_connect', fakeMessage);87      sinon.assert.called(fakeMessage.respond);88      fakeMessage.respond.reset();89      myService.emit('_connect', fakeMessage);90      sinon.assert.notCalled(fakeMessage.respond);91    });92    test('it responds on MessageChannel the Client and Service are not within Windows', function() {93      var service = bridge.service('service1');94      var port = new MessageChannel().port1;95      fakeMessage.event.ports = [port];96      // Client 197      fakeMessage.data.originEnv = 'Window';98      service.emit('_connect', fakeMessage);99      sinon.assert.notCalled(fakeMessage.setSourcePort);100      // Client 2101      fakeMessage.data.clientId = 1234;102      fakeMessage.data.originEnv = 'Worker';103      service.emit('_connect', fakeMessage);104      sinon.assert.calledWith(fakeMessage.setSourcePort, port);105    });106  });...db.js
Source:db.js  
1const mongodb = require("mongodb");2const mongoClient = mongodb.MongoClient;3// 以ä¸å线å¼å¤´çï¼ä¸è¬é½æ¯åä¸ºç§æçæ¥å®ä¹çã4function _connect(cb) {5    mongoClient.connect("mongodb://127.0.0.1:27017",{useUnifiedTopology:true},function (err,client) {6        if(err)7            console.log("ç½ç»è¿æ¥é误");8        else{9            // console.log("æå");10            const db = client.db("lwy");11            cb(db)12        }13    })14}15// æå
¥ä¸æ¡è®°å½16// coll:éå17// insertObj:æå
¥çå
容18// cb æå
¥æå以åçåè°å½æ°ï¼ç¨äºè¿åç»æ19module.exports.insertOne = function (coll,insertObj,cb) {20    _connect(function (db) {21        db.collection(coll).insertOne(insertObj,cb)22        // db.collection(coll).insertOne(insertObj,function (err,results) {23        //     cb(err,results);24        // })25    })26}27/*28* æ ¹æ®æ¡ä»¶ï¼è·å¾æ»ææ¡£æ°29* coll:æå®éå30* whereObj:æ¡ä»¶*/31module.exports.count = function (coll,whereObj,cb) {32    _connect(function (db) {33        db.collection(coll).countDocuments(whereObj,cb)34    })35}36module.exports.connect = _connect;37/*æ ¹æ®IDè¿è¡å é¤*/38module.exports.deleteOneById = function (coll,id,cb) {39    _connect(function (db) {40        db.collection(coll).deleteOne({41            _id:mongodb.ObjectId(id)42        },cb)43    })44}45/*æ ¹æ®IDè¿è¡ä¿®æ¹*/46module.exports.updateOneById = function (coll,id,upObj,cb) {47    _connect(function (db) {48        db.collection(coll).updateOne({49            _id:mongodb.ObjectId(id)50        },upObj,cb)51    })52}53// æ ¹æ®æ¡ä»¶æ´æ¹å¤æ¡è®°å½54module.exports.updateMany = function (coll,whereObj,upObj,cb) {55    _connect(function (db) {56        db.collection(coll).updateMany(whereObj,upObj,cb)57    })58}59module.exports.updateOne = function (coll,whereObj,upObj,cb) {60    _connect(function (db) {61        db.collection(coll).updateOne(whereObj,upObj,cb)62    })63}64// æ ¹æ®IDè·å¾ç¸å¯¹åºçä¿¡æ¯65module.exports.findOneById = function (coll,id,cb) {66    _connect(function (db) {67        db.collection(coll).findOne({68            _id:mongodb.ObjectId(id)69        },cb)70    })71}72module.exports.findOne = function (coll,obj,cb) {73    _connect(function (db) {74        db.collection(coll).findOne(obj.whereObj,{projection: obj.getObj},cb)75    })76}77// æ ¹æ®æ¡ä»¶è¿è¡æ¥æ¾78module.exports.find = function (coll,obj,cb) {79    obj.whereObj = obj.whereObj || {};80    obj.getObj = obj.getObj || {};81    obj.sortObj = obj.sortObj || {};82    obj.skip = obj.skip || 0;83    obj.limit = obj.limit || 0;84    // console.log(obj)85    _connect(function (db) {86        db.collection(coll)87            .find(obj.whereObj)88            .project(obj.getObj)//éè¿0/1è¿åæå®å段 0ä¸1ä¸å¯æ··ç¨89            .skip(obj.skip)90            .limit(obj.limit)91            .sort(obj.sortObj)92            .toArray(cb)93    })94}95//æ¥æ¾å段å»é96module.exports.distinct = function (coll,obj,cb) {97    obj.getObj = obj.getObj || {};98    _connect(function (db) {99        db.collection(coll)100            .distinct(obj.getObj)101            .then(cb)102    })103}104module.exports.connect = _connect;105// _connect(function (db) {106//     console.log(db)...bankmiss.js
Source:bankmiss.js  
1	/******************************************************************************************************************* 2		미íì¸ ì
ê¸ì3	*******************************************************************************************************************/4	$( document ).ready(function() {5		$('[bankmiss]').click(function(e) {6			$('#sp-bankmiss, #sp-bankmiss-loading').remove();7			var _url = $(this).data('url');8			var _offset = $(this).offset();9			var _load = '<div id="sp-bankmiss-loading" style="top:'+ (_offset.top-24) +'px;left:'+ (_offset.left-7) +'px;">ë¶ë¬ì¤ëì¤</div>';10			var _now = (document.documentElement && document.documentElement.scrollTop) ||  document.body.scrollTop;11			$('body').prepend( _load );12			$('#sp-bankmiss-loading').fadeIn('fast');13			$.ajax({14				type: 'get',15				dataType: 'html',16				url: _url,17				success: function(data){18					var $result = $(data).filter('#sp-result').html();19					$('body').append( $result );20					$('#sp-bankmiss').css('height',$(document).height()).fadeIn('fast');21					//$('#sp-bankmiss .sp-bankmiss-inside').css('marginTop',_offset.top);22					$('#sp-bankmiss .sp-bankmiss-inside').css('top',_now + 100);23					$('#sp-bankmiss-loading').fadeOut();24					/* ì°ë */25					var _connect;26					var _connectdata;27					if( $('#sp-bankmiss [connect="미íì¸ì
ê¸ì"]').size() ){28						$('#sp-bankmiss [connect="미íì¸ì
ê¸ì"]').each(function( a ){29							if( $(this).data('connect') ){30								_connectdata = $(this).data('connect').split('^');31								if( _connectdata.length == 4 ){32									_connect  = '';33									_connect += '<tr>';34									_connect += '	<td>'+ _connectdata[0] +'</td>';35									_connect += '	<td>'+ _connectdata[1] +'</td>';36									_connect += '	<td>'+ _connectdata[2] +'</td>';37									_connect += '	<td>'+ _connectdata[3] +'</td>';38									_connect += '</tr>';39									$('#sp-bankmiss [connectbox]').append( _connect );40								}41							}42						});43					}44				},45				error: function(xhr,status,error){46					$('#sp-bankmiss-loading').html('ì ì í ë¤ì ìëí´ì£¼ì¸ì');47					setTimeout(function(){48						$('#sp-bankmiss-loading').fadeOut('fast');49					}, 2000);50				},51				timeout: 300052			});53		});54		//KEY EVENT55		$(document).keydown(function(e) {56			if (e.keyCode == 27) {57				$('#sp-bankmiss').fadeOut('fast');58			}59		});60		//$(document).on('click', '#sp-bankmiss, #sp-bankmiss button', function(e) {61		$('#sp-bankmiss, #sp-bankmiss button').live('click', function(){62			$('#sp-bankmiss').fadeOut('fast');63		});64		//$(document).on('click', '#sp-bankmiss .sp-bankmiss-inside', function(e) {65		$('#sp-bankmiss .sp-bankmiss-inside').live('click', function(e){66			e.stopPropagation();67		});...server.js
Source:server.js  
1var connect = require('express')2  //, gzip = require('connect-gzip')3  , bodyParser = require('body-parser')4  , cookieParser = require('cookie-parser')5  , serveStatic = require('serve-static')6  , compose = require('./util/compose')7  , parse = require('url').parse8var Application = module.exports = function Application(options) {9	if (!(this instanceof Application)) 10		return new Application()11	this._connect = connect(options)12	//this._connect.use(gzip.gzip())13	this._stack = []14}15var app = Application.prototype16app.serve = function serve(directory, options) {17	var mountPath18	19	if(options && options.mount) {20		mountPath = options.mount21		delete options.mount22		this._connect.use(mountPath, serveStatic(directory, options))23	} else {24		this._connect.use(serveStatic(directory, options))25	}26	return this27}28app.connect = function connect(fn) {29	if(!this._defaults) {30		this._defaults = true31		this._connect.use(cookieParser())32		this._connect.use(bodyParser.urlencoded({ extended:true }))33	}34	if(this._stack.length) {35		throw new Error('All connect middleware (.connect) must be added before any kent middleware (.use)')36	}37	38	this._connect.use(fn)39	return this40}41app.set = function set() {42	this._connect.set.apply(this._connect, arguments)43	return this44}45app.use = function use(fn) {46	if(fn._stack) this._stack.push.apply(this._stack, fn._stack)47	else this._stack.push(fn)48	return this49}50app.listen = function listen() {51	var fn = compose(this._stack)52	this._connect.use(function(req, res, next) {53		fn.call(createContext(req, res), next)()54	})55	return this._connect.listen.apply(this._connect, arguments)56}57function createContext(req, res) {58	var ctx = {59		req,60		res,61		body:req.body,62		cookies:{63			get:function(name) { return req.cookies[name] },64			set:function(name, value, options) { res.cookie(name, value, options) }65		},66		redirect:function(url) {67			res.writeHead(302, { Location:url })68			res.end()69		},70		params:{}71	}72	var parsedUrl = parse(req.url, true)73	ctx.url = parsedUrl.path74	ctx.path = parsedUrl.pathname75	ctx.query = parsedUrl.query76	ctx.host = req.headers.host77	ctx.site = req.protocol+'://'+ctx.host78	ctx.href = ctx.site+parsedUrl.path79	return ctx...grid.js
Source:grid.js  
...27    addEdges() {28        for (let col = 0; col < this.size; col++) {29            for (let row = 0; row < this.size; row++) {30                const current = this._cellId(col, row)31                this._connect(current, col + 1, row) // right32                this._connect(current, col - 1, row) // left33                this._connect(current, col, row + 1) // bottom34                this._connect(current, col, row - 1) // top35                this._connect(current, col + 1, row + 1) // bottom-right36                this._connect(current, col + 1, row - 1) // top-right 37                this._connect(current, col - 1, row + 1) // bottom-left38                this._connect(current, col - 1, row - 1) // top-left39            }40        }41    }42    _cellId(y, x) {43        const startingIndex = 6544        const letter = String.fromCharCode(y + startingIndex)45        return `${letter}${x}`46    }47    _connect(node, y, x) {48        this.graph.connect(node, this._cellId(y, x))49    }...Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3    const context = await browser.newContext();4    const page = await context.newPage();5    await page.screenshot({ path: 'example.png' });6    await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10    const browserServer = await chromium._launchServer({ headless: false });11    console.log(browserServer.wsEndpoint());Using AI Code Generation
1const { _connect } = require('playwright/lib/client/connection.js');2const { chromium } = require('playwright');3(async () => {4  const browser = await _connect({5  });6  const page = await browser.newPage();7  await page.goto('Using AI Code Generation
1const playwright = require('playwright');2const { _connect } = require('playwright/lib/server/browserType');3const { BrowserType } = require('playwright/lib/server/browserType');4const { Browser } = require('playwright/lib/server/browser');5async function main() {6  const browserType = new BrowserType('chromium', playwright.chromium);7  const context = await browser.newContext();8  const page = await context.newPage();9  await page.screenshot({ path: 'example.png' });10  await browser.close();11}12main();13Hi, I am trying to use the _connect method of playwright in my project. I am able to connect to the browser and create a context and page. But I am not able to use the methods of the page. For example, I am not able to use the page.goto() method. I am getting the following error:14at ProgressController.run (/Users/abhaygupta/Projects/screencast/node_modules/playwright/lib/utils/progress.js:97:23)15at async Page.goto (/Users/abhaygupta/Projects/screencast/node_modules/playwright/lib/server/page.js:1058:29)16at async main (/Users/abhaygupta/Projects/screencast/test.js:13:5)17const playwright = require('playwright');18const { _connect } =Using AI Code Generation
1const { _connect } = require('playwright/lib/client/connection');2const { Playwright } = require('playwright/lib/client/playwright');3(async () => {4    const playwright = new Playwright();5    const browserServer = await playwright.chromium.launchServer();6    const transport = await _connect({7        wsEndpoint: browserServer.wsEndpoint(),8    });9    const browser = await playwright.chromium.connect({ transport });10    const page = await browser.newPage();11    await page.screenshot({ path: 'example.png' });12    await browser.close();13    await browserServer.close();14})();15const { _connect } = require('playwright/lib/client/connection');16const { Playwright } = require('playwright/lib/client/playwright');17(async () => {18    const playwright = new Playwright();19    const browserServer = await playwright.chromium.launchServer();20    const transport = await _connect({21        wsEndpoint: browserServer.wsEndpoint(),22    });23    const browser = await playwright.chromium.connect({ transport });24    const page = await browser.newPage();25    await page.screenshot({ path: 'example.png' });26    await browser.close();27    await browserServer.close();28})();29const { _connect } = require('playwright/lib/client/connection');30const { Playwright } = require('playwright/lib/client/playwright');31(async () => {32    const playwright = new Playwright();33    const browserServer = await playwright.chromium.launchServer();34    const transport = await _connect({35        wsEndpoint: browserServer.wsEndpoint(),36    });37    const browser = await playwright.chromium.connect({ transport });38    const page = await browser.newPage();39    await page.screenshot({ path: 'example.png' });40    await browser.close();41    await browserServer.close();42})();43const { _connect } = require('playwright/libUsing AI Code Generation
1const { chromium } = require('playwright');2const { _connect } = require('playwright/lib/server/chromium');3const browser = await _connect({4  });5const context = await browser.newContext();6const page = await context.newPage();7const { connect } = require('playwright');8const browser = await connect({9  });10const context = await browser.newContext();11const page = await context.newPage();Using AI Code Generation
1const { _connect } = require('playwright/lib/server/chromium');2const { BrowserContext } = require('playwright/lib/server/browserContext');3const browser = await _connect({ wsEndpoint });4const context = await browser.newContext();5const { _createContext } = require('playwright/lib/server/chromium');6const { BrowserContext } = require('playwright/lib/server/browserContext');7const browser = await chromium.launch();8const context = await _createContext(browser, {});9const { _createBrowser } = require('playwright/lib/server/chromium');10const { Browser } = require('playwright/lib/server/browser');11const browser = await _createBrowser('chromium', {});12const { _createBrowserServer } = require('playwright/lib/server/chromium');13const { BrowserServer } = require('playwright/lib/server/browserServer');14const browserServer = await _createBrowserServer('chromium', {});15const { _createBrowserFetcher } = require('playwright/lib/server/chromium');16const { BrowserFetcher } = require('playwright/lib/server/browserFetcher');17const browserFetcher = await _createBrowserFetcher('chromium', {});18const { _createBrowserType } = require('playwright/lib/server/chromium');19const { BrowserType } = require('playwright/lib/server/browserType');20const browserType = await _createBrowserType('chromium', {});21const { _createBrowserContext } = requireUsing AI Code Generation
1const { _connect } = require("playwright");2const browser = await _connect({3});4const page = await browser.newPage();5await page.screenshot({ path: "google.png" });6await browser.close();7const playwright = require("playwright");8const http = require("http");9const fs = require("fs");10const path = require("path");11const { promisify } = require("util");12const readFile = promisify(fs.readFile);13const writeFile = promisify(fs.writeFile);14const server = http.createServer(async (req, res) => {15  if (req.url === "/playwright") {16    const playwrightServer = await playwright._connectToServer({17    });18    const browser = await playwrightServer.chromium.launch();19    const page = await browser.newPage();20    const screenshot = await page.screenshot();21    await writeFile(path.join(__dirname, "google.png"), screenshot);22    await browser.close();23    await playwrightServer.close();24    res.writeHead(200, { "Content-Type": "image/png" });25    res.end(screenshot);26  } else {27    const client = await readFile(path.join(__dirname, "test.js"));28    res.writeHead(200, { "Content-Type": "text/javascript" });29    res.end(client);30  }31});32server.listen(3000, "localhost", () => {33});34module.exports = {35  webServer: {36  },37};38{39  "scripts": {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!!
