-
Couldn't load subscription status.
- Fork 10
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
After enabling serialization for FileBox, we can transfer the FileBox on the wire.
Talk is cheap, show me the code
const fileBox = FileBox.fromQRCode('https://github.com')
const jsonText = JSON.stringify(fileBox)
// the above code equals to the following line of code:
// const jsonText = fileBox.toJSON()
// we will get the serialized data for this FileBox:
console.log(jsonText)
// restore our fleBox:
const newFileBox = FileBox.fromJSON(jsonText)Limitation
Because we want to enable the JSON.stringify(fileBox), which will call fileBox.toJSON(), so the toJSON() can not be async, which means we can only support limited FileBoxType(s):
- FileBoxType.Base64
- FileBoxType.Url
- FileBoxType.QRCode
For other types like FileBoxType.Flie, FileBoxType.Buffer, FileBoxType.Stream, etc, we need to transform them to FileBoxType.Base64 before we call toJSON:
const fileBoxBefore = FileBox.fromFile('./test.txt')
const base64 = await fileBoxBefore.toBase64()
const fileBoxAfter = FleBox.fromBase64(base64, 'test.txt')
// fileBoxAfter will be serializable
console.log(JSON.stringify(fileBoxAfter))Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request