(function (message) {
if (
message instanceof ArrayBuffer ||
ArrayBuffer.isView(message) ||
Array.isArray(message)
) {
return {
contentType: 'application/octet-stream',
data: message
}
} else {
const data = JSON.stringify(message, (_k, val) => {
const SERIALIZE_TO_IPC_FN = '__TAURI_TO_IPC_KEY__'
if (val instanceof Map) {
return Object.fromEntries(val.entries())
} else if (val instanceof Uint8Array) {
return Array.from(val)
} else if (val instanceof ArrayBuffer) {
return Array.from(new Uint8Array(val))
} else if (typeof val === "object" && val !== null && SERIALIZE_TO_IPC_FN in val) {
return val[SERIALIZE_TO_IPC_FN]()
} else if (
val instanceof Object &&
'__TAURI_CHANNEL_MARKER__' in val &&
typeof val.id === 'number'
) {
return `__CHANNEL__:${val.id}`
} else {
return val
}
})
return {
contentType: 'application/json',
data
}
}
})