// site-common.js // Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; const path = require('path'); const pug = require('pug'); const Events = require('events'); class SiteCommon extends Events { constructor (dtp) { super(); this.dtp = dtp; this.appTemplateRoot = path.join(this.dtp.config.root, 'app', 'templates'); } regenerateSession (req) { return new Promise((resolve, reject) => { req.session.regenerate((err) => { if (err) { return reject(err); } resolve(); }); }); } saveSession (req) { return new Promise((resolve, reject) => { req.session.save((err) => { if (err) { return reject(err); } resolve(); }); }); } isValidString (text) { return text && (typeof text === 'string') && (text.length > 0); } loadAppTemplate (type, name) { return pug.compileFile(path.join(this.appTemplateRoot, type, name)); } loadViewTemplate (filename) { const scriptFile = path.join(this.dtp.config.root, 'app', 'views', filename); return pug.compileFile(scriptFile); } } module.exports.SiteCommon = SiteCommon;