1 | var Logdown = require('./base')()
|
2 | var markdown = require('./markdown/browser')
|
3 | var isColorSupported = require('./util/is-color-supported/browser')
|
4 | var globalObject = require('./util/get-global')()
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | Logdown.prefixColors = [
|
13 | '#F2777A',
|
14 | '#F99157',
|
15 | '#FFCC66',
|
16 | '#99CC99',
|
17 | '#66CCCC',
|
18 | '#6699CC',
|
19 | '#CC99CC'
|
20 | ]
|
21 |
|
22 | Logdown._setPrefixRegExps = function () {
|
23 | try {
|
24 | if (
|
25 | globalObject.localStorage &&
|
26 | typeof globalObject.localStorage.getItem('debug') === 'string'
|
27 | ) {
|
28 | Logdown._prefixRegExps = []
|
29 |
|
30 | globalObject.localStorage
|
31 | .getItem('debug')
|
32 | .split(',')
|
33 | .forEach(function (str) {
|
34 | str = str.trim()
|
35 | var type = 'enable'
|
36 |
|
37 | if (str[0] === '-') {
|
38 | str = str.substr(1)
|
39 | type = 'disable'
|
40 | }
|
41 |
|
42 | var regExp = Logdown._prepareRegExpForPrefixSearch(str)
|
43 |
|
44 | Logdown._prefixRegExps.push({
|
45 | type: type,
|
46 | regExp: regExp
|
47 | })
|
48 | })
|
49 | }
|
50 | } catch (error) {}
|
51 | }
|
52 |
|
53 | Logdown._getNextPrefixColor = (function () {
|
54 | var lastUsed = 0
|
55 |
|
56 | return function () {
|
57 | lastUsed += 1
|
58 | return Logdown.prefixColors[lastUsed % Logdown.prefixColors.length]
|
59 | }
|
60 | })()
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 | Logdown.prototype._getDecoratedPrefix = function () {
|
67 | var decoratedPrefix = []
|
68 |
|
69 | if (isColorSupported()) {
|
70 | decoratedPrefix.push('%c' + this.opts.prefix + '%c ')
|
71 | decoratedPrefix.push(
|
72 | 'color:' + this.opts.prefixColor + '; font-weight:bold;',
|
73 | ''
|
74 | )
|
75 | } else {
|
76 | decoratedPrefix.push('[' + this.opts.prefix + '] ')
|
77 | }
|
78 |
|
79 | return decoratedPrefix
|
80 | }
|
81 |
|
82 | Logdown.prototype._prepareOutput = function (args) {
|
83 | var preparedOutput = this._getDecoratedPrefix()
|
84 | var parsedMarkdown
|
85 |
|
86 |
|
87 | if (typeof args[0] === 'string') {
|
88 | if (this.opts.markdown && isColorSupported()) {
|
89 | parsedMarkdown = markdown.parse(args[0])
|
90 | preparedOutput[0] = preparedOutput[0] + parsedMarkdown.text
|
91 | preparedOutput = preparedOutput.concat(parsedMarkdown.styles)
|
92 | } else {
|
93 | preparedOutput[0] = preparedOutput[0] + args[0]
|
94 | }
|
95 | } else {
|
96 | preparedOutput.push(args[0])
|
97 | }
|
98 |
|
99 | if (args.length > 1) {
|
100 | preparedOutput = preparedOutput.concat(args.slice(1))
|
101 | }
|
102 |
|
103 | return preparedOutput
|
104 | }
|
105 |
|
106 |
|
107 |
|
108 |
|
109 |
|
110 | Logdown._setPrefixRegExps()
|
111 |
|
112 | module.exports = Logdown
|