From 4ead3dc4bfdb49f380a46ae9049267720260b2db Mon Sep 17 00:00:00 2001 From: siiky Date: Fri, 28 Jun 2024 15:53:22 +0100 Subject: [PATCH] refactor: replace `fs`+`util.promisify` with `fs/promises` --- lib/ofac/index.js | 5 +---- lib/ofac/update.js | 32 +++++++++----------------------- 2 files changed, 10 insertions(+), 27 deletions(-) diff --git a/lib/ofac/index.js b/lib/ofac/index.js index fff2f70e..f51a3ad8 100644 --- a/lib/ofac/index.js +++ b/lib/ofac/index.js @@ -1,6 +1,5 @@ -const fs = require('fs') +const { readdir } = require('fs/promises') const path = require('path') -const util = require('util') const loader = require('./loading') const matcher = require('./matching') const nameUtils = require('./name-utils') @@ -13,8 +12,6 @@ const OFAC_DATA_DIR = process.env.OFAC_DATA_DIR let structs = null -const readdir = util.promisify(fs.readdir) - function load () { if (!OFAC_DATA_DIR) { const message = 'The ofacDataDir option has not been set in the environment' diff --git a/lib/ofac/update.js b/lib/ofac/update.js index a8a45d5b..d1408687 100644 --- a/lib/ofac/update.js +++ b/lib/ofac/update.js @@ -1,9 +1,10 @@ const parser = require('./parsing') const https = require('https') const URL = require('url') -const fs = require('fs') +const { createWriteStream } = require('fs') +const fs = require('fs/promises') +const { readFile, writeFile, rename, unlink } = fs const path = require('path') -const util = require('util') const _ = require('lodash/fp') const logger = require('../logger') @@ -18,24 +19,9 @@ const ofacSources = _.map( _.zip(OFAC_SOURCES_NAMES, OFAC_SOURCES_URLS) ) -function mkdir (path) { - return new Promise((resolve, reject) => { - fs.mkdir(path, err => { - if (!err) return resolve() - if (err.code === 'EEXIST') return resolve() - reject(err) - }) - }) -} - -const readFile = util.promisify(fs.readFile) -const writeFile = util.promisify(fs.writeFile) -const rename = util.promisify(fs.rename) -const unlink = util.promisify(fs.unlink) - -const remove = file => { - return unlink(file) -} +const mkdir = path => + fs.mkdir(path) + .catch(err => err.code === 'EEXIST' ? Promise.resolve() : Promise.reject(err)) const promiseGetEtag = ({ url }) => new Promise((resolve, reject) => { @@ -58,7 +44,7 @@ const promiseGetEtag = ({ url }) => const download = (dstDir, { name, url }) => { const dstFile = path.join(dstDir, name + '.xml') - const file = fs.createWriteStream(dstFile) + const file = createWriteStream(dstFile) return new Promise((resolve, reject) => { const request = https.get(url, response => { @@ -72,7 +58,7 @@ const download = (dstDir, { name, url }) => { const parseToJson = srcFile => { const dstFile = srcFile.replace(/\.xml$/, '.json') - const writeStream = fs.createWriteStream(dstFile) + const writeStream = createWriteStream(dstFile) return new Promise((resolve, reject) => { parser.parse(srcFile, (err, profile) => { @@ -160,7 +146,7 @@ function update () { return Promise.all(downloads) .then(parsed => { const moves = _.map(src => moveToSourcesDir(src, OFAC_SOURCES_DIR), parsed) - const deletions = _.map(remove, missing) + const deletions = _.map(unlink, missing) const updateEtags = writeFile(OFAC_ETAGS_FILE, etagsJson) return Promise.all([updateEtags, ...moves, ...deletions])