diff --git a/lib/geo-index.js b/lib/geo-index.js index 6b7e428f..7df9ca0d 100644 --- a/lib/geo-index.js +++ b/lib/geo-index.js @@ -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') @@ -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) @@ -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) } diff --git a/lib/update.js b/lib/update.js index d7232de1..deb4125a 100644 --- a/lib/update.js +++ b/lib/update.js @@ -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') @@ -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' }, @@ -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', @@ -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) { diff --git a/package.json b/package.json index 1ed6a67e..d61f9430 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/tests/geo-index.test.js b/tests/geo-index.test.js index ca80183d..be9133fb 100644 --- a/tests/geo-index.test.js +++ b/tests/geo-index.test.js @@ -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') diff --git a/tests/update.test.js b/tests/update.test.js index 3269f098..f23d366b 100644 --- a/tests/update.test.js +++ b/tests/update.test.js @@ -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') @@ -55,6 +55,7 @@ describe('data update', function () { dataDir: TEST_DATA_DIR }, function (err) { + console.log(err) try { assert.isNotOk(err) } catch (e) { diff --git a/tests/util.js b/tests/util.js index 99950e13..f81cf42d 100644 --- a/tests/util.js +++ b/tests/util.js @@ -1,5 +1,6 @@ +var fs = require('fs') + var async = require('async') -var fs = require('fs-extra') var util = {} @@ -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