Skip to content

Commit

Permalink
chore: remove fs-extra dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
evansiroky committed Nov 22, 2021
1 parent 674fe6a commit 1325f41
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 46 deletions.
39 changes: 3 additions & 36 deletions lib/geo-index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const fs = require('fs')

var helpers = require('@turf/helpers')
var async = require('async')
var fs = require('fs-extra')
var geobuf = require('geobuf')
var jsts = require('jsts')
var _ = require('lodash')
Expand Down Expand Up @@ -166,28 +167,6 @@ module.exports = function (tzGeojson, dataDir, targetIndexPercent, callback) {
return ret
}

var fileWritingQueue = async.queue(
function (data, cb) {
fs.ensureDir(data.folder, function (err) {
if (err) { return cb(err) }

var filePath = data.folder + '/' + data.filename
var writeStream = fs.createWriteStream(filePath)
var output

if (filePath.split('.').pop() === 'buf') {
output = Buffer.from(geobuf.encode(data.data, new Pbf()))
} else {
output = JSON.stringify(data.data)
}

writeStream.end(output, function (err) {
if (err) { return cb(err) }
cb()
})
})
}, 10)

// create array and index lookup of timezone names
for (let i = 0; i < tzGeojson.features.length; i++) {
data.timezones.push(tzGeojson.features[i].properties.tzid)
Expand Down Expand Up @@ -412,17 +391,5 @@ module.exports = function (tzGeojson, dataDir, targetIndexPercent, callback) {

console.log('writing index file')

fileWritingQueue.drain(err => {
console.log('done indexing')
callback(
err || (
debugWriteIdx > 1
? 'At least one unexpected intersected geometry type encountered!'
: null
)
)
})

// write index data to file
fileWritingQueue.push({ folder: dataDir, filename: 'index.json', data: data })
fs.writeFile(dataDir + '/index.json', JSON.stringify(data), callback)
}
14 changes: 10 additions & 4 deletions lib/update.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
var fs = require('fs')
var https = require('follow-redirects').https
var path = require('path')

var async = require('async')
var fs = require('fs-extra')
var yauzl = require('yauzl')

var indexGeoJSON = require('./geo-index')
Expand All @@ -15,6 +15,7 @@ var downloadLatest = function (callback) {
console.log('Downloading geojson')
async.auto({
getLatestUrl: function (cb) {
console.log('Downloading latest release metadata')
https.get(
{
headers: { 'user-agent': 'node-geo-tz' },
Expand All @@ -39,12 +40,13 @@ var downloadLatest = function (callback) {
).on('error', cb)
},
rm: function (cb) {
fs.remove(dlFile, cb)
fs.rm(dlFile, { force: true, recursive: true }, cb)
},
mkdir: ['rm', function (results, cb) {
fs.ensureDir(__dirname + '/../downloads', cb)
fs.mkdir(__dirname + '/../downloads', { recursive: true }, cb)
}],
dl: ['mkdir', 'getLatestUrl', function (results, cb) {
console.log('Downloading latest release data')
https.get({
headers: { 'user-agent': 'node-geo-tz' },
host: 'github.com',
Expand Down Expand Up @@ -80,7 +82,11 @@ module.exports = function (cfg, callback) {
},
deleteIndexFoldersAndFiles: ['downloadData', function (results, cb) {
async.each(['geo.dat', 'index.json'], function (fileOrFolder, eachCb) {
fs.remove(resolvedDataDir + '/' + fileOrFolder, eachCb)
fs.rm(
resolvedDataDir + '/' + fileOrFolder,
{ force: true, recursive: true },
eachCb
)
}, cb)
}],
unzipGeoJson: ['downloadData', function (results, cb) {
Expand Down
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
"async": "^3.2.0",
"chai": "^4.3.4",
"follow-redirects": "^1.13.0",
"fs-extra": "^9.0.1",
"jsts": "^2.6.1",
"lodash": "^4.17.20",
"mocha": "^9.1.3",
Expand Down
3 changes: 2 additions & 1 deletion tests/geo-index.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
/* globals afterEach, beforeEach, describe, it */

var fs = require('fs')

var assert = require('chai').assert
var fs = require('fs-extra')
var geobuf = require('geobuf')
var Pbf = require('pbf')

Expand Down
3 changes: 2 additions & 1 deletion tests/update.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* globals afterEach, beforeEach, describe, it */

var fs = require('fs-extra')
var fs = require('fs')

var assert = require('chai').assert
var nock = require('nock')
Expand Down Expand Up @@ -55,6 +55,7 @@ describe('data update', function () {
dataDir: TEST_DATA_DIR
},
function (err) {
console.log(err)
try {
assert.isNotOk(err)
} catch (e) {
Expand Down
11 changes: 8 additions & 3 deletions tests/util.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var fs = require('fs')

var async = require('async')
var fs = require('fs-extra')

var util = {}

Expand All @@ -9,13 +10,17 @@ util.createDataDir = function (dir, callback) {
util.destroyDataDir(dir, cb)
},
createNewDataDir: ['destroyDataDir', function (results, cb) {
fs.ensureDir(dir, cb)
fs.mkdir(dir, { recursive: true }, cb)
}]
}, callback)
}

util.destroyDataDir = function (dir, callback) {
async.each([dir, dir + '.zip'], fs.remove, callback)
async.each(
[dir, dir + '.zip'],
(dir, cb) => fs.rm(dir, { force: true, recursive: true }, cb),
callback
)
}

module.exports = util

0 comments on commit 1325f41

Please sign in to comment.