Skip to content

Chaldeas is a library that can automatically launch Chrome as headless mode and Provide Devtools Protocol API at node.js

License

Notifications You must be signed in to change notification settings

teitei-tk/Chaldeas

Repository files navigation

Chaldeas

Chaldeas is a library that can automatically launch Chrome as Headless mode and Provide Devtools Protocol API at node.js

npm version Document Docker Automated buil Docker Build Statu

Dependency

  • Node 6.10.3 or later
  • GoogleChrome Version59 later or Canary
  • babel-runtime 6.23.0 or later
  • chrome-remote-interface 0.22.0 or later
  • lighthouse 1.6.5 or later
  • chrome-remote-interface-flowtype 0.1.2 or later

Architecture

  • AsyncAwait Support (babel-preset-es2017)
  • flowtype Support
  • eslint

API Document

Example

Print Page PDF

$ yarn add --dev chaldeas
import { writeFile } from 'fs';
import Chaldeas from 'chaldeas';

async function main() {
  const chaldeas = Chaldeas.new();

  try {
    const protocol = await chaldeas.fetchProtocol();

    const { Page, Network } = protocol;
    await Promise.all([
      Page.enable(),
      Network.enable(),
    ]);

    await Page.navigate({ url: 'https://github.com' });

    await Page.loadEventFired(async () => {
      const result = await Page.printToPDF();
      const fileName = (new Date()).getTime();
      const buffer = Buffer.from(result.data, 'base64');
      writeFile(`${fileName}.pdf`, buffer, (e) => {
        if (e) {
          throw e;
        }
      });

      await chaldeas.terminate();
    });
  } catch (error) {
    await chaldeas.terminate();
    console.error(error);
  }
}

main();

Development

  1. install npm modules
    • $ yarn
  2. Docker
  • $ yarn chrome:launch // alias of `yarn build; docker run -it -d --rm --name chaldeas --shm-size=1024m --cap-add=SYS_ADMIN -v `pwd`:/data teitei/chaldeas;`
    $ docker attach chaldeas
    
    root@ebcb835b0fcc:/data# ./node_modules/.bin/babel-node example/printPdf.js
    root@ebcb835b0fcc:/data# ls
    1497018362340.pdf  LICENSE    example  node_modules  src             yarn.lock
    Dockerfile         README.md  lib      package.json  yarn-error.log

Contributing

Bug reports and pull requests are welcome :) on GitHub at https://github.com/teitei-tk/Chaldeas.

Reference

LICENSE

Apache License 2.0

About

Chaldeas is a library that can automatically launch Chrome as headless mode and Provide Devtools Protocol API at node.js

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published