Skip to content

Commit 486e7ef

Browse files
committed
Modernize the loader file to ES6
1 parent 88fdc53 commit 486e7ef

File tree

2 files changed

+66
-43
lines changed

2 files changed

+66
-43
lines changed

Diff for: .eslintrc.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
{
2-
"extends": "airbnb-base"
2+
"extends": "airbnb-base",
3+
"env": {
4+
"browser": true
5+
}
36
}

Diff for: lib/loader.js

+62-42
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,126 @@
1-
/* eslint-disable */
2-
exports.registerCustomLoaders = function (loader, loaders, callback) {
1+
function registerCustomLoaders(loader, loaders, callback) {
32
if (!loaders.length) {
4-
return callback();
3+
callback();
4+
return;
55
}
6-
var customLoader = loaders.shift();
7-
loader.registerLoader(customLoader, function (err) {
6+
const customLoader = loaders.shift();
7+
loader.registerLoader(customLoader, (err) => {
88
if (err) {
9-
return callback(err);
9+
callback(err);
10+
return;
1011
}
1112
exports.registerCustomLoaders(loader, loaders, callback);
1213
});
13-
};
14-
14+
}
1515

16-
exports.setSource = function (sources, loader, packageId, name, source, language, callback) {
17-
var implementation;
18-
var originalSource = source;
16+
function setSource(sources, loader, packageId, name, originalSource, language, callback) {
17+
let implementation;
18+
let source = originalSource;
1919
// Transpiling
2020
if (language === 'coffeescript') {
2121
if (typeof window !== 'undefined' && !window.CoffeeScript) {
22-
return callback(new Error('CoffeeScript compiler needed for ' + packageId + '/' + name + ' not available'));
22+
callback(new Error(`CoffeeScript compiler needed for ${packageId}/${name} not available`));
23+
return;
2324
}
2425
try {
2526
source = window.CoffeeScript.compile(source, {
26-
bare: true
27+
bare: true,
2728
});
2829
} catch (e) {
29-
return callback(e);
30+
callback(e);
31+
return;
3032
}
3133
}
3234
if (language === 'es6' || language === 'es2015') {
3335
if (typeof window !== 'undefined' && window.babel) {
3436
try {
3537
source = window.babel.transform(source).code;
3638
} catch (e) {
37-
return callback(e);
39+
callback(e);
40+
return;
3841
}
3942
}
4043
}
4144
// Eval the contents to get a runnable component
4245
try {
43-
var withExports = '(function () { var exports = {}; ' + source + '; return exports; })();';
46+
const withExports = `(function () { var exports = {}; ${source}; return exports; })();`;
47+
// eslint-disable-next-line no-eval
4448
implementation = eval(withExports);
4549
} catch (e) {
46-
return callback(e);
50+
callback(e);
51+
return;
4752
}
4853

4954
if (typeof implementation !== 'function' && (!implementation.getComponent || typeof implementation.getComponent !== 'function')) {
50-
return callback(new Error('Provided source for ' + packageId + '/' + name + ' failed to create a runnable component'));
55+
callback(new Error(`Provided source for ${packageId}/${name} failed to create a runnable component`));
56+
return;
5157
}
5258

53-
var fullName = packageId + '/' + name;
59+
const fullName = `${packageId}/${name}`;
60+
// eslint-disable-next-line no-param-reassign
5461
sources[fullName] = {
55-
language: language,
56-
source: originalSource
62+
language,
63+
source: originalSource,
5764
};
5865

5966
loader.registerComponent(packageId, name, implementation, callback);
60-
};
67+
}
6168

62-
exports.getSource = function (sources, loader, name, callback) {
69+
function getSource(sources, loader, name, callback) {
6370
if (!loader.components[name]) {
64-
return callback(new Error('Component ' + name + ' not available'));
71+
callback(new Error(`Component ${name} not available`));
72+
return;
6573
}
66-
var component = loader.components[name];
74+
const component = loader.components[name];
75+
let componentData;
6776
if (name.indexOf('/') !== -1) {
68-
var nameParts = name.split('/');
69-
var componentData = {
77+
const nameParts = name.split('/');
78+
componentData = {
7079
name: nameParts[1],
71-
library: nameParts[0]
80+
library: nameParts[0],
7281
};
7382
} else {
74-
var componentData = {
75-
name: name,
76-
library: ''
83+
componentData = {
84+
name,
85+
library: '',
7786
};
7887
}
7988
if (loader.isGraph(component)) {
8089
componentData.code = JSON.stringify(component, null, 2);
8190
componentData.language = 'json';
82-
return callback(null, componentData);
83-
} else if (sources[name]) {
91+
callback(null, componentData);
92+
return;
93+
} if (sources[name]) {
8494
componentData.code = sources[name].source;
8595
componentData.language = sources[name].language;
8696
componentData.tests = sources[name].tests;
87-
return callback(null, componentData);
88-
} else if (typeof component === 'function') {
97+
callback(null, componentData);
98+
return;
99+
} if (typeof component === 'function') {
89100
componentData.code = component.toString();
90101
componentData.language = 'javascript';
91-
return callback(null, componentData);
92-
} else if (typeof component.getComponent === 'function') {
102+
callback(null, componentData);
103+
return;
104+
} if (typeof component.getComponent === 'function') {
93105
componentData.code = component.getComponent.toString();
94106
componentData.language = 'javascript';
95-
return callback(null, componentData);
107+
callback(null, componentData);
108+
return;
96109
}
97-
return callback(new Error('Unable to get sources for ' + name));
98-
};
110+
callback(new Error(`Unable to get sources for ${name}`));
111+
}
99112

100-
exports.getLanguages = function () {
101-
var languages = ['javascript', 'es2015'];
113+
function getLanguages() {
114+
const languages = ['javascript', 'es2015'];
102115
if (typeof window !== 'undefined' && window.CoffeeScript) {
103116
languages.push('coffeescript');
104117
}
105118
return languages;
119+
}
120+
121+
module.exports = {
122+
registerCustomLoaders,
123+
setSource,
124+
getSource,
125+
getLanguages,
106126
};

0 commit comments

Comments
 (0)