summaryrefslogtreecommitdiffstats
path: root/lib/output/generateBook.js
blob: 3f04875435a436224bc0bacdbb04f5ba98687d06 (plain)
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
var Parse = require('../parse');

/**
    List all assets for a book

    @param {Book} book
    @param {Map<String:Page>} pages
    @param
*/
function listAssets(book, pages) {
    var fs = book.getContentFS();

    return fs.listAllFiles()
    .then(function(files) {
        return files.filterNot(function(file) {
            return (
                book.isContentFileIgnored(file) ||
                pages.has(file)
            );
        });
    });
}


/**
    Generate a book using a generator

    @param {Generator} generator
    @param {Book} book

    @return {Promise}
*/
function generateBook(generator, book) {
    // List all parsable pages
    return Parse.parsePagesList(book)
    .then(function(pages) {
        return listAssets(book, pages);
    });
}


module.exports = generateBook;