aboutsummaryrefslogtreecommitdiffhomepage
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/config.js26
-rw-r--r--api/index.js9
-rw-r--r--api/routes/application.js6
-rw-r--r--api/services/github/auth.js15
-rw-r--r--api/services/zmk/layout.js1
5 files changed, 43 insertions, 14 deletions
diff --git a/api/config.js b/api/config.js
new file mode 100644
index 0000000..ff9644f
--- /dev/null
+++ b/api/config.js
@@ -0,0 +1,26 @@
+const process = require('process')
+require('dotenv/config')
+
+const PORT = process.env.PORT || 8080
+const ENABLE_DEV_SERVER = process.env.ENABLE_DEV_SERVER
+const ENABLE_GITHUB = process.env.ENABLE_GITHUB
+const GITHUB_APP_NAME = process.env.GITHUB_APP_NAME
+const GITHUB_APP_PRIVATE_KEY = process.env.GITHUB_APP_PRIVATE_KEY
+const GITHUB_APP_ID = process.env.GITHUB_APP_ID
+const GITHUB_CLIENT_ID = process.env.GITHUB_CLIENT_ID
+const GITHUB_CLIENT_SECRET = process.env.GITHUB_CLIENT_SECRET
+const GITHUB_OAUTH_CALLBACK_URL = process.env.GITHUB_OAUTH_CALLBACK_URL
+const APP_BASE_URL = process.env.APP_BASE_URL
+
+module.exports = {
+ PORT,
+ ENABLE_DEV_SERVER,
+ ENABLE_GITHUB,
+ GITHUB_APP_NAME,
+ GITHUB_APP_PRIVATE_KEY,
+ GITHUB_APP_ID,
+ GITHUB_CLIENT_ID,
+ GITHUB_CLIENT_SECRET,
+ GITHUB_OAUTH_CALLBACK_URL,
+ APP_BASE_URL
+}
diff --git a/api/index.js b/api/index.js
index d45471c..9c7e63c 100644
--- a/api/index.js
+++ b/api/index.js
@@ -1,9 +1,9 @@
-require('dotenv/config')
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const morgan = require('morgan')
+const config = require('./config')
const applicationInit = require('./routes/application')
const keyboards = require('./routes/keyboards')
@@ -14,14 +14,15 @@ app.use(cors({
origin: 'https://nickcoutsos.github.io'
}))
-if (process.env.ENABLE_DEV_SERVER) {
+if (config.ENABLE_DEV_SERVER) {
applicationInit(app)
}
app.use(morgan('dev'))
-app.use(keyboards)
-app.use('/github', require('./routes/github'))
app.get('/health', (req, res) => res.sendStatus(200))
+app.use(keyboards)
+config.ENABLE_GITHUB && app.use('/github', require('./routes/github'))
+
module.exports = app
diff --git a/api/routes/application.js b/api/routes/application.js
index 3ecac87..add60be 100644
--- a/api/routes/application.js
+++ b/api/routes/application.js
@@ -3,6 +3,8 @@ const path = require('path')
const express = require('express')
const expressWs = require('express-ws')
+const config = require('../config')
+
const appDir = path.join(__dirname, '..', '..', 'application')
function init (app) {
@@ -12,8 +14,8 @@ function init (app) {
cwd: appDir,
env: Object.assign({}, process.env, {
ENABLE_LOCAL: true,
- ENABLE_GITHUB: true,
- GITHUB_APP_NAME: process.env.GITHUB_APP_NAME,
+ ENABLE_GITHUB: config.ENABLE_GITHUB,
+ GITHUB_APP_NAME: config.GITHUB_APP_NAME,
API_BASE_URL: 'http://localhost:8080',
APP_BASE_URL: 'http://localhost:8080/application'
})
diff --git a/api/services/github/auth.js b/api/services/github/auth.js
index 175e5f7..fcb3ec4 100644
--- a/api/services/github/auth.js
+++ b/api/services/github/auth.js
@@ -3,12 +3,13 @@ const path = require('path')
const jwt = require('jsonwebtoken')
const api = require('./api')
+const config = require('../../config')
const pemPath = path.join(__dirname, '..', '..', '..', 'private-key.pem')
-const privateKey = process.env.GITHUB_APP_PRIVATE_KEY || fs.readFileSync(pemPath)
+const privateKey = config.GITHUB_APP_PRIVATE_KEY || fs.readFileSync(pemPath)
function createAppToken () {
- return jwt.sign({ iss: process.env.GITHUB_APP_ID }, privateKey, {
+ return jwt.sign({ iss: config.GITHUB_APP_ID }, privateKey, {
algorithm: 'RS256',
expiresIn: '10m'
})
@@ -24,8 +25,8 @@ function createOauthFlowUrl () {
const redirectUrl = new URL('https://github.com/login/oauth/authorize')
redirectUrl.search = new URLSearchParams({
- client_id: process.env.GITHUB_CLIENT_ID,
- redirect_uri: process.env.GITHUB_OAUTH_CALLBACK_URL,
+ client_id: config.GITHUB_CLIENT_ID,
+ redirect_uri: config.GITHUB_OAUTH_CALLBACK_URL,
state: 'foo'
}).toString()
@@ -33,7 +34,7 @@ function createOauthFlowUrl () {
}
function createOauthReturnUrl (token) {
- const url = new URL(process.env.APP_BASE_URL)
+ const url = new URL(config.APP_BASE_URL)
url.search = new URLSearchParams({ token }).toString()
return url.toString()
}
@@ -46,8 +47,8 @@ function getOauthToken (code) {
Accept: 'application/json'
},
data: {
- client_id: process.env.GITHUB_CLIENT_ID,
- client_secret: process.env.GITHUB_CLIENT_SECRET,
+ client_id: config.GITHUB_CLIENT_ID,
+ client_secret: config.GITHUB_CLIENT_SECRET,
code
}
})
diff --git a/api/services/zmk/layout.js b/api/services/zmk/layout.js
index c914177..17bd7e4 100644
--- a/api/services/zmk/layout.js
+++ b/api/services/zmk/layout.js
@@ -36,7 +36,6 @@ function renderTable (layout, layer, opts={}) {
(row[i] || []).length
+ columnSeparator.length
+ (useQuotes ? 2 : 0) // wrapping with quotes adds 2 characters
- + (i === 6 ? 10 : 0) // sloppily add a little space between halves (right half starts at column 6)
))
))