1 | 'use strict';
|
2 |
|
3 | require('global-or-local').install([
|
4 | 'nsfw',
|
5 | 'rollup',
|
6 | 'tarima-browser-sync',
|
7 | 'tarima-bower',
|
8 | 'tarima-lr',
|
9 | 'tarima-juice',
|
10 | 'talavera',
|
11 | 'node-notifier',
|
12 | 'csso',
|
13 | 'terser',
|
14 | ].concat(require('./support').getDependencies()));
|
15 |
|
16 | const fs = require('fs');
|
17 |
|
18 | const merge = require('./helpers/merge');
|
19 | const _parse = require('./helpers/parse');
|
20 | const render = require('./helpers/render');
|
21 | const bundler = require('./helpers/bundler');
|
22 |
|
23 | const postFilters = require('./helpers/post-filters');
|
24 |
|
25 | function partial(params) {
|
26 | return (locals, cb) => {
|
27 | if (typeof locals === 'function') {
|
28 | cb = locals;
|
29 | locals = {};
|
30 | }
|
31 |
|
32 | params.locals = merge({}, params.locals, locals);
|
33 |
|
34 | const end = postFilters(params, cb);
|
35 |
|
36 | render(params, end);
|
37 | };
|
38 | }
|
39 |
|
40 | module.exports = {
|
41 | load(filename, options) {
|
42 | return this.parse(filename, fs.readFileSync(filename).toString(), options);
|
43 | },
|
44 | parse(filename, source, options) {
|
45 | const params = _parse(filename, source, options);
|
46 |
|
47 | return {
|
48 | params,
|
49 | render: partial(params),
|
50 | bundle: bundler(params, options),
|
51 | };
|
52 | },
|
53 | };
|