1 | 'use strict';
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | var MESSAGE_LEVEL = {
|
15 | ERROR: 'ERROR',
|
16 | WARN: 'WARN',
|
17 | INFO: 'INFO'
|
18 | };
|
19 |
|
20 | var _ = require('lodash');
|
21 | var err = require('./RTCodeError');
|
22 | var norm = err.RTCodeError.norm;
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | var context = {
|
28 |
|
29 | messages: [],
|
30 |
|
31 | color: true,
|
32 |
|
33 | cwd: process.cwd(),
|
34 | report: function report(msg) {
|
35 | console.log(msg);
|
36 | },
|
37 | verbose: function verbose(msg) {
|
38 | if (context.options.verbose) {
|
39 | console.log(msg);
|
40 | }
|
41 | },
|
42 | info: function info(msg, file, line, column) {
|
43 | context.issue(MESSAGE_LEVEL.INFO, msg, file, line, column);
|
44 | },
|
45 | warn: function warn(msg, file, line, column, startOffset, endOffset) {
|
46 | context.issue(MESSAGE_LEVEL.WARN, msg, file, line, column, startOffset, endOffset);
|
47 | },
|
48 | error: function error(msg, file, line, column, startOffset, endOffset) {
|
49 | context.issue(MESSAGE_LEVEL.ERROR, msg, file, line, column, startOffset, endOffset);
|
50 | },
|
51 |
|
52 | |
53 |
|
54 |
|
55 |
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 | issue: function issue(level, msg, file, line, column, startOffset, endOffset) {
|
62 | context.messages.push({ level: level, msg: msg, file: file || null, line: norm(line), column: norm(column), index: norm(startOffset), startOffset: norm(startOffset), endOffset: norm(endOffset) });
|
63 | },
|
64 | getMessages: function getMessages() {
|
65 | return context.messages;
|
66 | },
|
67 | clear: function clear() {
|
68 | context.messages = [];
|
69 | },
|
70 | hasErrors: function hasErrors() {
|
71 | return _.some(context.messages, { level: MESSAGE_LEVEL.ERROR });
|
72 | },
|
73 |
|
74 | options: {
|
75 | verbose: false,
|
76 | outFile: null,
|
77 | format: 'stylish'
|
78 | },
|
79 | MESSAGE_LEVEL: MESSAGE_LEVEL
|
80 | };
|
81 |
|
82 | module.exports = context; |
\ | No newline at end of file |