Skip to content

Commit 82beb6e

Browse files
committed
Added linting, cleaned up code
1 parent c5866d7 commit 82beb6e

11 files changed

+1869
-231
lines changed

.editorconfig

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
3+
# EditorConfig is awesome: https://EditorConfig.org
4+
5+
# top-most EditorConfig file
6+
root = true
7+
8+
# Unix-style newlines with a newline ending every file
9+
[*]
10+
end_of_line = lf
11+
insert_final_newline = true
12+
13+
# Matches multiple files with brace expansion notation
14+
# Set default charset
15+
[*.{js}]
16+
charset = utf-8
17+
18+
indent_style = space
19+
20+
# Indentation override for all JS and JSON
21+
[*.{js, json}]
22+
indent_style = space
23+
indent_size = 2
24+

.env-sample

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
NODE_ENV=development
2+
3+
# Address to the compute server:
4+
COMPUTE_URL=http://localhost:8082/
5+
6+
# Address of this application
7+
APP_URL=http://localhost:3000/
8+
9+
# If you are targetting https://compute.rhino3d.com, you need a token from https://rhino3d.com/compute/login
10+
COMPUTE_TOKEN=

.eslintrc.json

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"commonjs": true,
5+
"es6": true,
6+
"node": true
7+
},
8+
"extends": "eslint:recommended",
9+
"globals": {
10+
"Atomics": "readonly",
11+
"SharedArrayBuffer": "readonly"
12+
},
13+
"parserOptions": {
14+
"ecmaVersion": 2018
15+
},
16+
"rules": {
17+
"indent": [
18+
"error",
19+
2
20+
],
21+
"linebreak-style": [
22+
"error",
23+
"unix"
24+
],
25+
"quotes": [
26+
"error",
27+
"single"
28+
],
29+
"semi": [
30+
"error",
31+
"never"
32+
],
33+
"no-unused-vars": [
34+
"error",
35+
{ "argsIgnorePattern": "next" }
36+
]
37+
}
38+
}

app.js

+73-71
Original file line numberDiff line numberDiff line change
@@ -1,119 +1,121 @@
1-
const createError = require('http-errors');
2-
const express = require('express');
3-
const path = require('path');
4-
const compression = require('compression');
5-
const cookieParser = require('cookie-parser');
6-
const logger = require('morgan');
7-
const cors = require('cors');
8-
const fs = require('fs');
9-
const { v4: uuidv4 } = require('uuid');
10-
const compute = require('compute-rhino3d');
11-
require('dotenv').config();
1+
const createError = require('http-errors')
2+
const express = require('express')
3+
const path = require('path')
4+
const compression = require('compression')
5+
const cookieParser = require('cookie-parser')
6+
const logger = require('morgan')
7+
const cors = require('cors')
8+
const fs = require('fs')
9+
const { v4: uuidv4 } = require('uuid')
10+
const compute = require('compute-rhino3d')
11+
12+
// dotenv only required for development.
13+
// Heroku adds config vars in production.
14+
// If not running on Heroku, you might want to add this back in with your own .env file.
15+
// require('dotenv').config()
1216

1317
// routers
14-
const indexRouter = require('./routes/index');
15-
const definitionRouter = require('./routes/definition');
18+
const indexRouter = require('./routes/index')
19+
const definitionRouter = require('./routes/definition')
1620

17-
console.log('appserver version: ' + process.env.npm_package_version);
18-
19-
const app = express();
21+
const app = express()
2022

2123
// get cmd line args
2224
// get arguments after first two elements in process.argv
23-
let args = process.argv.splice(2);
25+
let args = process.argv.splice(2)
2426

25-
let defArgId = args.indexOf('--definitions');
26-
let urlArgId = args.indexOf('--computeUrl');
27+
let defArgId = args.indexOf('--definitions')
28+
let urlArgId = args.indexOf('--computeUrl')
2729

2830
// set arguments or accept defaults
2931
if(defArgId > -1)
30-
app.set('definitionsDir', path.normalize(args[defArgId+1]));
32+
app.set('definitionsDir', path.normalize(args[defArgId+1]))
3133
else
32-
app.set(app.set('definitionsDir', path.join(__dirname, 'files/')));
34+
app.set(app.set('definitionsDir', path.join(__dirname, 'files/')))
3335

