| import { Mint } from 'mint-filter'; | |
| import { parentPort } from 'worker_threads'; | |
| import type { MintWorkerInput, MintWorkerOutput } from './types'; | |
| if (parentPort) { | |
| let mint = new Mint([]); | |
| parentPort.on('message', (data: MintWorkerInput) => { | |
| let reply: MintWorkerOutput; | |
| switch (data.type) { | |
| case 'set-keys': { | |
| mint = new Mint(data.keys); | |
| reply = { type: 'set-keys' }; | |
| break; | |
| } | |
| case 'filter': { | |
| reply = { | |
| type: 'filter', | |
| data: mint.filter(data.text, { replace: data.replace }), | |
| }; | |
| break; | |
| } | |
| case 'verify': { | |
| reply = { | |
| type: 'verify', | |
| pass: mint.verify(data.text), | |
| }; | |
| break; | |
| } | |
| } | |
| parentPort.postMessage(reply); | |
| }); | |
| } | |