There are two options for decoding a Data URI. The first is using the String extension and the second is by using the DataURIParser directly.
The String method
This method is by far the easiest to use. All you need to do is call .dataURIDecoded() throws -> (data: Bytes, type: String) on any Data URI encoded String.
import Core //just for `Bytes.string`
import DataURI
let uri = "data:,Hello%2C%20World!"
let (data, type) = try uri.dataURIDecoded()
print(data.string) // "Hello, World!"
print(type) // "text/plain;charset=US-ASCII"
The DataURIParser method
Using the parser is a bit more involved as it returns all of its results as Bytes.
import Core //just for `Bytes.string`
import DataURI
let uri = "data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E"
let (data, type, metadata) = try DataURIParser.parse(uri: uri)
print(data.string) // "<h1>Hello, World!</h1>"
print(type.string) // "text/html"
print(metadata == nil) // "true"
🏆 Credits
This package is developed and maintained by the Vapor team at Nodes.
The package owner for this project is Tom.
📄 License
This package is open-sourced software licensed under the MIT license
DataURI
A pure Swift parser for Data URIs.
📦 Installation
Update your
Package.swiftfile.Getting started 🚀
There are two options for decoding a Data URI. The first is using the
Stringextension and the second is by using theDataURIParserdirectly.The
StringmethodThis method is by far the easiest to use. All you need to do is call
.dataURIDecoded() throws -> (data: Bytes, type: String)on any Data URI encodedString.The
DataURIParsermethodUsing the parser is a bit more involved as it returns all of its results as
Bytes.🏆 Credits
This package is developed and maintained by the Vapor team at Nodes. The package owner for this project is Tom.
📄 License
This package is open-sourced software licensed under the MIT license