diff --git a/package.json b/package.json index cb2fa1e1..447605eb 100644 --- a/package.json +++ b/package.json @@ -109,6 +109,7 @@ }, "subdomain": "cloudcmd", "dependencies": { + "@cloudcmd/read-files-sync": "^1.0.0", "apart": "^1.0.1", "chalk": "^2.0.1", "checkup": "^1.3.0", diff --git a/server/columns.js b/server/columns.js index fa1433ed..cbb77be3 100644 --- a/server/columns.js +++ b/server/columns.js @@ -1,17 +1,22 @@ 'use strict'; -const fs = require('fs'); -const isDev = process.NODE_ENV === 'development'; -const dir = getDirPath(isDev); +const path = require('path'); +const readFilesSync = require('@cloudcmd/read-files-sync'); -module.exports = { +const defaultColumns = { '': '', - 'name-size-date': fs.readFileSync(`${dir}/name-size-date.css`, 'utf8'), 'name-size-date-owner-mode': '', }; -function getDirPath (isDev) { - const dist = isDev ? 'dist-dev' : 'dist'; - return `${__dirname}/../${dist}/columns`; -} +const isDev = process.NODE_ENV === 'development'; +const getDist = (isDev) => isDev ? 'dist-dev' : 'dist'; + +const dist = getDist(isDev); +const columnsDir = path.join(__dirname, '..', dist, 'columns'); +const columns = readFilesSync(columnsDir, 'utf8'); + +module.exports = Object.assign( + columns, + defaultColumns +); diff --git a/server/route.js b/server/route.js index e52f8def..507aaa22 100644 --- a/server/route.js +++ b/server/route.js @@ -14,30 +14,26 @@ const format = require('format-io'); const squad = require('squad/legacy'); const apart = require('apart'); -const columns = require(DIR_SERVER + 'columns'); const config = require(DIR_SERVER + 'config'); const root = require(DIR_SERVER + 'root'); const prefixer = require(DIR_SERVER + 'prefixer'); const CloudFunc = require(DIR_COMMON + 'cloudfunc'); -const Template = require(DIR_SERVER + 'template')(); - const prefix = squad(prefixer, apart(config, 'prefix')); const isDev = process.env.NODE_ENV === 'development'; +const getDist = (isDev) => isDev ? 'dist-dev' : 'dist'; const getIndexPath = (isDev) => { - const dist = isDev ? 'dist-dev' : 'dist'; + const dist = getDist(isDev); return path.join(DIR, `${dist}/index.html`); }; const FS = CloudFunc.FS; -module.exports = (req, res, next) => { - check(req, res, next); - - route(req, res, next); -}; +const Columns = require('./columns'); +const Template = require('./template'); +module.exports = route; module.exports._getIndexPath = getIndexPath; /** @@ -100,7 +96,7 @@ function indexProcessing(options) { fm: left + right, prefix: prefix(), config: JSON.stringify(config('*')), - columns: columns[config('columns')], + columns: Columns[config('columns')], }); return data; @@ -110,6 +106,8 @@ function indexProcessing(options) { * routing of server queries */ function route(request, response, callback) { + check(request, response, callback); + let name = ponse.getPathName(request); const isFS = RegExp('^/$|^' + FS).test(name); diff --git a/server/template.js b/server/template.js index c0bc4226..150b63fd 100644 --- a/server/template.js +++ b/server/template.js @@ -1,28 +1,8 @@ 'use strict'; -const fs = require('fs'); -const join = require('path').join; +const path = require('path'); +const readFilesSync = require('@cloudcmd/read-files-sync'); +const templatePath = path.join(__dirname, '..', 'tmpl/fs'); -const DIR = __dirname + '/../'; -const DIR_TMPL = DIR + 'tmpl/'; -const DIR_FS = DIR_TMPL + 'fs/'; - -const TMPL_PATH = [ - 'file', - 'panel', - 'path', - 'pathLink', - 'link', -]; - -module.exports = () => { - const templates = {}; - - TMPL_PATH.forEach((name) => { - const path = join(DIR_FS, `${name}.hbs`); - templates[name] = fs.readFileSync(path, 'utf8'); - }); - - return templates; -}; +module.exports = readFilesSync(templatePath, 'utf8'); diff --git a/test/server/columns.js b/test/server/columns.js index eb0d89a7..8ec0a688 100644 --- a/test/server/columns.js +++ b/test/server/columns.js @@ -2,8 +2,8 @@ const test = require('tape'); const fs = require('fs'); -const columnsPath = '../../server/columns'; const clean = require('clear-module'); +const columnsPath = '../../server/columns'; test('columns', (t) => { const columns = require(columnsPath);