From 531714804b12a764f1cb77e92c8816833a1d503a Mon Sep 17 00:00:00 2001 From: maximelkin Date: Tue, 15 Oct 2019 10:11:59 +0300 Subject: [PATCH] Use util.promisify instead of Bluebird.promisify (#3470) --- bin/cli.js | 17 +++++++++++------ lib/client.js | 3 ++- lib/migrate/MigrationGenerator.js | 2 +- lib/migrate/sources/fs-migrations.js | 5 ++--- lib/seed/Seeder.js | 20 +++++++++++--------- test/knexfile.js | 13 ++++++------- 6 files changed, 33 insertions(+), 27 deletions(-) diff --git a/bin/cli.js b/bin/cli.js index 5c7597dce2..453b432407 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -1,14 +1,14 @@ #!/usr/bin/env node /* eslint no-console:0, no-var:0 */ const Liftoff = require('liftoff'); -const Bluebird = require('bluebird'); const interpret = require('interpret'); const path = require('path'); const tildify = require('tildify'); const commander = require('commander'); const color = require('colorette'); const argv = require('getopts')(process.argv.slice(2)); -const fs = Bluebird.promisifyAll(require('fs')); +const fs = require('fs'); +const { promisify } = require('util'); const cliPkg = require('../package'); const { mkConfigObj, @@ -24,6 +24,11 @@ const { const { listMigrations } = require('./utils/migrationsLister'); +const fsPromised = { + readFile: promisify(fs.readFile), + writeFile: promisify(fs.writeFile), +}; + function initKnex(env, opts) { checkLocalModule(env); if (process.cwd() !== env.cwd) { @@ -124,15 +129,15 @@ function invoke(env) { } checkLocalModule(env); const stubPath = `./knexfile.${type}`; - pending = fs - .readFileAsync( + pending = fsPromised + .readFile( path.dirname(env.modulePath) + '/lib/migrate/stub/knexfile-' + type + '.stub' ) .then((code) => { - return fs.writeFileAsync(stubPath, code); + return fsPromised.writeFile(stubPath, code); }) .then(() => { success(color.green(`Created ${stubPath}`)); @@ -338,7 +343,7 @@ function invoke(env) { commander.parse(process.argv); - Bluebird.resolve(pending).then(() => { + Promise.resolve(pending).then(() => { commander.outputHelp(); exit('Unknown command-line options, exiting'); }); diff --git a/lib/client.js b/lib/client.js index 0021072647..9f092c9e45 100644 --- a/lib/client.js +++ b/lib/client.js @@ -19,6 +19,7 @@ const ColumnCompiler = require('./schema/columncompiler'); const { Pool, TimeoutError } = require('tarn'); const inherits = require('inherits'); const { EventEmitter } = require('events'); +const { promisify } = require('util'); const { makeEscape } = require('./query/string'); const { uniqueId, cloneDeep, defaults } = require('lodash'); @@ -259,7 +260,7 @@ Object.assign(Client.prototype, { connection.__knexUid = uniqueId('__knexUid'); if (poolConfig.afterCreate) { - await Bluebird.promisify(poolConfig.afterCreate)(connection); + await promisify(poolConfig.afterCreate)(connection); } return connection; }); diff --git a/lib/migrate/MigrationGenerator.js b/lib/migrate/MigrationGenerator.js index bd2426e27c..3fb69c24e1 100644 --- a/lib/migrate/MigrationGenerator.js +++ b/lib/migrate/MigrationGenerator.js @@ -1,7 +1,7 @@ const fs = require('fs'); const path = require('path'); +const { promisify } = require('util'); const mkdirp = require('mkdirp'); -const {promisify} = require('util'); const { writeJsFileUsingTemplate } = require('../util/template'); const { getMergedConfig } = require('./configuration-merger'); diff --git a/lib/migrate/sources/fs-migrations.js b/lib/migrate/sources/fs-migrations.js index ace1c0b010..67c866c6f8 100644 --- a/lib/migrate/sources/fs-migrations.js +++ b/lib/migrate/sources/fs-migrations.js @@ -1,10 +1,9 @@ const fs = require('fs'); const path = require('path'); -const Bluebird = require('bluebird'); +const { promisify } = require('util'); const { sortBy, filter } = require('lodash'); -const readDirAsync = (path) => - Bluebird.promisify(fs.readdir, { context: fs })(path); +const readDirAsync = promisify(fs.readdir); const DEFAULT_LOAD_EXTENSIONS = Object.freeze([ '.co', diff --git a/lib/seed/Seeder.js b/lib/seed/Seeder.js index c94cb2da7f..b4cda7fbe5 100644 --- a/lib/seed/Seeder.js +++ b/lib/seed/Seeder.js @@ -3,6 +3,7 @@ const fs = require('fs'); const path = require('path'); +const { promisify } = require('util'); const mkdirp = require('mkdirp'); const Bluebird = require('bluebird'); const { @@ -50,12 +51,11 @@ class Seeder { async _listAll(config) { this.config = this.setConfig(config); const loadExtensions = this.config.loadExtensions; - return Bluebird.promisify(fs.readdir, { context: fs })( + return promisify(fs.readdir)( this._absoluteConfigDir() ) - .bind(this) .then((seeds) => - filter(seeds, function(value) { + filter(seeds, (value) => { const extension = path.extname(value); return includes(loadExtensions, extension); }).sort() @@ -69,11 +69,13 @@ class Seeder { // Ensures a folder for the seeds exist, dependent on the // seed config settings. - _ensureFolder() { + async _ensureFolder() { const dir = this._absoluteConfigDir(); - return Bluebird.promisify(fs.stat, { context: fs })(dir).catch(() => - Bluebird.promisify(mkdirp)(dir) - ); + try { + await promisify(fs.stat)(dir); + } catch (e) { + await promisify(mkdirp)(dir); + } } // Run seed files, in sequence. @@ -106,7 +108,7 @@ class Seeder { // Generates the stub template for the current seed file, returning a compiled template. _generateStubTemplate() { const stubPath = this._getStubPath(); - return Bluebird.promisify(fs.readFile, { context: fs })(stubPath).then( + return promisify(fs.readFile)(stubPath).then( (stub) => template(stub.toString(), { variable: 'd' }) ); } @@ -118,7 +120,7 @@ class Seeder { _getNewStubFilePath(name) { return path.join(this._absoluteConfigDir(), this._getNewStubFileName(name)); - } + } // Write a new seed to disk, using the config and generated filename, // passing any `variables` given in the config to the template. diff --git a/test/knexfile.js b/test/knexfile.js index 0f3c2cc069..a7ba7eecf3 100644 --- a/test/knexfile.js +++ b/test/knexfile.js @@ -2,10 +2,10 @@ /* eslint no-var: 0 */ const assert = require('assert'); +const { promisify } = require('util'); const testConfig = (process.env.KNEX_TEST && require(process.env.KNEX_TEST)) || {}; const _ = require('lodash'); -const Bluebird = require('bluebird'); // excluding redshift, oracle, and mssql dialects from default integrations test const testIntegrationDialects = ( @@ -31,12 +31,11 @@ const poolSqlite = { const mysqlPool = _.extend({}, pool, { afterCreate: function(connection, callback) { - Bluebird.promisify(connection.query, { context: connection })( - "SET sql_mode='TRADITIONAL';", - [] - ).then(function() { - callback(null, connection); - }); + promisify(connection.query) + .call(connection, "SET sql_mode='TRADITIONAL';", []) + .then(function() { + callback(null, connection); + }); }, });