Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ed5cb6e

Browse files
committed
Refactoring es2016nify
1 parent a1c9e11 commit ed5cb6e

14 files changed

+152
-172
lines changed

lib/cache_stream.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
var Transform = require('stream').Transform;
3+
const { Transform } = require('stream');
44

55
function CacheStream() {
66
Transform.call(this);
@@ -11,7 +11,7 @@ function CacheStream() {
1111
require('util').inherits(CacheStream, Transform);
1212

1313
CacheStream.prototype._transform = function(chunk, enc, callback) {
14-
var buf = chunk instanceof Buffer ? chunk : Buffer.from(chunk, enc);
14+
const buf = chunk instanceof Buffer ? chunk : Buffer.from(chunk, enc);
1515

1616
this._cache.push(buf);
1717
this.push(buf);

lib/camel_case_keys.js

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
'use strict';
22

3-
var camelCase = require('camel-case');
3+
const camelCase = require('camel-case');
44

5-
var rPrefixUnderscore = /^(_+)/;
5+
const rPrefixUnderscore = /^(_+)/;
66

77
function getter(key) {
88
return function() {
@@ -19,17 +19,17 @@ function setter(key) {
1919
function camelCaseKeys(obj) {
2020
if (typeof obj !== 'object') throw new TypeError('obj must be an object!');
2121

22-
var keys = Object.keys(obj);
23-
var result = {};
22+
const keys = Object.keys(obj);
23+
const result = {};
2424

25-
for (var i = 0, len = keys.length; i < len; i++) {
26-
var key = keys[i];
27-
var value = obj[key];
28-
var match = key.match(rPrefixUnderscore);
29-
var newKey;
25+
for (let i = 0, len = keys.length; i < len; i++) {
26+
const key = keys[i];
27+
const value = obj[key];
28+
const match = key.match(rPrefixUnderscore);
29+
let newKey;
3030

3131
if (match) {
32-
var underscore = match[1];
32+
const underscore = match[1];
3333
newKey = underscore + camelCase(key.substring(underscore.length));
3434
} else {
3535
newKey = camelCase(key);
@@ -39,8 +39,12 @@ function camelCaseKeys(obj) {
3939
result[key] = value;
4040
} else {
4141
result[newKey] = value;
42-
result.__defineGetter__(key, getter(newKey));
43-
result.__defineSetter__(key, setter(newKey));
42+
Object.defineProperty(result, key, {
43+
get: getter(newKey),
44+
set: setter(newKey),
45+
configurable: true,
46+
enumerable: true
47+
});
4448
}
4549
}
4650

lib/escape_diacritic.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
var defaultDiacriticsRemovalap = [
3+
const defaultDiacriticsRemovalap = [
44
{'base': 'A', 'letters': '\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F'},
55
{'base': 'AA', 'letters': '\uA732'},
66
{'base': 'AE', 'letters': '\u00C6\u01FC\u01E2'},
@@ -89,12 +89,12 @@ var defaultDiacriticsRemovalap = [
8989
{'base': 'z', 'letters': '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763'}
9090
];
9191

92-
var diacriticsMap = {};
92+
const diacriticsMap = {};
9393

94-
for (var i = 0; i < defaultDiacriticsRemovalap.length; i++) {
95-
var letters = defaultDiacriticsRemovalap[i].letters.split('');
94+
for (let i = 0; i < defaultDiacriticsRemovalap.length; i++) {
95+
const letters = defaultDiacriticsRemovalap[i].letters.split('');
9696

97-
for (var j = 0; j < letters.length; j++) {
97+
for (let j = 0; j < letters.length; j++) {
9898
diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base;
9999
}
100100
}
@@ -104,9 +104,7 @@ function escapeDiacritic(str) {
104104

105105
// http://stackoverflow.com/a/18391901
106106
// eslint-disable-next-line no-control-regex
107-
return str.replace(/[^\u0000-\u007E]/g, function(a) {
108-
return diacriticsMap[a] || a;
109-
});
107+
return str.replace(/[^\u0000-\u007E]/g, a => diacriticsMap[a] || a);
110108
}
111109

112110
module.exports = escapeDiacritic;

lib/escape_html.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
var htmlEntityMap = {
3+
const htmlEntityMap = {
44
'&': '&amp;',
55
'<': '&lt;',
66
'>': '&gt;',
@@ -13,9 +13,7 @@ function escapeHTML(str) {
1313
if (typeof str !== 'string') throw new TypeError('str must be a string!');
1414

1515
// http://stackoverflow.com/a/12034334
16-
return str.replace(/[&<>"'/]/g, function(a) {
17-
return htmlEntityMap[a];
18-
});
16+
return str.replace(/[&<>"'/]/g, a => htmlEntityMap[a]);
1917
}
2018

2119
module.exports = escapeHTML;

lib/hash.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
'use strict';
22

3-
var Transform = require('stream').Transform;
4-
var crypto = require('crypto');
3+
const { Transform } = require('stream');
4+
const crypto = require('crypto');
55

6-
var ALGORITHM = 'sha1';
6+
const ALGORITHM = 'sha1';
77

88
function HashStream() {
99
Transform.call(this);
@@ -23,8 +23,8 @@ HashStream.prototype._flush = function(callback) {
2323
callback();
2424
};
2525

26-
exports.hash = function(content) {
27-
var hash = crypto.createHash(ALGORITHM);
26+
exports.hash = content => {
27+
const hash = crypto.createHash(ALGORITHM);
2828
hash.update(content);
2929
return hash.digest();
3030
};

lib/highlight.js

Lines changed: 47 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,71 @@
11
'use strict';
22

3-
var hljs = require('highlight.js/lib/highlight');
4-
var Entities = require('html-entities').XmlEntities;
5-
var entities = new Entities();
6-
var alias = require('../highlight_alias.json');
3+
const hljs = require('highlight.js/lib/highlight');
4+
const Entities = require('html-entities').XmlEntities;
5+
const entities = new Entities();
6+
const alias = require('../highlight_alias.json');
77

8-
function highlightUtil(str, options) {
8+
function highlightUtil(str, options = {}) {
99
if (typeof str !== 'string') throw new TypeError('str must be a string!');
10-
options = options || {};
1110

12-
var useHljs = options.hasOwnProperty('hljs') ? options.hljs : false;
13-
var gutter = options.hasOwnProperty('gutter') ? options.gutter : true;
14-
var wrap = options.hasOwnProperty('wrap') ? options.wrap : true;
15-
var firstLine = options.hasOwnProperty('firstLine') ? +options.firstLine : 1;
16-
var caption = options.caption;
17-
var mark = options.hasOwnProperty('mark') ? options.mark : [];
18-
var tab = options.tab;
11+
const useHljs = options.hasOwnProperty('hljs') ? options.hljs : false;
12+
const {
13+
gutter = true,
14+
firstLine = 1,
15+
caption,
16+
mark = [],
17+
tab
18+
} = options;
19+
let { wrap = true } = options;
1920

2021
hljs.configure({ classPrefix: useHljs ? 'hljs-' : ''});
2122

22-
var data = highlight(str, options);
23+
const data = highlight(str, options);
2324

2425
if (useHljs && !gutter) wrap = false;
2526

26-
var before = useHljs ? '<pre><code class="hljs ' + options.lang + '">' : '<pre>';
27-
var after = useHljs ? '</code></pre>' : '</pre>';
27+
const before = useHljs ? `<pre><code class="hljs ${options.lang}">` : '<pre>';
28+
const after = useHljs ? '</code></pre>' : '</pre>';
2829

2930
if (!wrap) return useHljs ? before + data.value + after : data.value;
3031

31-
var lines = data.value.split('\n');
32-
var numbers = '';
33-
var content = '';
34-
var result = '';
35-
var line;
32+
const lines = data.value.split('\n');
33+
let numbers = '';
34+
let content = '';
3635

37-
for (var i = 0, len = lines.length; i < len; i++) {
38-
line = lines[i];
36+
for (let i = 0, len = lines.length; i < len; i++) {
37+
let line = lines[i];
3938
if (tab) line = replaceTabs(line, tab);
40-
numbers += '<span class="line">' + (firstLine + i) + '</span><br>';
39+
numbers += `<span class="line">${firstLine + i}</span><br>`;
4140
content += formatLine(line, firstLine + i, mark, options);
4241
}
4342

44-
result += '<figure class="highlight' + (data.language ? ' ' + data.language : '') + '">';
43+
let result = `<figure class="highlight${data.language ? ` ${data.language}` : ''}">`;
4544

4645
if (caption) {
47-
result += '<figcaption>' + caption + '</figcaption>';
46+
result += `<figcaption>${caption}</figcaption>`;
4847
}
4948

5049
result += '<table><tr>';
5150

5251
if (gutter) {
53-
result += '<td class="gutter"><pre>' + numbers + '</pre></td>';
52+
result += `<td class="gutter"><pre>${numbers}</pre></td>`;
5453
}
5554

56-
result += '<td class="code">' + before + content + after + '</td>';
55+
result += `<td class="code">${before}${content}${after}</td>`;
5756
result += '</tr></table></figure>';
5857

5958
return result;
6059
}
6160

6261
function formatLine(line, lineno, marked, options) {
63-
var useHljs = options.hljs || false;
64-
var res = useHljs ? '' : '<span class="line';
65-
if (marked.indexOf(lineno) !== -1) {
62+
const useHljs = options.hljs || false;
63+
let res = useHljs ? '' : '<span class="line';
64+
if (marked.includes(lineno)) {
6665
// Handle marked lines.
67-
res += useHljs ? '<mark>' + line + '</mark>' : ' marked">' + line + '</span>';
66+
res += useHljs ? `<mark>${line}</mark>` : ` marked">${line}</span>`;
6867
} else {
69-
res += useHljs ? line : '">' + line + '</span>';
68+
res += useHljs ? line : `">${line}</span>`;
7069
}
7170

7271
res += '<br>';
@@ -78,10 +77,10 @@ function encodePlainString(str) {
7877
}
7978

8079
function replaceTabs(str, tab) {
81-
return str.replace(/^\t+/, function(match) {
82-
var result = '';
80+
return str.replace(/^\t+/, match => {
81+
let result = '';
8382

84-
for (var i = 0, len = match.length; i < len; i++) {
83+
for (let i = 0, len = match.length; i < len; i++) {
8584
result += tab;
8685
}
8786

@@ -90,7 +89,7 @@ function replaceTabs(str, tab) {
9089
}
9190

9291
function loadLanguage(lang) {
93-
hljs.registerLanguage(lang, require('highlight.js/lib/languages/' + lang));
92+
hljs.registerLanguage(lang, require(`highlight.js/lib/languages/${lang}`));
9493
}
9594

9695
function tryLanguage(lang) {
@@ -102,29 +101,25 @@ function tryLanguage(lang) {
102101
}
103102

104103
function loadAllLanguages() {
105-
alias.languages.filter(function(lang) {
106-
return !hljs.getLanguage(lang);
107-
}).forEach(loadLanguage);
104+
alias.languages.filter(lang => !hljs.getLanguage(lang)).forEach(loadLanguage);
108105
}
109106

110107
function highlight(str, options) {
111-
var lang = options.lang;
112-
var autoDetect = options.hasOwnProperty('autoDetect') ? options.autoDetect : false;
108+
let { lang } = options;
109+
const { autoDetect = false } = options;
113110

114111
if (!lang && autoDetect) {
115112
loadAllLanguages();
116-
lang = (function() {
117-
var result = hljs.highlightAuto(str);
118-
if (result.relevance > 0 && result.language) return result.language;
113+
const result = hljs.highlightAuto(str);
114+
if (result.relevance > 0 && result.language) lang = result.language;
119115

120-
}());
121116
}
122117

123118
if (!lang) {
124119
lang = 'plain';
125120
}
126121

127-
var result = {
122+
const result = {
128123
value: encodePlainString(str),
129124
language: lang.toLowerCase()
130125
};
@@ -145,11 +140,11 @@ function highlight(str, options) {
145140

146141
function tryHighlight(str, lang) {
147142
try {
148-
var matching = str.match(/(\r?\n)/);
149-
var separator = matching ? matching[1] : '';
150-
var lines = matching ? str.split(separator) : [str];
151-
var result = hljs.highlight(lang, lines.shift());
152-
var html = result.value;
143+
const matching = str.match(/(\r?\n)/);
144+
const separator = matching ? matching[1] : '';
145+
const lines = matching ? str.split(separator) : [str];
146+
let result = hljs.highlight(lang, lines.shift());
147+
let html = result.value;
153148
while (lines.length > 0) {
154149
result = hljs.highlight(lang, lines.shift(), false, result.top);
155150
html += separator + result.value;

lib/html_tag.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,13 @@
33
function htmlTag(tag, attrs, text) {
44
if (!tag) throw new TypeError('tag is required!');
55

6-
var result = '<' + tag;
6+
let result = `<${tag}`;
77

8-
for (var i in attrs) {
9-
if (
10-
attrs[i] !== undefined
11-
&& attrs[i] !== null
12-
) result += ' ' + i + '="' + attrs[i] + '"';
8+
for (const i in attrs) {
9+
if (attrs[i] != null) result += ` ${i}="${attrs[i]}"`;
1310
}
1411

15-
result += text == null ? '>' : '>' + text + '</' + tag + '>';
12+
result += text == null ? '>' : `>${text}</${tag}>`;
1613

1714
return result;
1815
}

lib/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
var hash = require('./hash');
3+
const hash = require('./hash');
44

55
exports.escapeDiacritic = require('./escape_diacritic');
66
exports.escapeHTML = require('./escape_html');

0 commit comments

Comments
 (0)