24 lines
659 B
TypeScript
24 lines
659 B
TypeScript
/// <reference lib="webworker" />
|
|
|
|
import { plainToClass } from 'class-transformer';
|
|
import { generateArray } from './faker';
|
|
import { Message, Parent } from './types';
|
|
|
|
let intervalId: any;
|
|
|
|
addEventListener('message', (message) => {
|
|
const timer = (message?.data as Message)?.timer ?? 300;
|
|
const size = (message?.data as Message)?.size ?? 1000;
|
|
const ids = (message?.data as Message)?.ids ?? [];
|
|
clearInterval(intervalId);
|
|
|
|
intervalId = setInterval(() => {
|
|
const rawItems = generateArray(size, ids);
|
|
const transformedItems = rawItems.map(
|
|
item => plainToClass(Parent, item),
|
|
)
|
|
|
|
postMessage(transformedItems);
|
|
}, timer);
|
|
});
|