tobase64-json is a fast way to convert files to base64 into a JSON like object.
$ npm install --save tobase64-json
// import the library
var Tobase64JSON = require('tobase64-json');
// your files directory to convert into base64
var dirPath = __dirname + '/whatever';
var base64json = new Tobase64JSON(dirPath).get();
// import the library
var Tobase64JSON = require('tobase64-json');
// these are actually the default options
var options = {
dataMimeType: true,
ignoreFiles: ['.DS_Store'],
keysExt: true,
recursive: true
};
// then can do it like one of these ways:
var base64json = new Tobase64JSON(dirPath, options).get();
var base64json = new Tobase64JSON(dirPath).setOptions(options).get();
- desc: prefix base64 width data mime type
- type: boolean
- default: true
- desc: files name to ignore
- type: array
- default: ['.DS_Store']
- desc: include files extensions in JSON keys or not
- type: boolean
- default: true
- desc: convert directory content recursively or not
- type: boolean
- default: true
new Tobase64JSON(__dirname + '/images').get();
{
'image1.jpg': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//...',
'image2.png': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAA...',
'directory': {
'image3.gif': 'data:image/gif;base64,R0lGODdhlgCWAOMAAAAAAP///z8/P9...'
},
'folder': {
'image1.jpg': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//...',
'image2.png': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAA...'
}
}
new Tobase64JSON(__dirname + '/images', { dataMimeType: false }).get();
{
'image1.jpg': '/9j/4AAQSkZJRgABAQAAAQABAAD//...',
'image2.png': 'iVBORw0KGgoAAAANSUhEUgAAADIAAA...',
'directory': {
'image3.gif': 'R0lGODdhlgCWAOMAAAAAAP///z8/P9...'
},
'folder': {
'image1.jpg': '/9j/4AAQSkZJRgABAQAAAQABAAD//...',
'image2.png': 'iVBORw0KGgoAAAANSUhEUgAAADIAAA...'
}
}
new Tobase64JSON(__dirname + '/images', { ignoreFiles: ['image1.jpg'] }).get();
{
'image2.png': 'iVBORw0KGgoAAAANSUhEUgAAADIAAA...',
'directory': {
'image3.gif': 'R0lGODdhlgCWAOMAAAAAAP///z8/P9...'
},
'folder': {
'image2.png': 'iVBORw0KGgoAAAANSUhEUgAAADIAAA...'
}
}
new Tobase64JSON(__dirname + '/images').setOptions({ keysExt: false }).get();
{
'image1': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//...',
'image2': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAA...',
'directory': {
'image3': 'data:image/gif;base64,R0lGODdhlgCWAOMAAAAAAP///z8/P9...'
},
'folder': {
'image1': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//...',
'image2': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAA...'
}
}
new Tobase64JSON(__dirname + '/images').setOptions({ recursive: false }).get();
{
'image1.jpg': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//...',
'image2.png': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAA...'
}