-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.js
70 lines (57 loc) · 2.13 KB
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// To run, install devDependencies plus `imagemin-jpegtran`
var levelvinyl = require('./')
, level = require('level-test')()
, sublevel = require('level-sublevel')
, buffer = require('vinyl-buffer')
, imagemin = require('imagemin-jpegtran')()
, vfs = require('vinyl-fs')
// Create database
var db = level();
var sdb = sublevel(db, { valueEncoding: 'json'});
var vinylDb = levelvinyl(sdb, './example/blobs')
// Create a sublevel for minified images
var min = vinylDb.subvinyl('minified').dest('/')
var main = vinylDb.dest('/')
vfs.src('*.jpg') // file.contents is a buffer
.pipe(main) // save to db
.pipe(imagemin()) // minify
.pipe(min) // save minified to db
.on('end', reversed)
function reversed() {
// Same thing, other way around
var min = vfs.dest('./example/minified')
var main = vfs.dest('./example')
vinylDb.src('*.jpg') // file.contents is a stream
.pipe(main) // copy to fs
.pipe(buffer()) // imagemin wants buffers
.pipe(imagemin()) // minify
.pipe(min) // copy minified to fs
.on('end', verify)
}
function verify() {
console.log('verifying that this example works..\n')
var fs = require('fs')
fs.exists('./example/example.jpg', function(exists){
log('fs', './example/example.jpg', exists)
})
fs.exists('./example/minified/example.jpg', function(exists){
log('fs', './example/minified/example.jpg', exists)
})
vinylDb.get('/example.jpg', function(err, file){
log('db', '/example.jpg', !!file)
file && vinylDb.getBlobStore().exists({key: file.digest}, function(err, exists){
log('blobs', file.digest.slice(0,10)+'..', exists)
})
})
var min = vinylDb.subvinyl('minified')
min.get('/example.jpg', function(err, file){
log('minified sublevel', '/example.jpg', !!file)
file && min.getBlobStore().exists({key: file.digest}, function(err, exists){
log('minified blobs', file.digest.slice(0,10)+'..', exists)
})
})
function log(store, subject, exists) {
if (exists) console.log('ok. %s has "%s"', store, subject)
else console.log('not ok! %s does not have "%s"', store, subject)
}
}