Skip to content

Commit 6fac2d2

Browse files
committed
Ignore unneeded Babel transformations
* [X] Install babel-preset-env. * [X] Support last FF before Quantum (`Firefox >= 56`) and some Chrome (`last 4 Chrome versions`). * [X] Read `.babelrc` manually due to babelify issue babel/babelify#235
1 parent 7210a5a commit 6fac2d2

File tree

7 files changed

+246
-87
lines changed

7 files changed

+246
-87
lines changed

Diff for: .babelrc

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
11
{
2-
"presets": ["es2015"]
3-
}
2+
"presets": [
3+
[
4+
"env",
5+
{
6+
"targets": {
7+
"browsers": [
8+
"Firefox >= 56",
9+
"last 4 Chrome versions"
10+
]
11+
}
12+
}
13+
]
14+
]
15+
}

Diff for: dist/scripts/background.js

+47-54
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var _SearchHelper2 = _interopRequireDefault(_SearchHelper);
2323

2424
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2525

26-
var SETTINGS = {
26+
const SETTINGS = {
2727
MAX_SUGGESTIONS: 6
2828

2929
/**
@@ -37,7 +37,7 @@ Object.assign(_wikiEn2.default, _wikiTemplate2.default);
3737
Object.assign(_wikiPl2.default, _wikiTemplate2.default);
3838

3939
browser.storage.local.get('engines').then(function (result) {
40-
var engines = [];
40+
let engines = [];
4141
if (!('engines' in result) || !Array.isArray(result.engines)) {
4242
engines = [_wikiEn2.default, _wikiPl2.default];
4343
browser.storage.local.set({ 'engines': engines });
@@ -56,7 +56,7 @@ browser.storage.local.get('engines').then(function (result) {
5656
* Prepare omnibox for autocomplete.
5757
*/
5858
function prepareOmnibox(engines) {
59-
var searchHelper = new _SearchHelper2.default(SETTINGS, engines);
59+
let searchHelper = new _SearchHelper2.default(SETTINGS, engines);
6060

6161
/**
6262
* Default suggestion displayed after typing in `sa`.
@@ -68,10 +68,10 @@ function prepareOmnibox(engines) {
6868
/**
6969
* Reaction for newly entered phrase.
7070
*/
71-
browser.omnibox.onInputChanged.addListener(function (text, addSuggestions) {
72-
var engineWithTerm = searchHelper.getEngine(text);
73-
var searchTerm = engineWithTerm.text;
74-
var engine = engineWithTerm.engine;
71+
browser.omnibox.onInputChanged.addListener((text, addSuggestions) => {
72+
let engineWithTerm = searchHelper.getEngine(text);
73+
let searchTerm = engineWithTerm.text;
74+
let engine = engineWithTerm.engine;
7575
// no keyword matched
7676
if (engine === null) {
7777
console.log('no keyword matched');
@@ -82,12 +82,12 @@ function prepareOmnibox(engines) {
8282
console.log('no phrase typed in yet after the keyword');
8383
return;
8484
}
85-
var action = engine.autocompleteAction;
86-
var headers = new Headers({ 'Accept': action.type });
87-
var init = { method: action.method, headers: headers };
88-
var url = searchHelper.buildSearchUrl(engine, action, searchTerm);
85+
let action = engine.autocompleteAction;
86+
let headers = new Headers({ 'Accept': action.type });
87+
let init = { method: action.method, headers };
88+
let url = searchHelper.buildSearchUrl(engine, action, searchTerm);
8989
console.log('searchTerm:', searchTerm, 'url:', url, 'engine:', engine);
90-
var request = new Request(url, init);
90+
let request = new Request(url, init);
9191

9292
fetch(request).then(function (response) {
9393
return searchHelper.createSuggestionsFromResponse(engine, response);
@@ -97,15 +97,15 @@ function prepareOmnibox(engines) {
9797
/**
9898
* React to choosen phrase or suggestion.
9999
*/
100-
browser.omnibox.onInputEntered.addListener(function (text, disposition) {
100+
browser.omnibox.onInputEntered.addListener((text, disposition) => {
101101
console.log('onInputEntered: ', text, disposition);
102102
// if suggestion was choosen then the text should contain a go-to URL
103-
var url = text;
103+
let url = text;
104104
// suggestion was not choosen, must build URL
105105
if (text.search(/^https?:/) !== 0) {
106-
var engineWithTerm = searchHelper.getEngine(text);
107-
var searchTerm = engineWithTerm.text;
108-
var engine = engineWithTerm.engine;
106+
let engineWithTerm = searchHelper.getEngine(text);
107+
let searchTerm = engineWithTerm.text;
108+
let engine = engineWithTerm.engine;
109109
// no valid search to go to
110110
if (engine === null || !searchTerm.length) {
111111
console.log('no valid search to go to', {
@@ -126,13 +126,13 @@ function prepareOmnibox(engines) {
126126
// create or update tab as expected
127127
switch (disposition) {
128128
case 'currentTab':
129-
browser.tabs.update({ url: url });
129+
browser.tabs.update({ url });
130130
break;
131131
case 'newForegroundTab':
132-
browser.tabs.create({ url: url });
132+
browser.tabs.create({ url });
133133
break;
134134
case 'newBackgroundTab':
135-
browser.tabs.create({ url: url, active: false });
135+
browser.tabs.create({ url, active: false });
136136
break;
137137
}
138138
});
@@ -220,9 +220,6 @@ exports.default = SearchEngine;
220220
Object.defineProperty(exports, "__esModule", {
221221
value: true
222222
});
223-
224-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
225-
226223
function SearchEngineAction(action) {
227224
this.url = '';
228225
if (typeof action.url === 'string') {
@@ -237,7 +234,7 @@ function SearchEngineAction(action) {
237234
this.type = action.type;
238235
}
239236
this.data = {};
240-
if (_typeof(action.data) === 'object') {
237+
if (typeof action.data === 'object') {
241238
this.data = action.data;
242239
}
243240
}
@@ -251,8 +248,6 @@ Object.defineProperty(exports, "__esModule", {
251248
value: true
252249
});
253250

254-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
255-
256251
var _SearchEngine = require('./SearchEngine.js');
257252

258253
var _SearchEngine2 = _interopRequireDefault(_SearchEngine);
@@ -279,7 +274,7 @@ function SearchHelper(SETTINGS, engines) {
279274
this.engineMap = engines;
280275
}
281276
// figure out default (unless explictly defined)
282-
if (_typeof(this.engineMap.default) !== 'object') {
277+
if (typeof this.engineMap.default !== 'object') {
283278
var firstKeyword = Object.keys(this.engineMap)[0];
284279
this.engineMap.default = this.engineMap[firstKeyword];
285280
}
@@ -290,11 +285,11 @@ function SearchHelper(SETTINGS, engines) {
290285
* @param {Array} engines An array of search engines with `keywords` property.
291286
*/
292287
SearchHelper.prototype.buildEngineMap = function (engines) {
293-
var engineMap = {};
294-
for (var i = 0; i < engines.length; i++) {
288+
let engineMap = {};
289+
for (let i = 0; i < engines.length; i++) {
295290
var engine = new _SearchEngine2.default(engines[i]);
296291
var keywords = engine.keywords;
297-
for (var k = 0; k < keywords.length; k++) {
292+
for (let k = 0; k < keywords.length; k++) {
298293
var key = keywords[k];
299294
engineMap[key] = engine;
300295
}
@@ -310,12 +305,12 @@ SearchHelper.prototype.buildEngineMap = function (engines) {
310305
* @param {String} text Search term.
311306
*/
312307
SearchHelper.prototype.buildSearchUrl = function (engine, action, text) {
313-
var url = action.url.replace('{baseUrl}', engine.baseUrl);
314-
var first = true;
315-
for (var key in action.data) {
316-
var value = action.data[key].replace('{searchTerms}', text);
308+
let url = action.url.replace('{baseUrl}', engine.baseUrl);
309+
let first = true;
310+
for (let key in action.data) {
311+
let value = action.data[key].replace('{searchTerms}', text);
317312
url += first ? '?' : '&';
318-
url += key + '=' + encodeURIComponent(value);
313+
url += `${key}=` + encodeURIComponent(value);
319314
first = false;
320315
}
321316
return url;
@@ -338,8 +333,8 @@ SearchHelper.prototype.buildSearchUrl = function (engine, action, text) {
338333
* @return {EngineWithTerm} Engine with term stripped from the engine keyowrd.
339334
*/
340335
SearchHelper.prototype.getEngine = function (text) {
341-
var keyword = null;
342-
var me = this;
336+
let keyword = null;
337+
let me = this;
343338
text.replace(/^(\S*)\s+(.*)$/, function (a, word, rest) {
344339
if (!word.length) {
345340
keyword = 'default';
@@ -349,7 +344,7 @@ SearchHelper.prototype.getEngine = function (text) {
349344
text = rest;
350345
}
351346
});
352-
var engine = void 0;
347+
let engine;
353348
if (keyword === null) {
354349
engine = null;
355350
} else {
@@ -368,44 +363,42 @@ SearchHelper.prototype.getEngine = function (text) {
368363
* @param {Object} response The search engine response.
369364
*/
370365
SearchHelper.prototype.createSuggestionsFromResponse = function (engine, response) {
371-
var _this = this;
372-
373-
return new Promise(function (resolve) {
374-
var suggestions = [];
375-
var suggestionsOnEmptyResults = [{
366+
return new Promise(resolve => {
367+
let suggestions = [];
368+
let suggestionsOnEmptyResults = [{
376369
content: engine.baseUrl,
377370
description: 'No results found'
378371
}];
379-
response.json().then(function (json) {
372+
response.json().then(json => {
380373
console.log('response:', json);
381374
if (!json.length) {
382375
return resolve(suggestionsOnEmptyResults);
383376
}
384377

385-
var max = _this.SETTINGS.MAX_SUGGESTIONS;
378+
let max = this.SETTINGS.MAX_SUGGESTIONS;
386379

387380
// for Wikipedia:
388381
// json[0] = search term
389382
// json[1] = [...titles...]
390383
// json[2] = [...descriptions...]
391384
// json[3] = [...direct urls...]
392-
var titles = json[1];
393-
var descriptions = json[2];
394-
var urls = json[3];
385+
let titles = json[1];
386+
let descriptions = json[2];
387+
let urls = json[3];
395388

396389
if (titles.length < 1) {
397390
return resolve(suggestionsOnEmptyResults);
398391
}
399392

400-
var count = Math.min(titles.length, max);
401-
for (var i = 0; i < count; i++) {
393+
let count = Math.min(titles.length, max);
394+
for (let i = 0; i < count; i++) {
402395
// gather data
403-
var title = titles[i];
404-
var description = title;
396+
let title = titles[i];
397+
let description = title;
405398
if (descriptions && typeof descriptions[i] === 'string') {
406-
description += ' -- ' + descriptions[i];
399+
description += ` -- ${descriptions[i]}`;
407400
}
408-
var url = '';
401+
let url = '';
409402
if (urls && typeof urls[i] === 'string') {
410403
url = urls[i];
411404
} else {

Diff for: dist/scripts/options.js

+9-12
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,18 @@ if (typeof browser != 'undefined') {
4747
*/
4848
function prepareEngines(engines) {
4949
console.log(engines);
50-
var container = document.getElementById('engines-container');
51-
for (var e = 0; e < engines.length; e++) {
52-
var engine = new _SearchEngine2.default(engines[e]);
50+
let container = document.getElementById('engines-container');
51+
for (let e = 0; e < engines.length; e++) {
52+
let engine = new _SearchEngine2.default(engines[e]);
5353

54-
var el = document.createElement('li');
54+
let el = document.createElement('li');
5555
el.engine = engine;
5656

57-
el.textContent = '[' + engine.keywords.join(',') + '] ' + engine.title;
57+
el.textContent = `[${engine.keywords.join(',')}] ${engine.title}`;
5858
// edit
59-
var button = document.createElement('a');
59+
let button = document.createElement('a');
6060
button.addEventListener('click', function () {
61-
var engine = this.parentNode.engine;
61+
let engine = this.parentNode.engine;
6262
editEngine(engine);
6363
});
6464
button.textContent = '✏️';
@@ -169,9 +169,6 @@ exports.default = SearchEngine;
169169
Object.defineProperty(exports, "__esModule", {
170170
value: true
171171
});
172-
173-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
174-
175172
function SearchEngineAction(action) {
176173
this.url = '';
177174
if (typeof action.url === 'string') {
@@ -186,7 +183,7 @@ function SearchEngineAction(action) {
186183
this.type = action.type;
187184
}
188185
this.data = {};
189-
if (_typeof(action.data) === 'object') {
186+
if (typeof action.data === 'object') {
190187
this.data = action.data;
191188
}
192189
}
@@ -234,7 +231,7 @@ SearchEngineModel.prototype.update = function (engine) {
234231
* @param {SearchEngineAction} action
235232
*/
236233
SearchEngineModel.prototype.addAction = function (name, action) {
237-
var data = [];
234+
let data = [];
238235
for (var key in action.data) {
239236
data.push({
240237
key: key,

Diff for: dist/scripts/setupI18n.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Must be included when HTML is ready.
88
*/
99
// en-US -> en
10-
var lang = typeof browser != 'undefined' ? browser.i18n.getUILanguage().replace(/[-_]\w+$/, '') : 'pl';
10+
let lang = typeof browser != 'undefined' ? browser.i18n.getUILanguage().replace(/[-_]\w+$/, '') : 'pl';
1111

1212
// remove all elements marked with language attribute that is different then current
1313
document.querySelectorAll('[data-lang]').forEach(function (el) {

Diff for: gulpfile.babel.js

+22-18
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import gulpLoadPlugins from 'gulp-load-plugins';
77
import del from 'del';
88
import runSequence from 'run-sequence';
99
import {stream as wiredep} from 'wiredep';
10+
import fs from 'fs';
1011

1112
const $ = gulpLoadPlugins();
1213

@@ -96,24 +97,27 @@ gulp.task('chromeManifest', () => {
9697
});
9798

9899
gulp.task('babel', () => {
99-
const files = [
100-
'background.js',
101-
'options.js',
102-
'setupI18n.js',
103-
'chromereload.js'
104-
];
105-
106-
const tasks = files.map(file => (
107-
browserify({
108-
entries: `./app/scripts.babel/${file}`,
109-
debug: true
110-
}).transform('babelify', { presets: ['es2015'] })
111-
.bundle()
112-
.pipe(source(file))
113-
.pipe(gulp.dest('app/scripts'))
114-
));
115-
116-
return es.merge.apply(null, tasks);
100+
const files = [
101+
'background.js',
102+
'options.js',
103+
'setupI18n.js',
104+
'chromereload.js'
105+
];
106+
107+
const babelrc = JSON.parse(fs.readFileSync('.babelrc', 'utf8'));
108+
109+
const tasks = files.map(file => (
110+
browserify({
111+
entries: `./app/scripts.babel/${file}`,
112+
debug: true
113+
})
114+
.transform('babelify', babelrc)
115+
.bundle()
116+
.pipe(source(file))
117+
.pipe(gulp.dest('app/scripts'))
118+
));
119+
120+
return es.merge.apply(null, tasks);
117121
});
118122

119123
gulp.task('clean', del.bind(null, ['.tmp', 'dist']));

0 commit comments

Comments
 (0)