function extract(data) { data.forEach(function (item) { let extension = path.extname(item); if (extension === ".svg") { let fileName = item.replace(/-([a-z])/g, function (i) { return i[1].toUpperCase(); }); let fileData = fs.readFileSync("./icons/" + item).toString(); let dom = new JSDOM(fileData); let svgDefs = dom.window.document.querySelector("defs"); if(svgDefs != undefined){ dom.window.document.querySelector("svg").removeChild(svgDefs); } let svgStyle= dom.window.document.querySelector("style"); if(svgStyle != undefined){ dom.window.document.querySelector("svg").removeChild(svgStyle); } let svgTitle = dom.window.document.querySelector("title"); if(svgTitle != undefined){ dom.window.document.querySelector("svg").removeChild(svgTitle); } let fileDataCore = dom.window.document.querySelector("svg").innerHTML.replace(/\n/g, ""); svgObject[fileName.slice(0, -4)] = fileDataCore; } }); }
function requestTopTeamsByLeague(leagueId, amount, callback) { request(`https://www.skysports.com/${leagueId}-table`, (err, res, body) => { if (err) { console.log('error: ', err); return; } const dom = new jsdom.JSDOM(body); const top = getTopTeams(dom, 5); callback(top); }); }
toBuffer (mime = 'image/png') { return this.toBlob(mime) .then(blob => new Promise((resolve, reject) => { const reader = new this.window.FileReader() reader.onload = function (){ const buffer = new Buffer(reader.result) resolve(buffer) } reader.readAsArrayBuffer(blob) })) .catch(console.error) }
jsdom.jQueryify(window, jqueryPath, function() { var $ = window.$; $('.book').each(function() { var $el = $(this); console.log({ title: $el.find('h2').text(), author: $el.find('h3').text() }); }); });
ipc.on('inviteUrl', function (event, steamid) { request('https://steamcommunity.com/profiles/' + steamid, function (err, resp, body) { if (!err && resp.statusCode === 200) { let dom = new JSDOM(body, { runScripts: "outside-only" }) let joinBtn = dom.window.document.querySelector('.profile_in_game_joingame a'); event.sender.send('inviteUrl', (joinBtn !== null) ? joinBtn.href : '') } }) })
function createDOM(done) { jsdom.env( '<html><body></body></html>', ["http://code.jquery.com/jquery.js"], function (err, window) { global.document = window.document; global.window = window; global.$ = window.jQuery; done(); } ); }
jsdom.env( URL, [ '//code.jquery.com/jquery.js' ], function (err, window) { console.log(window.$('.author a span').text() + '/' + window.$('.js-current-repository').text()); } );
context('without options', function() { before(function() { const resourceLoader = new jsdom.ResourceLoader({userAgent: USER_AGENT_IPHONE_IOS9}); global.window = new JSDOM('<html></html>', { resource: resourceLoader }).window; global.document = window.document; global.getComputedStyle = global.document.defaultView.getComputedStyle; smartbanner = new SmartBanner(); }); it('expected to throw error', function() { expect(() => smartbanner.publish()).to.throw('No options detected. Please consult documentation.'); }); });