https://github.com/strongloop/strong-data-uri
Parser and encoder for `data:` URIs
https://github.com/strongloop/strong-data-uri
Last synced: 9 months ago
JSON representation
Parser and encoder for `data:` URIs
- Host: GitHub
- URL: https://github.com/strongloop/strong-data-uri
- Owner: strongloop
- License: other
- Created: 2013-09-11T18:31:53.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-01-26T16:48:25.000Z (about 3 years ago)
- Last Synced: 2025-04-07T01:05:05.393Z (10 months ago)
- Language: JavaScript
- Homepage:
- Size: 53.7 KB
- Stars: 13
- Watchers: 22
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# strong-data-uri
[](https://travis-ci.org/strongloop/strong-data-uri)
[](http://badge.fury.io/js/strong-data-uri)
## Overview
strong-data-uri implements a parser for retrieving data encoded
in `data:` URIs specified by [RFC2397](http://www.ietf.org/rfc/rfc2397.txt),
as well as an encoder for those URIs.
## API
- [decode](#decodeuri)
- [encode](#encodedata-mediatype)
### decode(uri)
Call `dataUri.decode(uri)` to parse the payload of a data URI. The `uri`
argument expects a string.
```js
var dataUri = require('strong-data-uri');
var uri = 'data:text/plain;charset=iso-8859-1;base64,aGVsbG8gd29ybGQ=';
var buffer = dataUri.decode(uri);
console.log(buffer);
//
console.log(buffer.toString('ascii'));
// Hello world
console.log(buffer.mimetype); // text/plain
console.log(buffer.mediatype); // text/plain;charset=iso-8859-1
console.log(buffer.charset); // iso-8859-1
```
### encode(data, [mediatype])
Use `dataUri.encode(data, mediatype)` to build a new data URI. The `data`
argument can be a `Buffer` or a `String`. Strings are converted to buffers
using `utf-8` encoding.
If `mediatype` is not specified, then `application/octet-stream` is used
as a default if the data is a Buffer, and `text/plain;charset=UTF-8` if
the data is a String.
```js
var dataUri = require('strong-data-uri');
uri = dataUri.encode('foo');
console.log(uri);
// data:text/plain;charset=UTF-8;base64,Zm9v
uri = dataUri.encode(new Buffer('', 'utf8'), 'text/xml');
console.log(uri);
// data:text/xml;base64,PGZvby8+
```
## Command-line access
To keep this project small and light, no command-line tool is provided. If you
need one, please consider [data-colon](https://github.com/hildjj/data-colon).