A pure Swift parser for Data URIs.
Update your Package.swift
file.
.package(url: "https://github.com/nodes-vapor/data-uri.git", from: "2.0.0")
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.
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"
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"
This package is developed and maintained by the Vapor team at Nodes. The package owner for this project is Tom.
This package is open-sourced software licensed under the MIT license