3436
if(urlArgId > -1)
35-
app.set('computeUrl', args[urlArgId+1]);
37+
app.set('computeUrl', args[urlArgId+1])
3638
else
37-
app.set('computeUrl', process.env.COMPUTE_URL); // set to a geometry server running on the same machine. NOTE: Port 8082 is when Geometry Server is running debug
39+
app.set('computeUrl', process.env.COMPUTE_URL) // set to a geometry server running on the same machine. NOTE: Port 8082 is when Geometry Server is running debug
3840

39-
compute.url = app.get('computeUrl');
41+
compute.url = app.get('computeUrl')
4042

4143
if(process.env.COMPUTE_TOKEN !== undefined)
4244
compute.authToken = process.env.COMPUTE_TOKEN
4345

4446
if(process.env.APP_URL !== undefined)
45-
app.set('appUrl', process.env.APP_URL);
47+
app.set('appUrl', process.env.APP_URL)
4648
else
47-
app.set('appUrl', 'http://localhost' + process.env.PORT || '3000' + '/');
48-
49-
console.log( app.set('computeUrl'));
50-
console.log(require('os').hostname());
51-
console.log(process.env.NODE_ENV);
52-
53-
app.use(logger('dev'));
54-
app.use(express.json());
55-
app.use(express.urlencoded({ extended: false }));
56-
app.use(cookieParser());
57-
app.use(cors());
58-
app.use(compression());
49+
app.set('appUrl', 'http://localhost' + process.env.PORT || '3000' + '/')
50+
51+
console.log('VERSION: ' + process.env.npm_package_version)
52+
console.log('COMPUTE_URL: ' + app.get('computeUrl'))
53+
console.log('NODE_ENV: ' + process.env.NODE_ENV)
54+
55+
app.use(logger('dev'))
56+
app.use(express.json())
57+
app.use(express.urlencoded({ extended: false }))
58+
app.use(cookieParser())
59+
app.use(cors())
60+
app.use(compression())
5961
app.use('/example', express.static('example'))
6062

61-
app.use('/', indexRouter);
62-
app.use('/definition', definitionRouter);
63+
app.use('/', indexRouter)
64+
app.use('/definition', definitionRouter)
6365

6466
function getFiles(dir) {
6567
return new Promise ( (resolve, reject) => {
6668
fs.readdir(dir, (err, files) => {
67-
if(err) reject(err);
68-
else resolve(files);
69-
});
70-
} );
71-
};
69+
if(err) reject(err)
70+
else resolve(files)
71+
})
72+
} )
73+
}
7274

7375
getFiles( app.get('definitionsDir') )
74-
.then( (files) => {
76+
.then( (files) => {
7577

76-
if(files.length === 0)
77-
throw new Error('No definitions found on server');
78+
if(files.length === 0)
79+
throw new Error('No definitions found on server')
7880

79-
app.set('definitions', []);
80-
console.log(files);
81+
app.set('definitions', [])
82+
console.log(files)
8183

82-
let fullUrl = app.get('appUrl'); // watch this.
84+
let fullUrl = app.get('appUrl') // watch this.
8385

84-
files.forEach(file => {
86+
files.forEach(file => {
8587

86-
if(file.includes('.gh') || file.includes('.ghx')) {
87-
let id = uuidv4();
88-
app.get('definitions').push({name: file, id:id});
88+
if(file.includes('.gh') || file.includes('.ghx')) {
89+
let id = uuidv4()
90+
app.get('definitions').push({name: file, id:id})
8991

90-
compute.computeFetch('io', {'requestedFile':fullUrl + 'definition/'+ id}).then(result => {
91-
app.get('definitions').find(d => d.id === id).inputs = result.Inputs === undefined ? result.InputNames : result.Inputs;
92-
app.get('definitions').find(d => d.id === id).outputs = result.Outputs === undefined ? result.OutputNames: result.Outputs;
93-
}).catch( (error) => console.log(error));
92+
compute.computeFetch('io', {'requestedFile':fullUrl + 'definition/'+ id}).then(result => {
93+
app.get('definitions').find(d => d.id === id).inputs = result.Inputs === undefined ? result.InputNames : result.Inputs
94+
app.get('definitions').find(d => d.id === id).outputs = result.Outputs === undefined ? result.OutputNames: result.Outputs
95+
}).catch( (error) => console.log(error))
9496

95-
}
96-
});
97+
}
98+
})
9799

98-
})
99-
.catch( (error)=>{ console.log(error) });
100+
})
101+
.catch( (error)=>{ console.log(error) })
100102

