From 30d5170deee1dd28b0f46d622a8728b2629c1eb6 Mon Sep 17 00:00:00 2001 From: Pascal Hartig Date: Mon, 23 Aug 2021 05:21:51 -0700 Subject: [PATCH] Fix lints in CertificateProvider Summary: Some of them got re-introduced after rebasing D30411434 (https://github.com/facebook/flipper/commit/f60429cab554da0ef455c01e1ed660e300efaa73). Soz for not checking the rebase result carefully enough. Reviewed By: mweststrate Differential Revision: D30450602 fbshipit-source-id: 6c45422f7f9e34419949cec936ffffbdf1c652a4 --- .../src/server/utils/CertificateProvider.tsx | 66 +++++++------------ 1 file changed, 25 insertions(+), 41 deletions(-) diff --git a/desktop/app/src/server/utils/CertificateProvider.tsx b/desktop/app/src/server/utils/CertificateProvider.tsx index 1be86be70..db0ec37fe 100644 --- a/desktop/app/src/server/utils/CertificateProvider.tsx +++ b/desktop/app/src/server/utils/CertificateProvider.tsx @@ -11,8 +11,7 @@ import {Logger} from '../../fb-interfaces/Logger'; import {internGraphPOSTAPIRequest} from '../../fb-stubs/user'; import ServerController from '../comms/ServerController'; import {promisify} from 'util'; -import fs from 'fs'; -import fsExtra from 'fs-extra'; +import fs from 'fs-extra'; import { openssl, @@ -120,7 +119,7 @@ export default class CertificateProvider { zipPath: string, deviceID: string, ): Promise => { - const buff = await fsExtra.readFile(zipPath); + const buff = await fs.readFile(zipPath); const file = new File([buff], 'certs.zip'); return reportPlatformFailures( timeout( @@ -187,7 +186,7 @@ export default class CertificateProvider { .then(async (deviceId) => { if (medium === 'WWW') { const zipPromise = new Promise((resolve, reject) => { - const output = fsExtra.createWriteStream(certsZipPath); + const output = fs.createWriteStream(certsZipPath); const archive = archiver('zip', { zlib: {level: 9}, // Sets the compression level. }); @@ -242,15 +241,7 @@ export default class CertificateProvider { } private getCACertificate(): Promise { - return new Promise((resolve, reject) => { - fs.readFile(caCert, (err, data) => { - if (err) { - reject(err); - } else { - resolve(data.toString()); - } - }); - }); + return fs.readFile(caCert, 'utf-8'); } private generateClientCertificate(csr: string): Promise { @@ -288,11 +279,11 @@ export default class CertificateProvider { const appNamePromise = this.extractAppNameFromCSR(csr); if (medium === 'WWW') { - const certPathExists = await fsExtra.pathExists(certFolder); + const certPathExists = await fs.pathExists(certFolder); if (!certPathExists) { - await fsExtra.mkdir(certFolder); + await fs.mkdir(certFolder); } - return fsExtra.writeFile(certFolder + filename, contents).catch((e) => { + return fs.writeFile(certFolder + filename, contents).catch((e) => { throw new Error( `Failed to write ${filename} to temporary folder. Error: ${e}`, ); @@ -315,7 +306,7 @@ export default class CertificateProvider { ); } if (os === 'iOS' || os === 'windows' || os == 'MacOS') { - return fsExtra + return fs .writeFile(destination + filename, contents) .catch(async (err) => { if (os === 'iOS') { @@ -354,7 +345,7 @@ export default class CertificateProvider { ): Promise { const dir = await tmpDir({unsafeCleanup: true}); const filePath = path.resolve(dir, filename); - await fsExtra.writeFile(filePath, contents); + await fs.writeFile(filePath, contents); return await iosUtil.push( udid, filePath, @@ -508,7 +499,7 @@ export default class CertificateProvider { .then(() => dir); }) .then((dir) => { - return fsExtra + return fs .readdir(dir) .then((items) => { if (items.length > 1) { @@ -521,7 +512,7 @@ export default class CertificateProvider { }) .then((fileName) => { const copiedFile = path.resolve(dir, fileName); - return fsExtra + return fs .readFile(copiedFile) .then((data) => this.santitizeString(data.toString())); }); @@ -546,16 +537,9 @@ export default class CertificateProvider { return [path, subject]; }), ) - .then(([path, subject]) => { - return new Promise(function (resolve, reject) { - fs.unlink(path, (err) => { - if (err) { - reject(err); - } else { - resolve(subject); - } - }); - }); + .then(async ([path, subject]) => { + await fs.unlink(path); + return subject; }) .then((subject) => { const matches = subject.trim().match(x509SubjectCNRegex); @@ -577,16 +561,16 @@ export default class CertificateProvider { async loadSecureServerConfig(): Promise { await this.certificateSetup; return { - key: await fsExtra.readFile(serverKey), - cert: await fsExtra.readFile(serverCert), - ca: await fsExtra.readFile(caCert), + key: await fs.readFile(serverKey), + cert: await fs.readFile(serverCert), + ca: await fs.readFile(caCert), requestCert: true, rejectUnauthorized: true, // can be false if necessary as we don't strictly need to verify the client }; } async ensureCertificateAuthorityExists(): Promise { - if (!(await fsExtra.pathExists(caKey))) { + if (!(await fs.pathExists(caKey))) { return this.generateCertificateAuthority(); } return this.checkCertIsValid(caCert).catch(() => @@ -595,7 +579,7 @@ export default class CertificateProvider { } private async checkCertIsValid(filename: string): Promise { - if (!(await fsExtra.pathExists(filename))) { + if (!(await fs.pathExists(filename))) { return Promise.reject(new Error(`${filename} does not exist`)); } // openssl checkend is a nice feature but it only checks for certificates @@ -652,8 +636,8 @@ export default class CertificateProvider { } private async generateCertificateAuthority(): Promise { - if (!(await fsExtra.pathExists(getFilePath('')))) { - await fsExtra.mkdir(getFilePath('')); + if (!(await fs.pathExists(getFilePath('')))) { + await fs.mkdir(getFilePath('')); } console.log('Generating new CA', logTag); return openssl('genrsa', {out: caKey, '2048': false}) @@ -671,9 +655,9 @@ export default class CertificateProvider { private async ensureServerCertExists(): Promise { const allExist = Promise.all([ - fsExtra.existsSync(serverKey), - fsExtra.existsSync(serverCert), - fsExtra.existsSync(caCert), + fs.pathExists(serverKey), + fs.pathExists(serverCert), + fs.pathExists(caCert), ]).then((exist) => exist.every(Boolean)); if (!allExist) { return this.generateServerCertificate(); @@ -714,7 +698,7 @@ export default class CertificateProvider { private writeToTempFile(content: string): Promise { return tmpFile().then((path) => - fsExtra.writeFile(path, content).then((_) => path), + fs.writeFile(path, content).then((_) => path), ); } }