1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| import crypto from 'crypto';
| import URLSearchParams from './classes/URLSearchParams.js'
| import FormData from './classes/FormData.js'
|
| const ALPHA = 'abcdefghijklmnopqrstuvwxyz'
|
| const DIGIT = '0123456789';
|
| const ALPHABET = {
| DIGIT,
| ALPHA,
| ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT
| }
|
| const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {
| let str = '';
| const {length} = alphabet;
| const randomValues = new Uint32Array(size);
| crypto.randomFillSync(randomValues);
| for (let i = 0; i < size; i++) {
| str += alphabet[randomValues[i] % length];
| }
|
| return str;
| }
|
|
| export default {
| isNode: true,
| classes: {
| URLSearchParams,
| FormData,
| Blob: typeof Blob !== 'undefined' && Blob || null
| },
| ALPHABET,
| generateString,
| protocols: [ 'http', 'https', 'file', 'data' ]
| };
|
|