UNPKG

1.83 kBJavaScriptView Raw
1'use strict';
2
3var utils = require('./utils');
4var plugins = require('lazy-cache')(require);
5var fn = require;
6require = plugins;
7
8/**
9 * Lazily required module dependencies
10 */
11
12require('assemble-loader', 'loader');
13require('base-argv', 'argv');
14require('base-cli-process', 'cli');
15require('base-config', 'config');
16require('base-runtimes', 'runtimes');
17require = fn;
18
19/**
20 * Add logging methods
21 */
22
23plugins.logger = function(options) {
24 return function() {
25 if (!utils.isValid(this, 'assemble-logger')) return;
26 function logger(prop, color) {
27 color = color || 'dim';
28 return function(msg) {
29 var rest = [].slice.call(arguments, 1);
30 return console.log
31 .bind(console, utils.log.timestamp + (prop ? (' ' + utils.log[prop]) : ''))
32 .apply(console, [utils.log[color](msg)].concat(rest));
33 };
34 };
35
36 Object.defineProperty(this, 'log', {
37 configurable: true,
38 get: function() {
39 function log() {
40 return console.log.apply(console, arguments);
41 }
42 log.path = function(msg) {
43 return logger(null, 'dim').apply(null, arguments);
44 };
45 log.time = function(msg) {
46 return logger(null, 'dim').apply(null, arguments);
47 };
48 log.warn = function(msg) {
49 return logger('warning', 'yellow').apply(null, arguments);
50 };
51 log.success = function() {
52 return logger('success', 'green').apply(null, arguments);
53 };
54
55 log.info = function() {
56 return logger('info', 'cyan').apply(null, arguments);
57 };
58
59 log.error = function() {
60 return logger('error', 'red').apply(null, arguments);
61 };
62 log.__proto__ = utils.log;
63 return log;
64 }
65 });
66 };
67};
68
69/**
70 * Expose `plugins`
71 */
72
73module.exports = plugins;