Socket
Socket
Sign inDemoInstall

datauri

Package Overview
Dependencies
4
Maintainers
3
Versions
37
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.0.0 to 3.0.0

index.d.ts

42

index.js

@@ -1,34 +0,10 @@

'use strict';
const Api = require('./api');
const ENC_TYPE = configSize => configSize > 1 ? 'encode' : 'encodeSync';
class DataURI extends Api {
constructor() {
super();
const configSize = arguments.length;
if (configSize) {
this[ENC_TYPE(configSize)].apply(this, arguments);
}
}
static promise(fileName) {
const datauri = new DataURI();
return new Promise((resolve, reject) => {
datauri.on('encoded', resolve)
.on('error', reject)
.encode(fileName);
});
}
static sync(fileName) {
const datauri = new DataURI(fileName);
return datauri.content;
}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
const parser_1 = __importDefault(require("./parser"));
function DataURIASync(fileName, handler) {
const parser = new parser_1.default();
return parser.encode(fileName, handler);
}
module.exports = DataURI;
module.exports = DataURIASync;

@@ -1,1 +0,1 @@

{"version":"2.0.0","maintainers":[{"name":"Helder Santana","email":"heldr@me.com","url":"http://heldr.com"},{"name":"Ruy Adorno","url":"http://ruyadorno.com"},{"name":"Caio Gondim","email":"me@caiogondim.com","url":"https://caiogondim.com"}],"repository":{"type":"git","url":"git://github.com/data-uri/datauri.git"},"engines":{"node":">= 4"},"keywords":["datauri","data uri","data","uri","data-uri","optimization","uri","optimize","inline","png","jpg","woff","base64"],"author":"Helder Santana","license":"MIT","name":"datauri","dependencies":{"image-size":"^0.7.3","mimer":"^1.0.0"},"description":"Create DataURI scheme easily"}
{"version":"3.0.0","maintainers":[{"name":"Helder Santana","email":"heldr@me.com","url":"http://heldr.com"},{"name":"Ruy Adorno","url":"http://ruyadorno.com"},{"name":"Caio Gondim","email":"me@caiogondim.com","url":"https://caiogondim.com"}],"repository":{"type":"git","url":"git://github.com/data-uri/datauri.git"},"engines":{"node":">= 8"},"keywords":["datauri","data uri","data","uri","data-uri","optimization","uri","optimize","inline","png","jpg","woff","base64"],"author":"Helder Santana","license":"MIT","name":"datauri","dependencies":{"image-size":"0.8.3","mimer":"1.1.0"},"description":"Create DataURI scheme easily"}

@@ -15,67 +15,25 @@ <h1 align="center">

[![Build Status](https://travis-ci.org/data-uri/datauri.svg?branch=master)](http://travis-ci.org/data-uri/datauri) [![Coverage Status](https://coveralls.io/repos/data-uri/datauri/badge.svg?branch=master&service=github)](https://coveralls.io/github/data-uri/datauri?branch=master) [![Dependency Status](https://www.versioneye.com/user/projects/560b7b3f5a262f001e0007e2/badge.svg?style=flat)](https://www.versioneye.com/user/projects/560b7b3f5a262f001e0007e2) [![NPM version](http://img.shields.io/npm/dm/datauri.svg?style=flat)](https://www.npmjs.org/package/datauri)
MODULE [![Build Status](https://travis-ci.org/data-uri/datauri.svg?branch=master)](http://travis-ci.org/data-uri/datauri)
-------
For Node 8+ compatibility:
MODULE
-------
`npm install --save datauri`
1. [From file path](#readable-stream)
* [Asynchronous](#readable-stream)
* [Readable Stream](#readable-stream)
* [Promise](#promise-node-012-works-with-es2016-asyncawait)
* [Callback](#callback)
* [Synchronous](#synchronous-class)
* [Class](#synchronous-class)
* [Function](#synchronous-function)
2. [From a Buffer](#from-a-buffer)
3. [From a String](#from-a-string)
4. [Method chaining](#method-chaining)
5. [Task plugins using datauri](#tools-using-datauri)
* [npm script](#npm-script)
* [gulp](#gulp)
* [grunt](#grunt)
6. [Develop](#develop)
7. [License](#license)
8. [ChangeLog](https://github.com/data-uri/datauri/releases)
9. [Tools using datauri](https://github.com/data-uri/datauri/blob/master/README.md#tools-using-datauri)
### Getting started
By default, datauri module returns a promise, which is resolved with `data:uri` string or rejected with file read error:
### Readable Stream
```js
const Datauri = require('datauri');
const datauri = new Datauri();
const datauri = require('datauri');
datauri.pipe(process.stdout);
datauri.encode('test/myfile.png');
```
const content = await datauri('test/myfile.png');
```js
const Datauri = require('datauri');
const datauri = new Datauri();
datauri.on('encoded', content => console.log(content));
//=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...";
datauri.on('error', err => console.log(err));
datauri.encode('test/myfile.png');
console.log(content)
//=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
```
### Promise (works with es2016 async/await)
### Callback style and meta data
```js
'use strict';
const datauri = require('datauri');
const DataURI = require('datauri').promise;
// babelers: import { promise as DataURI } from 'datauri';
DataURI('test/myfile.png')
.then(content => console.log(content))
//=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
.catch(err => { throw err; });
```
### Callback
```js
const DataURI = require('datauri');
const datauri = new DataURI();
datauri.encode('test/myfile.png', (err, content) => {
datauri('test/myfile.png', (err, content, meta) => {
if (err) {

@@ -87,6 +45,6 @@ throw err;

console.log(this.mimetype); //=> "image/png"
console.log(this.base64); //=> "iVBORw0KGgoAAAANSUhEUgAA..."
console.log(this.getCSS()); //=> "\n.case {\n background-image: url('data:image/png;base64,iVBORw..."
console.log(this.getCSS({
console.log(meta.mimetype); //=> "image/png"
console.log(meta.base64); //=> "iVBORw0KGgoAAAANSUhEUgAA..."
console.log(meta.getCSS()); //=> "\n.case {\n background-image: url('data:image/png;base64,iVBORw..."
console.log(meta.getCSS({
class: "myClass",

@@ -97,56 +55,27 @@ width: true,

});
```
### Synchronous calls
### Synchronous Class
If DataURI class is instanciated with a file path, the same will be processed synchronously.
```js
const Datauri = require('datauri');
let datauri = new Datauri('test/myfile.png');
const Datauri = require('datauri/sync');
const meta = Datauri('test/myfile.png');
console.log(datauri.content); //=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
console.log(datauri.mimetype); //=> "image/png"
console.log(datauri.base64); //=> "iVBORw0KGgoAAAANSUhEUgAA..."
console.log(datauri.getCSS()); //=> "\n.case {\n background-image: url('data:image/png;base64,iVBORw..."
console.log(datauri.getCSS("myClass")); //=> "\n.myClass {\n background-image: url('data:image/png;base64,iVBORw..."
console.log(meta.content); //=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
console.log(meta.mimetype); //=> "image/png"
console.log(meta.base64); //=> "iVBORw0KGgoAAAANSUhEUgAA..."
console.log(meta.getCSS()); //=> "\n.case {\n background-image: url('data:image/png;base64,iVBORw..."
console.log(meta.getCSS("myClass")); //=> "\n.myClass {\n background-image: url('data:image/png;base64,iVBORw..."
```
### Synchronous Function
```js
const Datauri = require('datauri').sync;
console.log(Datauri('test/myfile.png')); //=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
```
or for ES2015/6 lovers
```js
import { sync as DataURI } from 'datauri';
console.log(DataURI('test/myfile.png')); //=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
```
### From a Buffer
If you already have your file as a Buffer, use this. It's much faster than passing a string.
If you already have a file Buffer, that's the way to go:
```js
const Datauri = require('datauri'),
const datauri = new Datauri();
const DatauriParser = require('datauri/parser');
const parser = new DatauriParser();
//...
const buffer = fs.readFileSync('./hello');
//...
datauri.format('.png', buffer);
console.log(datauri.content); //=> "data:image/png;base64,eGtjZA=="
console.log(datauri.mimetype); //=> "image/png"
console.log(datauri.base64); //=> "eGtjZA=="
console.log(datauri.getCSS({
class: "myClass",
width: true,
height: true
})); //=> adds image width and height and custom class name
parser.format('.png', buffer); //=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
```

@@ -156,36 +85,9 @@

```js
const DataURI = require('datauri');
const datauri = new Datauri();
const DatauriParser = require('datauri/parser');
const parser = new DatauriParser();
datauri.format('.png', 'xkcd');
console.log(datauri.content); //=> "data:image/png;base64,eGtjZA=="
console.log(datauri.mimetype); //=> "image/png"
console.log(datauri.base64); //=> "eGtjZA=="
console.log(datauri.getCSS({
class: "myClass",
width: true,
height: true
})); //=> adds image width and height and custom class name
parser.format('.png', 'xkcd'); //=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
```
#### Method chaining
```js
//...
datauri
.on('encoded', content => {
console.log(content); //=> "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
console.log(this.mimetype); //=> "image/png"
console.log(this.base64); //=> "iVBORw0KGgoAAAANSUhEUgAA..."
console.log(this.getCSS()); //=> "\n.case {\n background-image: url('data:image/png;base64,iVBORw..."
console.log(this.getCSS({
class: "myClass"
}); //=> "\n.myClass {\n background-image: url('data:image/png;base64,iVBORw..."
})
.on('error', err => console.error(err))
.encode('test/myfile.png');
```
DEVELOP
Contribute
-------

@@ -203,9 +105,21 @@

## [ChangeLog](https://github.com/data-uri/datauri/releases)
## Requirements
Node.js 4+
Node.js 8+
Previous Node versions and deprecated features:
`npm install --save datauri@2`
docs: https://github.com/data-uri/datauri/blob/v2.0.0/docs/datauri.md
## License
MIT License
(c) [Data-URI.js](http://github.com/data-uri)
(c) [Data-URI.js](https://github.com/data-uri)
(c) [Helder Santana](https://heldr.com)
'use strict';
const TAB = ' ';
const SIZE_PROPS = key => /(width|height|background\-size)/g.test(key);
const PROP_VALUE =
(size, key) => (key === 'background-size') ?
const PROP_VALUE = (size, key) => (key === 'background-size') ?
`${size.width}px ${size.height}px`
:`${size[key]}px`;
: `${size[key]}px`;
const PROP_SIZE = (size, key) => `${TAB}${key}: ${PROP_VALUE(size, key)};`;
const BASE_CSS = (data) => [
'',
`.${data.class.replace(/\s+/gi, '_')} {`,
`${TAB}background-image: url('${data.background}');`
'',
`.${data.class.replace(/\s+/gi, '_')} {`,
`${TAB}background-image: url('${data.background}');`
];
const SIZE =
data => Object.keys(data).filter(SIZE_PROPS).map(PROP_SIZE.bind(null, data.dimensions));
const SIZE = data => Object.keys(data).filter(SIZE_PROPS).map(PROP_SIZE.bind(null, data.dimensions));
module.exports = data => BASE_CSS(data).concat(SIZE(data), ['}']).join('\n');
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc