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.swift
file.Getting started 🚀
There are two options for decoding a Data URI. The first is using the
String
extension and the second is by using theDataURIParser
directly.The
String
methodThis 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
DataURIParser
methodUsing 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