ipfs storage for images and other nontext items. for use with etica - runs on etica network and currencys
https://collect.etica-stats.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
828 B
38 lines
828 B
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' ] |
|
};
|
|
|