make TextEncoder/Decoder creation lazy for polyfill to work
This commit is contained in:
parent
50bbaa40db
commit
e2287d6d5b
@ -19,7 +19,6 @@
|
||||
*/
|
||||
import os from "os";
|
||||
import fs from "fs";
|
||||
import * as clk from "./clk.js";
|
||||
import { deepStrictEqual } from "assert";
|
||||
// Polyfill for encoding which isn't present globally in older nodejs versions
|
||||
import { TextEncoder, TextDecoder } from "util";
|
||||
@ -27,6 +26,7 @@ import { TextEncoder, TextDecoder } from "util";
|
||||
global.TextEncoder = TextEncoder;
|
||||
// @ts-ignore
|
||||
global.TextDecoder = TextDecoder;
|
||||
import * as clk from "./clk.js";
|
||||
import { getTestInfo, runTests } from "./integrationtests/testrunner.js";
|
||||
import {
|
||||
PreparePayResultType,
|
||||
|
@ -18,22 +18,13 @@
|
||||
* Native implementation of GNU Taler crypto.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Imports.
|
||||
*/
|
||||
import * as nacl from "./primitives/nacl-fast.js";
|
||||
import bigint from "big-integer";
|
||||
import { kdf } from "./primitives/kdf.js";
|
||||
|
||||
// @ts-ignore
|
||||
const decoder = new TextDecoder();
|
||||
if (typeof decoder !== "object") {
|
||||
throw Error("FATAL: TextDecoder not available");
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
const encoder = new TextEncoder();
|
||||
if (typeof encoder !== "object") {
|
||||
throw Error("FATAL: TextEncoder not available");
|
||||
}
|
||||
|
||||
export function getRandomBytes(n: number): Uint8Array {
|
||||
return nacl.randomBytes(n);
|
||||
}
|
||||
@ -203,11 +194,22 @@ function kdfMod(
|
||||
}
|
||||
}
|
||||
|
||||
let encoder: any;
|
||||
let decoder: any;
|
||||
|
||||
export function stringToBytes(s: string): Uint8Array {
|
||||
if (!encoder) {
|
||||
// @ts-ignore
|
||||
encoder = new TextEncoder();
|
||||
}
|
||||
return encoder.encode(s);
|
||||
}
|
||||
|
||||
export function bytesToString(b: Uint8Array): string {
|
||||
if (!decoder) {
|
||||
// @ts-ignore
|
||||
decoder = new TextDecoder();
|
||||
}
|
||||
return decoder.decode(b);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user