mirror of
https://github.com/cupcakearmy/cryptgeon.git
synced 2026-09-26 20:41:45 +00:00
20 lines
563 B
TypeScript
20 lines
563 B
TypeScript
import type { WorkerConract } from '$lib/worker'
|
|
import { packContent, unpackContent } from '@cryptgeon/shared'
|
|
import { expose, transfer } from 'comlink'
|
|
|
|
const contract: WorkerConract = {
|
|
pack(input, password) {
|
|
const content = packContent(input, password)
|
|
return transfer(content, [content.data.buffer, content.extra.buffer, content.key.buffer])
|
|
},
|
|
unpack(data, key) {
|
|
const content = unpackContent(data, key)
|
|
return transfer(
|
|
content,
|
|
typeof content.data === 'string' ? [] : content.data.map((f) => f.data.buffer)
|
|
)
|
|
},
|
|
}
|
|
|
|
expose(contract)
|