Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move appendLocals() in helpers #1519

Merged
merged 1 commit into from Apr 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
85 changes: 60 additions & 25 deletions lib/helpers.js
Expand Up @@ -28,31 +28,6 @@ function generateSri(file, fromString) {
return SRI_CACHE[file];
}

function selectedTheme(selected) {
if (typeof selected === 'undefined' || selected === '') {
return app.theme;
}

const theme = Number.parseInt(selected, 10);

return theme === 0 || theme ?
theme :
app.theme;
}

function getTheme(selected) {
const { themes } = files.bootswatch4;

selected = selectedTheme(selected);

return {
uri: files.bootswatch4.bootstrap
.replace('SWATCH_VERSION', files.bootswatch4.version)
.replace('SWATCH_NAME', themes[selected].name),
sri: themes[selected].sri
};
}

function generateDataJson() {
const data = {
timestamp: new Date().toISOString(),
Expand Down Expand Up @@ -106,7 +81,67 @@ function generateBodyClass(pathname) {
return `page-${pathname}`;
}

function selectedTheme(selected) {
if (typeof selected === 'undefined' || selected === '') {
return app.theme;
}

const theme = Number.parseInt(selected, 10);

return theme === 0 || theme ?
theme :
app.theme;
}

function getTheme(selected) {
const { themes } = files.bootswatch4;

selected = selectedTheme(selected);

return {
uri: files.bootswatch4.bootstrap
.replace('SWATCH_VERSION', files.bootswatch4.version)
.replace('SWATCH_NAME', themes[selected].name),
sri: themes[selected].sri
};
}

function getThemeQuery(req) {
const totalThemes = files.bootswatch4.themes.length;
const query = req.query.theme;

// Safety checks
if (Number.isNaN(query) || query < 0 || query >= totalThemes) {
return '';
}

return query;
}

function appendLocals(req, res) {
const siteUrl = getCurrentSiteurl(req);
const pageUrl = req.originalUrl;
// OK, hack-ish way...
const pathname = pageUrl.split('?')[0];
const canonicalUrl = new URL(pathname, app.siteurl);
const theme = getThemeQuery(req);
const bodyClass = generateBodyClass(pathname);

const locals = {
siteUrl,
canonicalUrl,
pageUrl,
theme,
bodyClass
};

res.locals = Object.assign(res.locals, locals);

return res;
}

module.exports = {
appendLocals,
capitalize,
generateDataJson,
theme: {
Expand Down
2 changes: 1 addition & 1 deletion routes/404.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/about.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
45 changes: 0 additions & 45 deletions routes/appendLocals.js

This file was deleted.

2 changes: 1 addition & 1 deletion routes/books.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/bootlint.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/bootswatch.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/bootswatch4.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/fontawesome.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/home.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/integrations.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/jobs.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/legacy.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/privacyPolicy.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/redirectToRoot.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/showcase.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down
2 changes: 1 addition & 1 deletion routes/themes.js
@@ -1,7 +1,7 @@
'use strict';

const express = require('express');
const appendLocals = require('./appendLocals');
const { appendLocals } = require('../lib/helpers');

const router = express.Router();

Expand Down