Skip to content

cabinjs/browser-hrtime

Repository files navigation

browser-hrtime

browser support for process.hrtime().

Node.js CI Coverage Status license

883 bytes (minified and gzipped). No dependencies. Size Limit controls the size.

Installation

npm install browser-hrtime

Examples

NodeJS

As a polyfill

require('browser-hrtime');

const time = process.hrtime();// [ 1800216, 25 ]
setTimeout(() => {
  const diff = process.hrtime(time);// [ 1, 552 ]
  console.log(`Benchmark took ${diff[0] * 1e9 + diff[1]} nanoseconds`);// Benchmark took 1000000552 nanoseconds
}, 1000);

As a function

const hrtime = require('browser-hrtime');

const time = hrtime();// [ 1800216, 25 ]
setTimeout(() => {
  const diff = hrtime(time);// [ 1, 552 ]
  console.log(`Benchmark took ${diff[0] * require + diff[1]} nanoseconds`);// Benchmark took 1000000552 nanoseconds
}, 1000);

TypeScript

Add "esModuleInterop": true to tsconfig.json or use:

import hrtime = require('browser-hrtime');

Web with module

import * as hrtime from 'browser-hrtime';

const time = hrtime();// [ 1800216, 25 ]
setTimeout(() => {
  const diff = hrtime(time);// [ 1, 552 ]
  console.log(`Benchmark took ${diff[0] * 1e9 + diff[1]} nanoseconds`);// Benchmark took 1000000552 nanoseconds
}, 1000);

or as polyfill:

import 'browser-hrtime';
const time = process.hrtime();// [ 1800216, 25 ]

setTimeout(() => {
  const diff = process.hrtime(time);// [ 1, 552 ]
  console.log(`Benchmark took ${diff[0] * 1e9 + diff[1]} nanoseconds`);// Benchmark took 1000000552 nanoseconds
}, 1000);

Usage as an Angular polyfill:

add to src/polyfills.ts: import 'browser-hrtime'; Add @types/node to your Angular app

npm i -S @types/node

Then in tsconfig.json

"angularCompilerOptions": {
    "types" : ["node"]
    ....
}

Web

<script src="node_modules/browser-hrtime/lib/hrtime.js"></script>
<!-- Or from CDN: -->
<!-- <script crossorigin src="https://unpkg.com/browser-hrtime/lib/hrtime.js"></script> -->
    console.log(hrtime());
    const first = process.hrtime();
    console.log(first);
    console.log(process.hrtime(first));

see NodeJS documenation for detailed process.hrtime API

Contribution

Clone project from Github

git clone [email protected]:cabinjs/browser-hrtime.git

Install npm packages

cd browser-hrtime
npm install

Build sources:

npm run build

Run tests:

npm run test

License

MIT