Skip to content

Commit

Permalink
refactor(columns) read-files-sync
Browse files Browse the repository at this point in the history
  • Loading branch information
coderaiser committed Mar 3, 2018
1 parent 3eb4b8d commit b3dbc23
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 41 deletions.
18 changes: 18 additions & 0 deletions server/basename-keys.js
@@ -0,0 +1,18 @@
'use strict';

const path = require('path');

const getBaseName = (name) => path.basename(name, path.extname(name));

module.exports = (obj) => {
const result = {};

Object
.keys(obj)
.forEach((key) => {
result[getBaseName(key)] = obj[key];
});

return result;
};

24 changes: 16 additions & 8 deletions server/columns.js
@@ -1,17 +1,25 @@
'use strict';

const path = require('path');
const fs = require('fs');
const isDev = process.NODE_ENV === 'development';
const dir = getDirPath(isDev);
const readFilesSync = require('./read-files-sync');
const basenameKeys = require('./basename-keys');

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 columnsNames = fs.readdirSync(columnsDir);
const columns = readFilesSync(columnsDir, columnsNames, 'utf8');

module.exports = Object.assign(
basenameKeys(columns),
defaultColumns,
);

23 changes: 23 additions & 0 deletions server/read-files-sync.js
@@ -0,0 +1,23 @@
'uses strict';

const fs = require('fs');
const path = require('path');
const currify = require('currify/legacy');

const readSync = currify((mode, name) => fs.readFileSync(name, 'utf8'));
const join = currify((dir, name) => path.join(dir, name));
const bindNames = currify((fn, array, value, i) => fn(array[i], value));

const objectify = (key, value) => ({
[key]: value
});

module.exports = (dir, names, mode) => {
const columns = names
.map(join(dir))
.map(readSync(mode))
.map(bindNames(objectify, names));

return Object.assign.apply(null, columns)
};

21 changes: 11 additions & 10 deletions server/route.js
Expand Up @@ -14,30 +14,29 @@ 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 readFilesSync = require('./read-files-sync');
const basenameKeys = require('./basename-keys');

const Columns = require('./columns');
const Template = require('./template');

module.exports = route;
module.exports._getIndexPath = getIndexPath;

/**
Expand Down Expand Up @@ -100,7 +99,7 @@ function indexProcessing(options) {
fm: left + right,
prefix: prefix(),
config: JSON.stringify(config('*')),
columns: columns[config('columns')],
columns: Columns[config('columns')],
});

return data;
Expand All @@ -110,6 +109,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);
Expand Down
30 changes: 8 additions & 22 deletions server/template.js
@@ -1,28 +1,14 @@
'use strict';

const fs = require('fs');
const join = require('path').join;
const path = require('path');
const readFilesSync = require('./read-files-sync');
const basenameKeys = require('./basename-keys');
const squad = require('squad/legacy');

const DIR = __dirname + '/../';
const DIR_TMPL = DIR + 'tmpl/';
const DIR_FS = DIR_TMPL + 'fs/';
const templatePath = path.join(__dirname, '..', 'tmpl/fs');
const templateNames = fs.readdirSync(templatePath);
const readTemplates = squad(basenameKeys, readFilesSync);

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 = readTemplates(templatePath, templateNames, 'utf8');

2 changes: 1 addition & 1 deletion test/server/columns.js
Expand Up @@ -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);
Expand Down

0 comments on commit b3dbc23

Please sign in to comment.