0b1d5e17bc
Instead of branching rendering based on Node.js and browser/web runtimes, we should just use the web version for now, which can run as-is on versions >=16.5.0 of Node.js, polyfilling `ReadableStream` on older versions when necessary. There are a few potential downsides to this, as React is less able to optimize flushing and execution. We can revisit that in the future though if desired.
21 lines
672 B
TypeScript
21 lines
672 B
TypeScript
import { Crypto as WebCrypto } from 'next/dist/compiled/@peculiar/webcrypto'
|
|
import { CryptoKey } from 'next/dist/compiled/@peculiar/webcrypto'
|
|
import { v4 as uuid } from 'next/dist/compiled/uuid'
|
|
import { ReadableStream } from './readable-stream'
|
|
|
|
import crypto from 'crypto'
|
|
|
|
export function atob(b64Encoded: string) {
|
|
return Buffer.from(b64Encoded, 'base64').toString('binary')
|
|
}
|
|
|
|
export function btoa(str: string) {
|
|
return Buffer.from(str, 'binary').toString('base64')
|
|
}
|
|
|
|
export { CryptoKey, ReadableStream }
|
|
|
|
export class Crypto extends WebCrypto {
|
|
// @ts-ignore Remove once types are updated and we deprecate node 12
|
|
randomUUID = crypto.randomUUID || uuid
|
|
}
|