all files / browser/ index.js

93.75% Statements 30/32
66.67% Branches 4/6
100% Functions 2/2
93.75% Lines 30/32
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      1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1× 1×   1× 5× 5×                     5× 5×   5× 5×   5×   5×             5×           5× 5×   5× 1× 1×     5×   5×     5×        
 
'use strict'
 
let buffer = require('mako-buffer')
let copy = require('mako-copy')
let css = require('mako-css')
let debug = require('debug')('mako-browser')
let defaults = require('defaults')
let html = require('mako-html')
let js = require('mako-js')
let output = require('mako-output')
let sourcemaps = require('mako-sourcemaps')
let stat = require('mako-stat')
let symlink = require('mako-symlink')
let write = require('mako-write')
 
module.exports = function (options) {
  debug('initialize %j', options)
  let config = defaults(options, {
    bundle: false,
    copy: false,
    css: null,
    js: null,
    output: 'build',
    resolve: null,
    sourceMaps: false,
    symlink: false
  })
 
  return function browser (mako) {
    let assets = [ css.images, css.fonts ]
 
    mako.use(stat([ 'html', 'js', 'json', 'css', assets ]))
    mako.use(buffer([ 'html', 'js', 'json', 'css' ]))
 
    mako.use(html())
 
    mako.use(js({
      bundle: config.bundle,
      extensions: config.js,
      resolveOptions: config.resolve,
      sourceMaps: !!config.sourceMaps
    }))
 
    mako.use(css({
      extensions: config.css,
      resolveOptions: config.resolve,
      sourceMaps: !!config.sourceMaps
    }))
 
    mako.use(output([ 'html', 'js', 'css', assets ], { dir: config.output }))
    mako.use(write([ 'html', 'js', 'css' ]))
 
    if (config.sourceMaps) {
      mako.use(sourcemaps([ 'js', 'css' ], { inline: config.sourceMaps === 'inline' }))
      mako.use(write('map', { force: true }))
    }
 
    Iif (config.copy) {
      mako.use(copy(assets, { force: config.copy === 'force' }))
    } else Iif (config.symlink) {
      mako.use(symlink(assets))
    } else {
      mako.use(buffer(assets), write(assets))
    }
  }
}