2021-03-16 22:08:35 +01:00
|
|
|
import { Worker } from 'jest-worker'
|
2021-02-18 11:23:24 +01:00
|
|
|
import * as path from 'path'
|
|
|
|
import { execOnce } from '../../../lib/utils'
|
2021-03-18 16:51:36 +01:00
|
|
|
import { Operation, Encoding } from './impl'
|
2021-02-18 11:23:24 +01:00
|
|
|
|
|
|
|
const getWorker = execOnce(
|
|
|
|
() =>
|
2021-03-16 22:08:35 +01:00
|
|
|
new Worker(path.resolve(__dirname, 'impl'), {
|
2021-02-18 11:23:24 +01:00
|
|
|
enableWorkerThreads: true,
|
|
|
|
})
|
|
|
|
)
|
|
|
|
|
2021-03-18 16:51:36 +01:00
|
|
|
export { Operation }
|
2021-02-18 11:23:24 +01:00
|
|
|
|
2021-03-18 16:51:36 +01:00
|
|
|
export async function processBuffer(
|
|
|
|
buffer: Buffer,
|
|
|
|
operations: Operation[],
|
|
|
|
encoding: Encoding,
|
|
|
|
quality: number
|
2021-02-18 11:23:24 +01:00
|
|
|
): Promise<Buffer> {
|
|
|
|
const worker: typeof import('./impl') = getWorker() as any
|
2021-03-18 16:51:36 +01:00
|
|
|
return Buffer.from(
|
|
|
|
await worker.processBuffer(buffer, operations, encoding, quality)
|
|
|
|
)
|
2021-02-18 11:23:24 +01:00
|
|
|
}
|