Skip to content

Latest commit

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

ecoindex

This Node.js module calculates a webpage's ecoindex

Installation

$ npm install https://github.com/cnumr/ecoindex_node/tarball/master

Usage

constecoindex=require('ecoindex');/** * dom = number of HTML elements in DOM * req = number of external requests (images, css, frames, etc.) * size = total size of the page (including external requests) in ko * returns an object containing the ecoindex score (number between 0 and 100, higher is better), the grade (letter between A and G), the greenhouse gas emission and the water consumption **/varindex=ecoindex.getEcoindex(dom,req,size);// { score: 89, grade: 'A', ghg: 1.22, water: 1.83 }

Full example with puppeteer :

constzlib=require('zlib');constpuppeteer=require('puppeteer');constecoindex=require('ecoindex');(async()=>{varurl='https://example.com';varbrowser=awaitpuppeteer.launch();varpage=awaitbrowser.newPage();// get number of external requestsvarreq=0;awaitpage.on('request',request=>{if(!request.url().startsWith('data:')){req++;}});// get total uncompressed sizevarsize=0;awaitpage.on('response',response=>{if(response.ok()){switch(response.headers()['content-encoding']){case'br':
response.buffer().then(buffer=>{zlib.brotliCompress(buffer,function(_,result){size+=result.length;});});break;case'gzip':
response.buffer().then(buffer=>{zlib.gzip(buffer,function(_,result){size+=result.length;});});break;case'deflate':
response.buffer().then(buffer=>{zlib.deflate(buffer,function(_,result){size+=result.length;});});break;default:
response.buffer().then(buffer=>{size+=buffer.length;});break;}}});awaitpage.goto(url);// get number of DOM elementsvardom=awaitpage.evaluate(()=>document.querySelectorAll('*').length);awaitbrowser.close();// calculate ecoindexvarindex=ecoindex.calculate(dom,req,Math.round(size/1024));process.stdout.write(index.toString());})();

About

Calculates a webpage ecoindex (from http://www.ecoindex.fr)

Resources

Stars

6 stars

Watchers

19 watching

Forks

Releases

Packages

Used by

Contributors

Languages