survey/templates/bench.ts
realaravinth 2609ade2a5
Setup ts compilation
- import frontend code from mCaptcha/benchs
- setup TS compilation workflow
- import vendor code from mCaptcha/mCaptcha/browser
- rewrite bench.js import in bundle.js to include file's hash
2021-10-12 14:02:34 +05:30

46 lines
1.3 KiB
TypeScript

/*
* mCaptcha is a PoW based DoS protection software.
* This is the frontend web component of the mCaptcha system
* Copyright © 2021 Aravinth Manivnanan <realaravinth@batsense.net>.
*
* Use of this source code is governed by Apache 2.0 or MIT license.
* You shoud have received a copy of MIT and Apache 2.0 along with
* this program. If not, see <https://spdx.org/licenses/MIT.html> for
* MIT or <http://www.apache.org/licenses/LICENSE-2.0> for Apache.
*/
import {gen_pow} from 'mcaptcha-browser';
import {Perf} from './types';
type PoWConfig = {
string: string;
difficulty_factor: number;
salt: string;
};
const SALT = '674243647f1c355da8607a8cdda05120d79ca5d1af8b3b49359d056a0a82';
const PHRASE = '6e2a53dbc7d307970d7ba3c0000221722cb74f1c325137251ce8fa5c2240';
const config: PoWConfig = {
string: PHRASE,
difficulty_factor: 1,
salt: SALT,
};
console.debug('worker registered');
onmessage = function(event) {
console.debug('message received at worker');
let difficulty_factor = parseInt(event.data);
config.difficulty_factor = difficulty_factor;
const t0 = performance.now();
gen_pow(config.salt, config.string, config.difficulty_factor);
const t1 = performance.now();
const time = t1 - t0;
let msg: Perf = {
difficulty: difficulty_factor,
time: time,
};
postMessage(msg);
};