16 lines
456 B
TypeScript
16 lines
456 B
TypeScript
|
/**
|
||
|
* Internal webcrypto alias.
|
||
|
* We prefer WebCrypto aka globalThis.crypto, which exists in node.js 16+.
|
||
|
* Falls back to Node.js built-in crypto for Node.js <=v14.
|
||
|
* See utils.ts for details.
|
||
|
* @module
|
||
|
*/
|
||
|
// @ts-ignore
|
||
|
import * as nc from 'node:crypto';
|
||
|
export const crypto: any =
|
||
|
nc && typeof nc === 'object' && 'webcrypto' in nc
|
||
|
? (nc.webcrypto as any)
|
||
|
: nc && typeof nc === 'object' && 'randomBytes' in nc
|
||
|
? nc
|
||
|
: undefined;
|