101103
// catch 404 and forward to error handler
102104
app.use(function(req, res, next) {
103-
next(createError(404));
104-
});
105+
next(createError(404))
106+
})
105107

106108
// error handler
107109
app.use(function(err, req, res, next) {
108110

109111
// set locals, only providing error in development
110-
res.locals.message = err.message;
111-
console.log(err.message);
112-
res.locals.error = req.app.get('env') === 'development' ? err : {};
112+
res.locals.message = err.message
113+
console.log(err.message)
114+
res.locals.error = req.app.get('env') === 'development' ? err : {}
113115

114116
// send the error
115-
res.status(err.status || 500);
116-
res.send(err.message);
117-
});
117+
res.status(err.status || 500)
118+
res.send(err.message)
119+
})
118120

119-
module.exports = app;
121+
module.exports = app

bin/www

+29-29
Original file line numberDiff line numberDiff line change
@@ -4,49 +4,49 @@
44
* Module dependencies.
55
*/
66

7-
var app = require('../app');
8-
var debug = require('debug')('compute.appserver:server');
9-
var http = require('http');
7+
var app = require('../app')
8+
var debug = require('debug')('compute.appserver:server')
9+
var http = require('http')
1010

1111
/**
1212
* Get port from environment and store in Express.
1313
*/
1414

15-
var port = normalizePort(process.env.PORT || '3000');
16-
app.set('port', port);
15+
var port = normalizePort(process.env.PORT || '3000')
16+
app.set('port', port)
1717

1818
/**
1919
* Create HTTP server.
2020
*/
2121

22-
var server = http.createServer(app);
22+
var server = http.createServer(app)
2323

2424
/**
2525
* Listen on provided port, on all network interfaces.
2626
*/
2727

28-
server.listen(port);
29-
server.on('error', onError);
30-
server.on('listening', onListening);
28+
server.listen(port)
29+
server.on('error', onError)
30+
server.on('listening', onListening)
3131

3232
/**
3333
* Normalize a port into a number, string, or false.
3434
*/
3535

3636
function normalizePort(val) {
37-
var port = parseInt(val, 10);
37+
var port = parseInt(val, 10)
3838

3939
if (isNaN(port)) {
4040
// named pipe
41-
return val;
41+
return val
4242
}
4343

4444
if (port >= 0) {
4545
// port number
46-
return port;
46+
return port
4747
}
4848

49-
return false;
49+
return false
5050
}
5151

5252
/**
@@ -55,25 +55,25 @@ function normalizePort(val) {
5555

5656
function onError(error) {
5757
if (error.syscall !== 'listen') {
58-
throw error;
58+
throw error
5959
}
6060

6161
var bind = typeof port === 'string'
6262
? 'Pipe ' + port
63-
: 'Port ' + port;
63+
: 'Port ' + port
6464

6565
// handle specific listen errors with friendly messages
6666
switch (error.code) {
67-
case 'EACCES':
68-
console.error(bind + ' requires elevated privileges');
69-
process.exit(1);
70-
break;
71-
case 'EADDRINUSE':
72-
console.error(bind + ' is already in use');
73-
process.exit(1);
74-
break;
75-
default:
76-
throw error;
67+
case 'EACCES':
68+
console.error(bind + ' requires elevated privileges')
69+
process.exit(1)
70+
break
71+
case 'EADDRINUSE':
72+
console.error(bind + ' is already in use')
73+
process.exit(1)
74+
break
75+
default:
76+
throw error
7777
}
7878
}
7979

@@ -82,11 +82,11 @@ function onError(error) {
8282
*/
8383

8484
function onListening() {
85-
var addr = server.address();
85+
var addr = server.address()
8686
var bind = typeof addr === 'string'
8787
? 'pipe ' + addr
88-
: 'port ' + addr.port;
89-
debug('Listening on ' + bind);
90-
console.log('Listening on ' + bind);
88+
: 'port ' + addr.port
89+
debug('Listening on ' + bind)
90+
console.log('Listening on ' + bind)
9191
console.log('Server address: '+ addr.address)
9292
}

0 commit comments

Comments
 (0)