From b803021ce2e802c68ec4570604afe2a6db6f5ee4 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sun, 22 Sep 2019 23:40:05 +0300 Subject: [PATCH] refactor(server) convert fs to fs.promises --- server/markdown/index.js | 8 ++------ server/route.js | 8 ++++---- server/route.spec.js | 14 +++++++------- server/user-menu.js | 5 +---- 4 files changed, 14 insertions(+), 21 deletions(-) diff --git a/server/markdown/index.js b/server/markdown/index.js index 1f913ccd..47acd8b8 100644 --- a/server/markdown/index.js +++ b/server/markdown/index.js @@ -1,17 +1,13 @@ 'use strict'; -const fs = require('fs'); +const {readFile} = require('fs').promises; const {join} = require('path'); -const { - callbackify, - promisify, -} = require('util'); +const {callbackify} = require('util'); const pullout = require('pullout'); const ponse = require('ponse'); const threadIt = require('thread-it'); -const readFile = promisify(fs.readFile); const parse = threadIt(join(__dirname, 'worker')); const root = require('../root'); diff --git a/server/route.js b/server/route.js index 0dece5f1..7429eb00 100644 --- a/server/route.js +++ b/server/route.js @@ -3,7 +3,7 @@ const DIR_SERVER = './'; const DIR_COMMON = '../common/'; -const fs = require('fs'); +const {realpath} = require('fs').promises; const {promisify} = require('util'); const flop = require('flop'); @@ -36,18 +36,18 @@ const {FS} = CloudFunc; const Columns = require(`${DIR_SERVER}/columns`); const Template = require(`${DIR_SERVER}/template`); +const flopRead = promisify(flop.read); + const tokenize = (fn, a) => (b) => fn(a, b); const getReadDir = (config) => { if (!config('dropbox')) - return promisify(flop.read); + return flopRead; const {readDir} = onceRequire('@cloudcmd/dropbox'); return tokenize(readDir, config('dropboxToken')); }; -const realpath = promisify(fs.realpath); - /** * routing of server queries */ diff --git a/server/route.spec.js b/server/route.spec.js index b2bd808d..b09be67b 100644 --- a/server/route.spec.js +++ b/server/route.spec.js @@ -190,7 +190,9 @@ test('cloudcmd: route: file: fs', async (t) => { options, }); - t.equal(body, '', 'should equal'); + const expected = 'EISDIR: illegal operation on a directory, read'; + + t.equal(body, expected, 'should equal'); t.end(); }); @@ -239,11 +241,10 @@ test('cloudcmd: route: not found', async (t) => { test('cloudcmd: route: realpath: error', async (t) => { const error = 'realpath error'; - const {realpath} = fs; + const {realpath} = fs.promises; - fs.realpath = (name, fn) => { - fn(error); - fs.realpath = realpath; + fs.promises.realpath = async () => { + throw error; }; const config = { @@ -265,8 +266,7 @@ test('cloudcmd: route: realpath: error', async (t) => { options, }); - /*eslint require-atomic-updates:0*/ - fs.realpath = realpath; + fs.promises.realpath = realpath; t.ok(/^ENOENT/.test(body), 'should return error'); t.end(); diff --git a/server/user-menu.js b/server/user-menu.js index 0558550b..eff58fd2 100644 --- a/server/user-menu.js +++ b/server/user-menu.js @@ -1,10 +1,9 @@ 'use strict'; const {homedir} = require('os'); -const fs = require('fs'); +const {readFile} = require('fs').promises; const {join} = require('path'); -const {promisify} = require('util'); const tryToCatch = require('try-to-catch'); const currify = require('currify'); @@ -18,8 +17,6 @@ threadIt.init(); // warm up worker cache transpile(''); -const readFile = promisify(fs.readFile); - const URL = '/api/v1/user-menu'; const DEFAULT_MENU_PATH = join(__dirname, '../static/user-menu.js');