Skip to content

Commit dbf8681

Browse files
authored
Merge pull request #138 from vidartf/es5
ES5 / ES6 clean up
2 parents dcc5bf2 + 294db9d commit dbf8681

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1254
-1189
lines changed

js/.eslintrc.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
module.exports = {
2+
"env": {
3+
"browser": true,
4+
"commonjs": true
5+
},
6+
"extends": "eslint:recommended",
7+
"rules": {
8+
"indent": [
9+
"error",
10+
4
11+
],
12+
"linebreak-style": [
13+
"error",
14+
"windows"
15+
],
16+
"quotes": [
17+
"error",
18+
"single"
19+
],
20+
"semi": [
21+
"error",
22+
"always"
23+
],
24+
"no-console": "off",
25+
"no-unused-vars": "warn",
26+
}
27+
};

js/package.json

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,20 @@
1111
},
1212
"scripts": {
1313
"clean": "rimraf dist && rimraf ../pythreejs/static && node ./scripts/clean-generated-files.js",
14-
"autogen-enums": "node ./scripts/generate-enums.js",
15-
"autogen-shaders": "node ./scripts/generate-shader-utils.js",
16-
"autogen-wrappers": "node ./scripts/generate-wrappers.js",
17-
"autogen": "npm run autogen-shaders && npm run autogen-wrappers",
14+
"autogen:enums": "node ./scripts/generate-enums.js",
15+
"autogen:shaders": "node ./scripts/generate-shader-utils.js",
16+
"autogen:wrappers": "node ./scripts/generate-wrappers.js",
17+
"autogen": "npm run autogen:shaders && npm run autogen:wrappers",
1818
"build": "webpack && node ./scripts/copy-three.js",
1919
"prepublish": "npm run autogen && npm run build"
2020
},
2121
"devDependencies": {
22+
"eslint": "^4.11.0",
2223
"fs-extra": "^4.0.1",
2324
"glob": "^7.0.6",
2425
"handlebars": "^4.0.5",
2526
"rimraf": "^2.4.1",
27+
"underscore": "^1.8.3",
2628
"webpack": "^3.6.0"
2729
},
2830
"dependencies": {

js/scripts/.eslintrc.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
module.exports = {
2+
"env": {
3+
"es6": true,
4+
"node": true
5+
},
6+
"extends": "eslint:recommended",
7+
"parserOptions": {
8+
"sourceType": "script"
9+
},
10+
"rules": {
11+
"indent": [
12+
"error",
13+
4
14+
],
15+
"linebreak-style": [
16+
"error",
17+
"windows"
18+
],
19+
"quotes": "off",
20+
"semi": [
21+
"error",
22+
"always"
23+
],
24+
"no-console": "off",
25+
"no-unused-vars": "warn",
26+
}
27+
};

js/scripts/clean-generated-files.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
var path = require('path');
1+
'use strict';
22

3-
var Promise = require('bluebird');
4-
var Glob = require('glob').Glob;
5-
var fse = require('fs-extra');
3+
const path = require('path');
4+
const Glob = require('glob').Glob;
5+
const fse = require('fs-extra');
66

7-
Promise.promisifyAll(fse);
8-
9-
var scriptDir = __dirname;
10-
var baseDir = path.resolve(scriptDir, '..');
7+
const scriptDir = __dirname;
8+
const baseDir = path.resolve(scriptDir, '..');
119

1210
// Execute a function for each match to a glob query
1311
//
@@ -20,10 +18,10 @@ var baseDir = path.resolve(scriptDir, '..');
2018
function mapPromiseFnOverGlob(globPattern, mapFn, globOptions) {
2119
return new Promise(function(resolve, reject) {
2220

23-
var promises = [];
21+
let promises = [];
2422

2523
// trailing slash will match only directories
26-
var glob = new Glob(globPattern, globOptions)
24+
new Glob(globPattern, globOptions)
2725
.on('match', function(match) {
2826
var result = mapFn(match);
2927
if (result instanceof Array) {
@@ -52,7 +50,7 @@ function rmFileGlobAsync(globPattern) {
5250
return mapPromiseFnOverGlob(globPattern, function(filePath) {
5351
console.log(filePath);
5452
var absPath = path.resolve(baseDir, filePath);
55-
return fse.removeAsync(absPath);
53+
return fse.remove(absPath);
5654
}, {
5755
cwd: baseDir,
5856
nodir: true,

js/scripts/copy-three.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
var path = require('path');
2-
var fse = require('fs-extra');
1+
'use strict';
32

4-
var scriptDir = __dirname;
5-
var baseDir = path.resolve(scriptDir, '..');
3+
const path = require('path');
4+
const fse = require('fs-extra');
65

7-
var threeBuildDir = path.resolve(baseDir, 'node_modules', 'three', 'build');
8-
var staticDir = path.resolve(baseDir, '..', 'pythreejs', 'static');
6+
const scriptDir = __dirname;
7+
const baseDir = path.resolve(scriptDir, '..');
8+
9+
const threeBuildDir = path.resolve(baseDir, 'node_modules', 'three', 'build');
10+
const staticDir = path.resolve(baseDir, '..', 'pythreejs', 'static');
911

1012

1113
function copyThree() {

js/scripts/generate-class-config.js

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,53 @@
1-
var path = require('path');
2-
var Promise = require('bluebird');
3-
var Glob = require('glob').Glob;
4-
var fse = require('fs-extra');
1+
'use strict';
2+
3+
const path = require('path');
4+
const Glob = require('glob').Glob;
5+
const fse = require('fs-extra');
56

67
Promise.promisifyAll(fse);
78

8-
var scriptDir = __dirname;
9-
var baseDir = path.resolve(scriptDir, '..');
9+
const scriptDir = __dirname;
10+
const baseDir = path.resolve(scriptDir, '..');
1011

11-
var jsSrcDir = path.resolve(baseDir, 'src/');
12-
var pySrcDir = path.resolve(baseDir, '..', 'pythreejs');
12+
const threeSrcDir = path.resolve(baseDir, 'node_modules', 'three', 'src');
1313

14-
var threeSrcDir = path.resolve(baseDir, 'node_modules', 'three', 'src');
14+
const outPath = path.resolve(scriptDir, 'three-class-config.js');
1515

16-
var outPath = path.resolve(scriptDir, 'three-class-config.js');
1716

1817
function generateClassConfig() {
1918

2019
return new Promise(function(resolve, reject) {
2120

22-
var lines = [
23-
"//",
24-
"// base version of this file auto-generated by " + path.basename(__filename),
25-
"// date: " + new Date(),
26-
"//",
27-
"",
28-
"module.exports = {",
29-
" _defaults: require('./three-class-config-defaults'),",
30-
"",
21+
let lines = [
22+
'//',
23+
'// base version of this file auto-generated by ' + path.basename(__filename),
24+
'// date: ' + new Date(),
25+
'//',
26+
'',
27+
'module.exports = {',
28+
' _defaults: require(\'./three-class-config-defaults\'),',
29+
'',
3130
];
3231

33-
var glob = new Glob('**/*.js', { cwd: threeSrcDir, nodir: true, })
32+
new Glob('**/*.js', { cwd: threeSrcDir, nodir: true, })
3433
.on('match', function(match) {
3534

36-
var classDir = path.dirname(match);
37-
var className = path.basename(match, '.js');
35+
const classDir = path.dirname(match);
36+
const className = path.basename(match, '.js');
3837

3938
lines = lines.concat([
40-
" " + className.replace(/\./g, '_') + ": {",
41-
" relativePath: './" + path.join(classDir, className) + "',",
39+
' ' + className.replace(/\./g, '_') + ': {',
40+
' relativePath: \'./' + path.join(classDir, className) + '\',',
4241
// " superClass: 'ThreeModel',",
4342
// " properties: {},",
4443
// " constructorArgs: [],",
45-
" },",
44+
' },',
4645
]);
4746

4847
})
4948
.on('end', function() {
5049

51-
lines.push("};", "");
50+
lines.push('};', '');
5251

5352
// write result to file
5453
fse.outputFileAsync(outPath, lines.join('\n')).then(resolve);

js/scripts/generate-enums.js

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
var _ = require('underscore');
2-
var path = require('path');
3-
var fs = require('fs');
4-
var fse = require('fs-extra');
5-
var Promise = require('bluebird');
6-
var Handlebars = require('handlebars');
1+
'use strict';
72

8-
Promise.promisifyAll(fs);
9-
Promise.promisifyAll(fse);
3+
const _ = require('underscore');
4+
const path = require('path');
5+
const fse = require('fs-extra');
6+
const Handlebars = require('handlebars');
107

118
const enumConfigs = require('./three-enum-config');
129

@@ -27,8 +24,9 @@ const pyEnumDst = path.resolve(pySrcDir, 'enums.py');
2724
//
2825

2926
function parseThreeConstants() {
30-
var content = fs.readFileSync(path.resolve(threeSrcDir, 'constants.js'), 'utf-8');
31-
eval('var result = new function() {\n' + content.replace(/export var (.*?);/g, 'var $1;\nthis.$1;') + '}()');
27+
var content = fse.readFileSync(path.resolve(threeSrcDir, 'constants.js'), 'utf-8');
28+
var result;
29+
eval('result = new function() {\n' + content.replace(/export var (.*?);/g, 'var $1;\nthis.$1;') + '}()');
3230
return result;
3331
}
3432

@@ -40,9 +38,9 @@ const threeEnums = parseThreeConstants();
4038
//
4139

4240
function compileTemplate(templateName) {
43-
var templateName = path.basename(templateName, '.mustache');
44-
var templatePath = path.resolve(templateDir, templateName + '.mustache');
45-
return Handlebars.compile(fs.readFileSync(templatePath, {
41+
templateName = path.basename(templateName, '.mustache');
42+
const templatePath = path.resolve(templateDir, templateName + '.mustache');
43+
return Handlebars.compile(fse.readFileSync(templatePath, {
4644
encoding: 'utf-8'
4745
}));
4846
}
@@ -56,13 +54,13 @@ var pyEnumTemplate = compileTemplate('py_enums');
5654
//
5755

5856
function checkUnused() {
59-
return new Promise(function(resolve, reject) {
57+
return new Promise(() => {
6058
var unusedThreeEnums = _.keys(threeEnums);
6159

6260
_.keys(enumConfigs).map(function(category) {
63-
values = enumConfigs[category];
61+
const values = enumConfigs[category];
6462
values.forEach(function(enumKey) {
65-
if (Array.isArray(enumKey)) {
63+
if (Array.isArray(enumKey)) {
6664
// Several keys share the same value, remove all.
6765
enumKey.forEach(function(subKey) {
6866
unusedThreeEnums.splice(unusedThreeEnums.indexOf(subKey), 1);
@@ -89,7 +87,7 @@ function writeJavascriptFile() {
8987

9088
var categories = [];
9189

92-
_.keys(enumConfigs).map(function(category) {
90+
_.keys(enumConfigs).map(category => {
9391
var categoryObj = {key: category, enums: []};
9492
categories.push(categoryObj);
9593
enumConfigs[category].forEach(function(enumKey) {
@@ -108,11 +106,11 @@ function writeJavascriptFile() {
108106
categories: categories
109107
});
110108

111-
return fse.outputFileAsync(jsEnumDst, content);
109+
return fse.outputFile(jsEnumDst, content);
112110
}
113111

114112
function createJavascriptFiles() {
115-
return new Promise(function(resolve, reject) {
113+
return new Promise(function(resolve) {
116114
resolve(writeJavascriptFile());
117115
});
118116
}
@@ -143,11 +141,11 @@ function writePythonFile() {
143141
categories: categories,
144142
});
145143

146-
return fse.outputFileAsync(pyEnumDst, content);
144+
return fse.outputFile(pyEnumDst, content);
147145
}
148146

149147
function createPythonFiles() {
150-
return new Promise(function(resolve, reject) {
148+
return new Promise(function(resolve) {
151149
resolve(writePythonFile());
152150
});
153151
}
@@ -166,4 +164,4 @@ if (require.main === module) {
166164
generateFiles().then(function() {
167165
console.log('DONE');
168166
});
169-
}
167+
}

js/scripts/generate-shader-utils.js

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
1-
var _ = require('underscore');
2-
var path = require('path');
3-
var fs = require('fs');
4-
var fse = require('fs-extra');
5-
var Promise = require('bluebird');
6-
var Handlebars = require('handlebars');
1+
'use strict';
72

8-
Promise.promisifyAll(fs);
9-
Promise.promisifyAll(fse);
3+
const path = require('path');
4+
const fse = require('fs-extra');
5+
const Handlebars = require('handlebars');
106

117
var shaderUtilsConfig = require('./three-shader-utils-config');
128

@@ -29,17 +25,15 @@ var THREE = require('three');
2925
//
3026

3127
function compileTemplate(templateName) {
32-
var templateName = path.basename(templateName, '.mustache');
28+
templateName = path.basename(templateName, '.mustache');
3329
var templatePath = path.resolve(templateDir, templateName + '.mustache');
34-
return Handlebars.compile(fs.readFileSync(templatePath, {
30+
return Handlebars.compile(fse.readFileSync(templatePath, {
3531
encoding: 'utf-8'
3632
}));
3733
}
3834

3935
var pyWrapperTemplate = compileTemplate('py_shader_utils');
4036

41-
var pathSep = /\\|\//;
42-
4337

4438
//
4539
// Helper functions
@@ -67,7 +61,7 @@ function createPythonWrapper(name, relativePath) {
6761
var data = THREE[name];
6862

6963
var jsonPath = path.resolve(pySrcDir, relativePath + JSON_AUTOGEN_EXT);
70-
var promises = [fse.outputFileAsync(jsonPath, JSON.stringify(data, null, 4))];
64+
var promises = [fse.outputFile(jsonPath, JSON.stringify(data, null, 4))];
7165

7266
var pyPath = path.resolve(pySrcDir, relativePath + '_' + AUTOGEN_EXT + '.py');
7367
var output = pyWrapperTemplate({
@@ -77,22 +71,22 @@ function createPythonWrapper(name, relativePath) {
7771
now: new Date(),
7872
generatorScriptName: path.basename(__filename),
7973
});
80-
promises.push(fse.outputFileAsync(pyPath, output))
74+
promises.push(fse.outputFile(pyPath, output));
8175
return Promise.all(promises);
8276
}
8377

8478
function createPythonModuleInitFile(modulePath) {
8579

8680
var dirname = path.dirname(modulePath);
8781
var pyInitFilePath = path.resolve(pySrcDir, dirname, '__init__.py');
88-
return fse.ensureFileAsync(pyInitFilePath);
82+
return fse.ensureFile(pyInitFilePath);
8983

9084
}
9185

9286
function createPythonFiles() {
9387

9488
// Prevent python file generation when outside dir (e.g. npm install in dependent)
95-
if (!fs.existsSync(pySrcDir)) {
89+
if (!fse.existsSync(pySrcDir)) {
9690
return Promise.resolve();
9791
}
9892

0 commit comments

Comments
 (0)