[mkdirp] remove in favor of recursive fs.mkdir (#47251)

* [mkdirp] remove in favor of recursive fs.mkdir

* add eslint rule to educate future contributors

* reword the eslint error message to prevent copy-pasting callback code

* Commit updated kbn-pm dist

Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>

* Fix typo

Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
This commit is contained in:
Spencer 2019-10-04 08:15:06 -07:00 committed by GitHub
parent f4c697ba24
commit 3bc803e371
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 177 additions and 228 deletions

View file

@ -195,7 +195,6 @@
"markdown-it": "^8.4.1",
"mini-css-extract-plugin": "0.8.0",
"minimatch": "^3.0.4",
"mkdirp": "0.5.1",
"moment": "^2.20.1",
"moment-timezone": "^0.5.14",
"mustache": "2.3.2",
@ -322,7 +321,6 @@
"@types/lru-cache": "^5.1.0",
"@types/markdown-it": "^0.0.7",
"@types/minimatch": "^2.0.29",
"@types/mkdirp": "^0.5.2",
"@types/mocha": "^5.2.7",
"@types/moment-timezone": "^0.5.8",
"@types/mustache": "^0.8.31",

View file

@ -22,6 +22,11 @@ module.exports = {
from: 'expect.js',
to: '@kbn/expect',
},
{
from: 'mkdirp',
to: false,
disallowedMessage: `Don't use 'mkdirp', use the new { recursive: true } option of Fs.mkdir instead`
},
{
from: 'x-pack',
toRelative: 'x-pack',

View file

@ -14,7 +14,6 @@
"execa": "^1.0.0",
"getopts": "^2.2.4",
"glob": "^7.1.2",
"mkdirp": "^0.5.1",
"node-fetch": "^2.6.0",
"simple-git": "^1.91.0",
"tar-fs": "^1.16.3",

View file

@ -22,7 +22,6 @@ const AbortController = require('abort-controller');
const fs = require('fs');
const { promisify } = require('util');
const { pipeline, Transform } = require('stream');
const mkdirp = require('mkdirp');
const chalk = require('chalk');
const { createHash } = require('crypto');
const path = require('path');
@ -285,7 +284,8 @@ exports.Artifact = class Artifact {
let first500Bytes = Buffer.alloc(0);
let contentLength = 0;
mkdirp.sync(path.dirname(tmpPath));
fs.mkdirSync(path.dirname(tmpPath), { recursive: true });
await asyncPipeline(
resp.body,
new Transform({

View file

@ -24,7 +24,6 @@ const { pipeline, Transform } = require('stream');
const Fs = require('fs');
const getopts = require('getopts');
const mkdirp = require('mkdirp');
const del = require('del');
const { buildSnapshot, log } = require('../utils');
@ -49,7 +48,7 @@ exports.run = async (defaults = {}) => {
const outputDir = resolve(process.cwd(), options.output);
del.sync(outputDir);
mkdirp.sync(outputDir);
Fs.mkdirSync(outputDir, { recursive: true });
for (const license of ['oss', 'trial']) {
for (const platform of ['darwin', 'win32', 'linux']) {

View file

@ -18,7 +18,6 @@
*/
const fs = require('fs');
const mkdirp = require('mkdirp');
const path = require('path');
exports.readMeta = function readMeta(file) {
@ -48,6 +47,6 @@ exports.writeMeta = function readMeta(file, details = {}) {
...details,
};
mkdirp.sync(path.dirname(file));
fs.mkdirSync(path.dirname(file), { recursive: true });
fs.writeFileSync(`${file}.meta`, JSON.stringify(meta, null, 2));
};

View file

@ -21,7 +21,6 @@ const fs = require('fs');
const path = require('path');
const yauzl = require('yauzl');
const mkdirp = require('mkdirp');
const zlib = require('zlib');
const tarFs = require('tar-fs');
@ -38,7 +37,7 @@ function decompressTarball(archive, dirPath) {
}
function decompressZip(input, output) {
mkdirp.sync(output);
fs.mkdirSync(output, { recursive: true });
return new Promise((resolve, reject) => {
yauzl.open(input, { lazyEntries: true }, (err, zipfile) => {
if (err) {
@ -63,7 +62,7 @@ function decompressZip(input, output) {
const fileName = path.resolve(output, zipPath);
if (/\/$/.test(entry.fileName)) {
mkdirp.sync(fileName);
fs.mkdirSync(fileName, { recursive: true });
zipfile.readEntry();
} else {
// file entry

View file

@ -20,7 +20,6 @@
const { decompress } = require('./decompress');
const fs = require('fs');
const path = require('path');
const mkdirp = require('mkdirp');
const del = require('del');
const os = require('os');
@ -34,9 +33,9 @@ const zipSnapshot = path.resolve(dataFolder, 'snapshot.zip');
const tarGzSnapshot = path.resolve(dataFolder, 'snapshot.tar.gz');
beforeEach(() => {
mkdirp.sync(tmpFolder);
mkdirp.sync(dataFolder);
mkdirp.sync(esFolder);
fs.mkdirSync(tmpFolder, { recursive: true });
fs.mkdirSync(dataFolder, { recursive: true });
fs.mkdirSync(esFolder, { recursive: true });
fs.copyFileSync(path.resolve(fixturesFolder, 'snapshot.zip'), zipSnapshot);
fs.copyFileSync(path.resolve(fixturesFolder, 'snapshot.tar.gz'), tarGzSnapshot);

View file

@ -19,7 +19,6 @@
const path = require('path');
const fs = require('fs');
const mkdirp = require('mkdirp');
/**
* Copies config references to an absolute path to
@ -62,7 +61,7 @@ function copyFileSync(src, dest) {
const destPath = path.dirname(dest);
if (!fs.existsSync(destPath)) {
mkdirp(destPath);
fs.mkdirSync(destPath, { recursive: true });
}
fs.writeFileSync(dest, fs.readFileSync(src));

View file

@ -31,6 +31,14 @@ function checkModuleNameNode(context, mappings, node) {
let newSource;
if (mapping.to === false) {
context.report({
message: mapping.disallowedMessage || `Importing "${mapping.from}" is not allowed`,
loc: node.loc,
});
return;
}
// support for toRelative added to migrate away from X-Pack being bundled
// within node modules. after that migration, this can be removed.
if (mapping.toRelative) {
@ -66,11 +74,21 @@ module.exports = {
type: 'string',
},
to: {
type: 'string',
anyOf: [
{
type: 'string',
},
{
const: false,
},
],
},
toRelative: {
type: 'string',
},
disallowedMessage: {
type: 'string',
},
},
anyOf: [
{

View file

@ -2697,11 +2697,11 @@ async function linkProjectExecutables(projectsByName, projectGraph) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readFile", function() { return readFile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chmod", function() { return chmod; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mkdirp", function() { return mkdirp; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unlink", function() { return unlink; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyDirectory", function() { return copyDirectory; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chmod", function() { return chmod; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readFile", function() { return readFile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mkdirp", function() { return mkdirp; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSymlink", function() { return isSymlink; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDirectory", function() { return isDirectory; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFile", function() { return isFile; });
@ -2710,14 +2710,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var cmd_shim__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cmd_shim__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var mkdirp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31);
/* harmony import */ var mkdirp__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(mkdirp__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var ncp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
/* harmony import */ var ncp__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(ncp__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29);
/* harmony import */ var util__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(util__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var ncp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
/* harmony import */ var ncp__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(ncp__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29);
/* harmony import */ var util__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(util__WEBPACK_IMPORTED_MODULE_4__);
/*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
@ -2741,16 +2739,17 @@ __webpack_require__.r(__webpack_exports__);
const lstat = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.lstat);
const readFile = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.readFile);
const symlink = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.symlink);
const chmod = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.chmod);
const cmdShim = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(cmd_shim__WEBPACK_IMPORTED_MODULE_0___default.a);
const mkdirp = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(mkdirp__WEBPACK_IMPORTED_MODULE_2___default.a);
const unlink = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.unlink);
const copyDirectory = Object(util__WEBPACK_IMPORTED_MODULE_5__["promisify"])(ncp__WEBPACK_IMPORTED_MODULE_3__["ncp"]);
const lstat = Object(util__WEBPACK_IMPORTED_MODULE_4__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.lstat);
const readFile = Object(util__WEBPACK_IMPORTED_MODULE_4__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.readFile);
const symlink = Object(util__WEBPACK_IMPORTED_MODULE_4__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.symlink);
const chmod = Object(util__WEBPACK_IMPORTED_MODULE_4__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.chmod);
const cmdShim = Object(util__WEBPACK_IMPORTED_MODULE_4__["promisify"])(cmd_shim__WEBPACK_IMPORTED_MODULE_0___default.a);
const mkdir = Object(util__WEBPACK_IMPORTED_MODULE_4__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.mkdir);
const mkdirp = async path => await mkdir(path, {
recursive: true
});
const unlink = Object(util__WEBPACK_IMPORTED_MODULE_4__["promisify"])(fs__WEBPACK_IMPORTED_MODULE_1___default.a.unlink);
const copyDirectory = Object(util__WEBPACK_IMPORTED_MODULE_4__["promisify"])(ncp__WEBPACK_IMPORTED_MODULE_2__["ncp"]);
async function statTest(path, block) {
try {
@ -2808,7 +2807,7 @@ async function createSymlink(src, dest, type) {
}
} else {
const posixType = type === 'exec' ? 'file' : type;
const relativeSource = Object(path__WEBPACK_IMPORTED_MODULE_4__["relative"])(Object(path__WEBPACK_IMPORTED_MODULE_4__["dirname"])(dest), src);
const relativeSource = Object(path__WEBPACK_IMPORTED_MODULE_3__["relative"])(Object(path__WEBPACK_IMPORTED_MODULE_3__["dirname"])(dest), src);
await forceCreate(relativeSource, dest, posixType);
}
}

View file

@ -26,7 +26,6 @@
"@types/indent-string": "^3.0.0",
"@types/lodash.clonedeepwith": "^4.5.3",
"@types/log-symbols": "^2.0.0",
"@types/mkdirp": "^0.5.2",
"@types/ncp": "^2.0.1",
"@types/node": "^10.12.27",
"@types/ora": "^1.3.5",
@ -50,7 +49,6 @@
"indent-string": "^3.2.0",
"lodash.clonedeepwith": "^4.5.0",
"log-symbols": "^2.2.0",
"mkdirp": "^0.5.1",
"ncp": "^2.0.0",
"ora": "^1.4.0",
"prettier": "^1.14.3",

View file

@ -19,22 +19,20 @@
import cmdShimCb from 'cmd-shim';
import fs from 'fs';
import mkdirpCb from 'mkdirp';
import { ncp } from 'ncp';
import { dirname, relative } from 'path';
import { promisify } from 'util';
const lstat = promisify(fs.lstat);
const readFile = promisify(fs.readFile);
export const readFile = promisify(fs.readFile);
const symlink = promisify(fs.symlink);
const chmod = promisify(fs.chmod);
export const chmod = promisify(fs.chmod);
const cmdShim = promisify<string, string>(cmdShimCb);
const mkdirp = promisify(mkdirpCb);
const mkdir = promisify(fs.mkdir);
export const mkdirp = async (path: string) => await mkdir(path, { recursive: true });
export const unlink = promisify(fs.unlink);
export const copyDirectory = promisify(ncp);
export { chmod, readFile, mkdirp };
async function statTest(path: string, block: (stats: fs.Stats) => boolean) {
try {
return block(await lstat(path));

View file

@ -18,10 +18,9 @@
*/
import { resolve, dirname, relative } from 'path';
import { writeFileSync } from 'fs';
import { writeFileSync, mkdirSync } from 'fs';
import { inspect } from 'util';
import mkdirp from 'mkdirp';
import xmlBuilder from 'xmlbuilder';
import { getSnapshotOfRunnableLogs } from './log_cache';
@ -150,7 +149,7 @@ export function setupJUnitReportGeneration(runner, options = {}) {
spacebeforeslash: '',
});
mkdirp.sync(dirname(reportPath));
mkdirSync(dirname(reportPath), { recursive: true });
writeFileSync(reportPath, reportXML, 'utf8');
});
}

View file

@ -475,14 +475,6 @@
'@types/minimatch',
],
},
{
groupSlug: 'mkdirp',
groupName: 'mkdirp related packages',
packageNames: [
'mkdirp',
'@types/mkdirp',
],
},
{
groupSlug: 'mustache',
groupName: 'mustache related packages',

View file

@ -21,7 +21,6 @@ import { spawn } from 'child_process';
import fs from 'fs';
import path from 'path';
import os from 'os';
import mkdirp from 'mkdirp';
import rimraf from 'rimraf';
import { safeDump } from 'js-yaml';
@ -59,7 +58,7 @@ describe('Server logging configuration', function () {
isJson = true;
setLoggingJson(true);
mkdirp.sync(tempDir);
fs.mkdirSync(tempDir, { recursive: true });
});
afterEach(() => {

View file

@ -21,7 +21,7 @@ import sinon from 'sinon';
import nock from 'nock';
import glob from 'glob-all';
import rimraf from 'rimraf';
import mkdirp from 'mkdirp';
import Fs from 'fs';
import Logger from '../lib/logger';
import { UnsupportedProtocolError } from '../lib/errors';
import { download, _downloadSingle, _getFilePath, _checkFilePathDeprecation } from './download';
@ -64,7 +64,7 @@ describe('kibana cli', function () {
sinon.stub(logger, 'log');
sinon.stub(logger, 'error');
rimraf.sync(testWorkingPath);
mkdirp.sync(testWorkingPath);
Fs.mkdirSync(testWorkingPath, { recursive: true });
});
afterEach(function () {

View file

@ -17,8 +17,10 @@
* under the License.
*/
import Fs from 'fs';
import { promisify } from 'util';
import { download } from './download';
import Promise from 'bluebird';
import path from 'path';
import { cleanPrevious, cleanArtifacts } from './cleanup';
import { extract, getPackData } from './pack';
@ -27,9 +29,8 @@ import { sync as rimrafSync } from 'rimraf';
import { errorIfXPackInstall } from '../lib/error_if_x_pack';
import { existingInstall, assertVersion } from './kibana';
import { prepareExternalProjectDependencies } from '@kbn/pm';
import mkdirp from 'mkdirp';
const mkdir = Promise.promisify(mkdirp);
const mkdir = promisify(Fs.mkdir);
export default async function install(settings, logger) {
try {
@ -37,7 +38,7 @@ export default async function install(settings, logger) {
await cleanPrevious(settings, logger);
await mkdir(settings.workingPath);
await mkdir(settings.workingPath, { recursive: true });
await download(settings, logger);

View file

@ -27,7 +27,6 @@ import sinon from 'sinon';
import Logger from '../lib/logger';
import { join } from 'path';
import rimraf from 'rimraf';
import mkdirp from 'mkdirp';
import fs from 'fs';
import { existingInstall, assertVersion } from './kibana';
@ -55,7 +54,7 @@ describe('kibana cli', function () {
beforeEach(function () {
rimraf.sync(testWorkingPath);
mkdirp.sync(testWorkingPath);
fs.mkdirSync(testWorkingPath, { recursive: true });
sinon.stub(logger, 'log');
sinon.stub(logger, 'error');
});

View file

@ -17,10 +17,11 @@
* under the License.
*/
import Fs from 'fs';
import sinon from 'sinon';
import glob from 'glob-all';
import rimraf from 'rimraf';
import mkdirp from 'mkdirp';
import Logger from '../lib/logger';
import { extract, getPackData } from './pack';
import { _downloadSingle } from './download';
@ -58,7 +59,7 @@ describe('kibana cli', function () {
logger = new Logger(settings);
sinon.stub(logger, 'log');
sinon.stub(logger, 'error');
mkdirp.sync(testWorkingPath);
Fs.mkdirSync(testWorkingPath, { recursive: true });
});
afterEach(function () {

View file

@ -19,8 +19,7 @@
import yauzl from 'yauzl';
import path from 'path';
import mkdirp from 'mkdirp';
import { createWriteStream } from 'fs';
import { createWriteStream, mkdir } from 'fs';
import { get } from 'lodash';
/**
@ -112,7 +111,7 @@ export function extractArchive(archive, targetDir, extractPath) {
}
if (_isDirectory(fileName)) {
mkdirp(fileName, function (err) {
mkdir(fileName, { recursive: true }, function (err) {
if (err) {
return reject(err);
}
@ -127,7 +126,7 @@ export function extractArchive(archive, targetDir, extractPath) {
}
// ensure parent directory exists
mkdirp(path.dirname(fileName), function (err) {
mkdir(path.dirname(fileName), { recursive: true }, function (err) {
if (err) {
return reject(err);
}

View file

@ -19,16 +19,15 @@
import sinon from 'sinon';
import rimraf from 'rimraf';
import mkdirp from 'mkdirp';
import Logger from '../lib/logger';
import list from './list';
import { join } from 'path';
import { writeFileSync, appendFileSync } from 'fs';
import { writeFileSync, appendFileSync, mkdirSync } from 'fs';
function createPlugin(name, version, pluginBaseDir) {
const pluginDir = join(pluginBaseDir, name);
mkdirp.sync(pluginDir);
mkdirSync(pluginDir, { recursive: true });
appendFileSync(join(pluginDir, 'package.json'), '{"version": "' + version + '"}');
}
@ -48,7 +47,7 @@ describe('kibana cli', function () {
sinon.stub(logger, 'log');
sinon.stub(logger, 'error');
rimraf.sync(pluginDir);
mkdirp.sync(pluginDir);
mkdirSync(pluginDir, { recursive: true });
});
afterEach(function () {
@ -97,7 +96,7 @@ describe('kibana cli', function () {
it('list should throw an exception if a plugin does not have a package.json', function () {
createPlugin('plugin1', '1.0.0', pluginDir);
mkdirp.sync(join(pluginDir, 'empty-plugin'));
mkdirSync(join(pluginDir, 'empty-plugin'), { recursive: true });
expect(function () {
list(settings, logger);
@ -107,7 +106,7 @@ describe('kibana cli', function () {
it('list should throw an exception if a plugin have an empty package.json', function () {
createPlugin('plugin1', '1.0.0', pluginDir);
const invalidPluginDir = join(pluginDir, 'invalid-plugin');
mkdirp.sync(invalidPluginDir);
mkdirSync(invalidPluginDir, { recursive: true });
appendFileSync(join(invalidPluginDir, 'package.json'), '');
expect(function () {

View file

@ -20,11 +20,10 @@
import sinon from 'sinon';
import glob from 'glob-all';
import rimraf from 'rimraf';
import mkdirp from 'mkdirp';
import Logger from '../lib/logger';
import remove from './remove';
import { join } from 'path';
import { writeFileSync, existsSync } from 'fs';
import { writeFileSync, existsSync, mkdirSync } from 'fs';
describe('kibana cli', function () {
@ -42,7 +41,7 @@ describe('kibana cli', function () {
sinon.stub(logger, 'log');
sinon.stub(logger, 'error');
rimraf.sync(pluginDir);
mkdirp.sync(pluginDir);
mkdirSync(pluginDir, { recursive: true });
});
afterEach(function () {
@ -72,7 +71,7 @@ describe('kibana cli', function () {
it('remove x-pack if it exists', () => {
settings.pluginPath = join(pluginDir, 'x-pack');
settings.plugin = 'x-pack';
mkdirp.sync(join(pluginDir, 'x-pack'));
mkdirSync(join(pluginDir, 'x-pack'), { recursive: true });
expect(existsSync(settings.pluginPath)).toEqual(true);
remove(settings, logger);
expect(existsSync(settings.pluginPath)).toEqual(false);
@ -88,8 +87,8 @@ describe('kibana cli', function () {
it('delete the specified folder.', function () {
settings.pluginPath = join(pluginDir, 'foo');
mkdirp.sync(join(pluginDir, 'foo'));
mkdirp.sync(join(pluginDir, 'bar'));
mkdirSync(join(pluginDir, 'foo'), { recursive: true });
mkdirSync(join(pluginDir, 'bar'), { recursive: true });
remove(settings, logger);

View file

@ -26,14 +26,13 @@ import { inspect } from 'util';
import vfs from 'vinyl-fs';
import { promisify } from 'bluebird';
import mkdirpCb from 'mkdirp';
import del from 'del';
import deleteEmpty from 'delete-empty';
import { createPromiseFromStreams, createMapStream } from '../../../legacy/utils';
import tar from 'tar';
const mkdirpAsync = promisify(mkdirpCb);
const mkdirAsync = promisify(fs.mkdir);
const writeFileAsync = promisify(fs.writeFile);
const readFileAsync = promisify(fs.readFile);
const readdirAsync = promisify(fs.readdir);
@ -66,7 +65,7 @@ function longInspect(value) {
export async function mkdirp(path) {
assertAbsolute(path);
await mkdirpAsync(path);
await mkdirAsync(path, { recursive: true });
}
export async function write(path, contents) {
@ -185,7 +184,7 @@ export async function untar(source, destination, extractOptions = {}) {
assertAbsolute(source);
assertAbsolute(destination);
await mkdirpAsync(destination);
await mkdirAsync(destination, { recursive: true });
await createPromiseFromStreams([
fs.createReadStream(source),

View file

@ -23,7 +23,8 @@ import { dirname } from 'path';
import chalk from 'chalk';
import { createHash } from 'crypto';
import wreck from '@hapi/wreck';
import mkdirp from 'mkdirp';
import { mkdirp } from '../../lib';
function tryUnlink(path) {
try {
@ -43,7 +44,7 @@ export async function download(options) {
}
// mkdirp and open file outside of try/catch, we don't retry for those errors
mkdirp.sync(dirname(destination));
await mkdirp(dirname(destination));
const fileHandle = openSync(destination, 'w');
let error;

View file

@ -20,13 +20,11 @@
import { dirname, resolve } from 'path';
import fs from 'fs';
import { promisify } from 'util';
import mkdirp from 'mkdirp';
import { untar } from '../../lib';
import { untar, mkdirp } from '../../lib';
import { getNodeDownloadInfo } from './node_download_info';
const statAsync = promisify(fs.stat);
const mkdirpAsync = promisify(mkdirp);
const copyFileAsync = promisify(fs.copyFile);
export const ExtractNodeBuildsTask = {
@ -50,7 +48,7 @@ export const ExtractNodeBuildsTask = {
async copyWindows(source, destination) {
// ensure source exists before creating destination directory
await statAsync(source);
await mkdirpAsync(dirname(destination));
await mkdirp(dirname(destination));
// for performance reasons, do a copy-on-write by using the fs.constants.COPYFILE_FICLONE flag
return await copyFileAsync(source, destination, fs.constants.COPYFILE_FICLONE);
},

View file

@ -18,10 +18,9 @@
*/
import { scanCopy, untar, deleteAll } from '../lib';
import { createWriteStream } from 'fs';
import { createWriteStream, mkdirSync } from 'fs';
import { binaryInfo } from '../../../../x-pack/legacy/plugins/code/tasks/nodegit_info';
import wreck from '@hapi/wreck';
import mkdirp from 'mkdirp';
import { dirname, join, basename } from 'path';
import { createPromiseFromStreams } from '../../../legacy/utils/streams';
@ -31,7 +30,7 @@ async function download(url, destination, log) {
if (response.statusCode !== 200) {
throw new Error(`Unexpected status code ${response.statusCode} when downloading ${url}`);
}
mkdirp.sync(dirname(destination));
mkdirSync(dirname(destination), { recursive: true });
await createPromiseFromStreams([response, createWriteStream(destination)]);
log.debug('Downloaded ', url);
}

View file

@ -18,9 +18,8 @@
*/
import { resolve, dirname, relative } from 'path';
import { writeFileSync } from 'fs';
import { writeFileSync, mkdirSync } from 'fs';
import mkdirp from 'mkdirp';
import xmlBuilder from 'xmlbuilder';
import { escapeCdata } from '@kbn/test';
@ -117,7 +116,7 @@ export default class JestJUnitReporter {
spacebeforeslash: '',
});
mkdirp.sync(dirname(reportPath));
mkdirSync(dirname(reportPath), { recursive: true });
writeFileSync(reportPath, reportXML, 'utf8');
}
}

View file

@ -18,10 +18,7 @@
*/
import { resolve } from 'path';
import { createWriteStream } from 'fs';
import { fromNode } from 'bluebird';
import mkdirp from 'mkdirp';
import { createWriteStream, mkdirSync } from 'fs';
import {
createListStream,
@ -42,7 +39,7 @@ export async function saveAction({ name, indices, client, dataDir, log, raw }) {
log.info('[%s] Creating archive of %j', name, indices);
await fromNode(cb => mkdirp(outputDir, cb));
mkdirSync(outputDir, { recursive: true });
const progress = new Progress();
progress.activate(log);

View file

@ -17,9 +17,9 @@
* under the License.
*/
import Promise from 'bluebird';
import { mkdirp as mkdirpNode } from 'mkdirp';
import Fs from 'fs';
import { resolve } from 'path';
import { promisify } from 'util';
import { migrations } from './migrations';
import manageUuid from './server/lib/manage_uuid';
@ -41,7 +41,7 @@ import { makeKQLUsageCollector } from './server/lib/kql_usage_collector';
import { injectVars } from './inject_vars';
import { i18n } from '@kbn/i18n';
const mkdirp = Promise.promisify(mkdirpNode);
const mkdirAsync = promisify(Fs.mkdir);
export default function (kibana) {
const kbnBaseUrl = '/app/kibana';
@ -320,7 +320,7 @@ export default function (kibana) {
try {
// Create the data directory (recursively, if the a parent dir doesn't exist).
// If it already exists, does nothing.
await mkdirp(server.config().get('path.data'));
await mkdirAsync(server.config().get('path.data'), { recursive: true });
} catch (err) {
server.log(['error', 'init'], err);
// Stop the server startup with a fatal error

View file

@ -24,7 +24,6 @@ import sass from 'node-sass';
import autoprefixer from 'autoprefixer';
import postcss from 'postcss';
import postcssUrl from 'postcss-url';
import mkdirp from 'mkdirp';
import chalk from 'chalk';
import isPathInside from 'is-path-inside';
import { PUBLIC_PATH_PLACEHOLDER } from '../../../optimize/public_path_placeholder';
@ -33,7 +32,7 @@ const renderSass = promisify(sass.render);
const writeFile = promisify(fs.writeFile);
const exists = promisify(fs.exists);
const copyFile = promisify(fs.copyFile);
const mkdirpAsync = promisify(mkdirp);
const mkdirAsync = promisify(fs.mkdir);
const UI_ASSETS_DIR = resolve(__dirname, '../../ui/public/assets');
const DARK_THEME_IMPORTER = (url) => {
@ -165,7 +164,7 @@ export class Build {
}));
// write css
await mkdirpAsync(this.targetDir);
await mkdirAsync(this.targetDir, { recursive: true });
await writeFile(this.targetPath, prefixed.css);
// copy non-shared urlAssets
@ -174,7 +173,7 @@ export class Build {
return;
}
await mkdirpAsync(dirname(asset.copyTo));
await mkdirAsync(dirname(asset.copyTo), { recursive: true });
await copyFile(asset.path, asset.copyTo);
}));

View file

@ -20,11 +20,10 @@
import { resolve, relative, isAbsolute } from 'path';
import { createHash } from 'crypto';
import { promisify } from 'util';
import { existsSync } from 'fs';
import { existsSync, mkdir } from 'fs';
import del from 'del';
import { makeRe } from 'minimatch';
import mkdirp from 'mkdirp';
import jsonStableStringify from 'json-stable-stringify';
import { IS_KIBANA_DISTRIBUTABLE, fromRoot } from '../../utils';
@ -32,7 +31,7 @@ import { IS_KIBANA_DISTRIBUTABLE, fromRoot } from '../../utils';
import { UiBundle } from './ui_bundle';
import { appEntryTemplate } from './app_entry_template';
const mkdirpAsync = promisify(mkdirp);
const mkdirAsync = promisify(mkdir);
const REPO_ROOT = fromRoot();
function getWebpackAliases(pluginSpecs) {
@ -179,7 +178,7 @@ export class UiBundlesController {
async resetBundleDir() {
if (!existsSync(this._workingDir)) {
// create a fresh working directory
await mkdirpAsync(this._workingDir);
await mkdirAsync(this._workingDir, { recursive: true });
} else {
// delete all children of the working directory
await del(this.resolvePath('*'), {

View file

@ -22,14 +22,13 @@ import { notInNodeModulesOrWebpackShims, notInNodeModules, inDllPluginPublic } f
import { fromRoot } from '../../legacy/utils';
import { PUBLIC_PATH_PLACEHOLDER } from '../public_path_placeholder';
import fs from 'fs';
import mkdirp from 'mkdirp';
import webpack from 'webpack';
import { promisify } from 'util';
import path from 'path';
import rimraf from 'rimraf';
const readFileAsync = promisify(fs.readFile);
const mkdirpAsync = promisify(mkdirp);
const mkdirAsync = promisify(fs.mkdir);
const existsAsync = promisify(fs.exists);
const writeFileAsync = promisify(fs.writeFile);
const rimrafAsync = promisify(rimraf);
@ -132,7 +131,7 @@ export class DllCompiler {
const exists = await existsAsync(filePath);
if (!exists) {
await mkdirpAsync(path.dirname(filePath));
await mkdirAsync(path.dirname(filePath), { recursive: true });
}
return exists;

View file

@ -17,22 +17,19 @@
* under the License.
*/
import mkdirp from 'mkdirp';
import { resolve } from 'path';
import { writeFile } from 'fs';
import { writeFile, mkdir } from 'fs';
import { promisify } from 'util';
import del from 'del';
import Bluebird, { promisify } from 'bluebird';
import { FtrProviderContext } from '../ftr_provider_context';
interface Test {
fullTitle(): string;
}
type WriteFileAsync = (path: string | number | Buffer | URL, data: any) => Bluebird<void>;
type MkDirAsync = (dirName: string) => Bluebird<mkdirp.Made>;
const writeFileAsync = promisify(writeFile) as WriteFileAsync;
const mkdirAsync = promisify(mkdirp) as MkDirAsync;
const writeFileAsync = promisify(writeFile);
const mkdirAsync = promisify(mkdir);
export async function FailureDebuggingProvider({ getService }: FtrProviderContext) {
const screenshots = getService('screenshots');
@ -51,7 +48,7 @@ export async function FailureDebuggingProvider({ getService }: FtrProviderContex
}
async function savePageHtml(name: string) {
await mkdirAsync(config.get('failureDebugging.htmlDirectory'));
await mkdirAsync(config.get('failureDebugging.htmlDirectory'), { recursive: true });
const htmlOutputFileName = resolve(
config.get('failureDebugging.htmlDirectory'),
`${name}.html`

View file

@ -18,19 +18,16 @@
*/
import { resolve, dirname } from 'path';
import { writeFile, readFileSync } from 'fs';
import Bluebird, { fromNode as fcb, promisify } from 'bluebird';
import mkdirp from 'mkdirp';
import { writeFile, readFileSync, mkdir } from 'fs';
import { promisify } from 'util';
import del from 'del';
import { comparePngs } from './lib/compare_pngs';
import { FtrProviderContext } from '../ftr_provider_context';
import { WebElementWrapper } from './lib/web_element_wrapper';
type WriteFileAsync = (path: string | number | Buffer | URL, data: any) => Bluebird<void>;
type MkDirAsync = (dirName: string) => Bluebird<mkdirp.Made>;
const mkdirAsync = promisify(mkdirp) as MkDirAsync;
const writeFileAsync = promisify(writeFile) as WriteFileAsync;
const mkdirAsync = promisify(mkdir);
const writeFileAsync = promisify(writeFile);
export async function ScreenshotsProvider({ getService }: FtrProviderContext) {
const log = getService('log');
@ -65,7 +62,7 @@ export async function ScreenshotsProvider({ getService }: FtrProviderContext) {
await writeFileAsync(baselinePath, readFileSync(sessionPath));
return 0;
} else {
await mkdirAsync(FAILURE_DIRECTORY);
await mkdirAsync(FAILURE_DIRECTORY, { recursive: true });
return await comparePngs(sessionPath, baselinePath, failurePath, SESSION_DIRECTORY, log);
}
}
@ -82,8 +79,8 @@ export async function ScreenshotsProvider({ getService }: FtrProviderContext) {
try {
log.info(`Taking screenshot "${path}"`);
const screenshot = await (el ? el.takeScreenshot() : browser.takeScreenshot());
await fcb(cb => mkdirp(dirname(path), cb));
await fcb(cb => writeFile(path, screenshot, 'base64', cb));
await mkdirAsync(dirname(path), { recursive: true });
await writeFileAsync(path, screenshot, 'base64');
} catch (err) {
log.error('SCREENSHOT FAILED');
log.error(err);

View file

@ -17,17 +17,16 @@
* under the License.
*/
import expect from '@kbn/expect';
import { dirname, resolve } from 'path';
import { writeFile, readFileSync } from 'fs';
import Bluebird, { fromNode as fcb, promisify } from 'bluebird';
import mkdirp from 'mkdirp';
import { writeFile, readFileSync, mkdir } from 'fs';
import { promisify } from 'util';
import expect from '@kbn/expect';
import del from 'del';
import { FtrProviderContext } from '../ftr_provider_context';
type WriteFileAsync = (path: string | number | Buffer | URL, data: any) => Bluebird<void>;
const writeFileAsync = promisify(writeFile) as WriteFileAsync;
const mkdirAsync = promisify(mkdir);
const writeFileAsync = promisify(writeFile);
export async function SnapshotsProvider({ getService }: FtrProviderContext) {
const log = getService('log');
@ -77,8 +76,8 @@ export async function SnapshotsProvider({ getService }: FtrProviderContext) {
private async _take(path: string, snapshot?: object) {
try {
await fcb(cb => mkdirp(dirname(path), cb));
await fcb(cb => writeFile(path, JSON.stringify(snapshot), 'utf8', cb));
await mkdirAsync(dirname(path), { recursive: true });
await writeFileAsync(path, JSON.stringify(snapshot), 'utf8');
} catch (err) {
log.error('SNAPSHOT FAILED');
log.error(err);

View file

@ -25,7 +25,6 @@ import Handlebars from 'handlebars';
import fs from 'fs';
import path from 'path';
import imageDiff from 'image-diff';
import mkdirp from 'mkdirp';
import moment from 'moment';
import SimpleGit from 'simple-git';
@ -77,8 +76,8 @@ async function compareScreenshots() {
const SESSION_SCREENSHOTS_DIR = path.resolve(SCREENSHOTS_DIR, 'session');
// We don't need to create the baseline dir because it's committed.
mkdirp.sync(DIFF_SCREENSHOTS_DIR);
mkdirp.sync(SESSION_SCREENSHOTS_DIR);
fs.mkdirSync(DIFF_SCREENSHOTS_DIR, { recursive: true });
fs.mkdirSync(SESSION_SCREENSHOTS_DIR, { recursive: true });
const files = await readDirAsync(SESSION_SCREENSHOTS_DIR);
const screenshots = files.filter(file => file.indexOf('.png') !== -1);

View file

@ -9,7 +9,6 @@ import Git from '@elastic/nodegit';
import assert from 'assert';
import { execSync } from 'child_process';
import fs from 'fs';
import * as mkdirp from 'mkdirp';
import path from 'path';
import rimraf from 'rimraf';
import { GitOperations } from '../git_operations';
@ -19,7 +18,7 @@ describe('git_operations', () => {
it('get default branch from a non master repo', async () => {
const repoUri = 'github.com/foo/bar';
const repoDir = path.join(serverOptions.repoPath, repoUri);
mkdirp.sync(repoDir);
fs.mkdirSync(repoDir, { recursive: true });
// create a non-master using git commands
const shell = `
@ -47,7 +46,7 @@ describe('git_operations', () => {
});
async function prepareProject(repoPath: string) {
mkdirp.sync(repoPath);
fs.mkdirSync(repoPath, { recursive: true });
const workDir = path.join(serverOptions.workspacePath, repoUri);
const repo = await Git.Repository.init(workDir, 0);
const content = '';

View file

@ -6,7 +6,6 @@
import Git from '@elastic/nodegit';
import fs from 'fs';
import mkdirp from 'mkdirp';
import path from 'path';
import rimraf from 'rimraf';
import sinon from 'sinon';
@ -43,7 +42,7 @@ describe('lsp_service tests', () => {
let firstCommitSha = '';
let secondCommitSha = '';
async function prepareProject(repoPath: string) {
mkdirp.sync(repoPath);
fs.mkdirSync(repoPath, { recursive: true });
const repo = await Git.Repository.init(repoPath, 0);
const helloContent = "console.log('hello world');";
fs.writeFileSync(path.join(repo.workdir(), filename), helloContent, 'utf8');

View file

@ -8,7 +8,6 @@ import path from 'path';
import Git from '@elastic/nodegit';
import assert from 'assert';
import mkdirp from 'mkdirp';
import * as os from 'os';
import rimraf from 'rimraf';
import { ResponseMessage } from 'vscode-jsonrpc/lib/messages';
@ -51,7 +50,7 @@ describe('workspace_handler tests', () => {
file = 'src/controllers/user.ts'
) {
const fullPath = path.join(workspacePath, repo, '__randomString', revision, file);
mkdirp.sync(path.dirname(fullPath));
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
fs.writeFileSync(fullPath, '');
const strInUrl = fullPath
.split(path.sep)
@ -119,7 +118,7 @@ describe('workspace_handler tests', () => {
});
async function prepareProject(repoPath: string) {
mkdirp.sync(repoPath);
fs.mkdirSync(repoPath, { recursive: true });
const repo = await Git.Repository.init(repoPath, 0);
const content = 'console.log("test")';
const subFolder = 'src';
@ -173,8 +172,8 @@ describe('workspace_handler tests', () => {
// @ts-ignore
before(() => {
mkdirp.sync(workspaceDir);
mkdirp.sync(repoDir);
fs.mkdirSync(workspaceDir, { recursive: true });
fs.mkdirSync(repoDir, { recursive: true });
});
// @ts-ignore

View file

@ -5,7 +5,6 @@
*/
import fs from 'fs';
import mkdirp from 'mkdirp';
import * as os from 'os';
import path from 'path';
import rimraf from 'rimraf';
@ -83,7 +82,7 @@ JAVA.launcher = LauncherStub;
let controller: typeof LanguageServerController;
beforeAll(() => {
mkdirp.sync(workspaceDir);
fs.mkdirSync(workspaceDir, { recursive: true });
});
beforeEach(async () => {
sinon.reset();
@ -115,7 +114,7 @@ afterAll(() => {
function mockRequest(repo: string, file: string) {
const repoPath = path.join(workspaceDir, repo);
mkdirp.sync(repoPath);
fs.mkdirSync(repoPath, { recursive: true });
return {
method: 'request',
params: [],

View file

@ -5,7 +5,6 @@
*/
import fs from 'fs';
import mkdirp from 'mkdirp';
import rimraf from 'rimraf';
import sinon from 'sinon';
import { pathToFileURL } from 'url';
@ -22,7 +21,7 @@ const options: ServerOptions = {
beforeEach(async () => {
sinon.reset();
if (!fs.existsSync(options.workspacePath)) {
mkdirp.sync(options.workspacePath);
fs.mkdirSync(options.workspacePath, { recursive: true });
}
});
@ -80,8 +79,8 @@ test('be able to open multiple workspace', async () => {
params: [],
workspacePath: '/tmp/test/workspace/2',
};
mkdirp.sync(request1.workspacePath);
mkdirp.sync(request2.workspacePath);
fs.mkdirSync(request1.workspacePath, { recursive: true });
fs.mkdirSync(request2.workspacePath, { recursive: true });
await expander.handleRequest(request1);
await expander.handleRequest(request2);
expect(proxyStub.initialize.called);
@ -125,8 +124,8 @@ test('be able to swap workspace', async () => {
params: [],
workspacePath: '/tmp/test/workspace/2',
};
mkdirp.sync(request1.workspacePath);
mkdirp.sync(request2.workspacePath);
fs.mkdirSync(request1.workspacePath, { recursive: true });
fs.mkdirSync(request2.workspacePath, { recursive: true });
await expander.handleRequest(request1);
await expander.handleRequest(request2);
expect(proxyStub.initialize.called);
@ -166,7 +165,7 @@ test('requests should be cancelled if workspace is unloaded', async () => {
params: [],
workspacePath: workspace1,
};
mkdirp.sync(workspace1);
fs.mkdirSync(workspace1, { recursive: true });
const promise1 = expander.handleRequest(request);
const promise2 = expander.handleRequest(request);
setTimeout(() => expander.unloadWorkspace(workspace1), 1);

View file

@ -6,7 +6,6 @@
import fs from 'fs';
import path from 'path';
import mkdirp from 'mkdirp';
import * as os from 'os';
import rimraf from 'rimraf';
import { ResponseMessage } from 'vscode-jsonrpc/lib/messages';
@ -48,7 +47,7 @@ function makeAFile(
file = 'src/controllers/user.ts'
) {
const fullPath = path.join(workspacePath, repo, '__randomString', revision, file);
mkdirp.sync(path.dirname(fullPath));
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
fs.writeFileSync(fullPath, '');
const strInUrl = fullPath
.split(path.sep)
@ -139,8 +138,8 @@ test('should throw a error if url is invalid', async () => {
});
beforeAll(() => {
mkdirp.sync(workspaceDir);
mkdirp.sync(repoDir);
fs.mkdirSync(workspaceDir, { recursive: true });
fs.mkdirSync(repoDir, { recursive: true });
});
afterAll(() => {

View file

@ -17,8 +17,8 @@ import Boom from 'boom';
import del from 'del';
import fs from 'fs';
import { delay } from 'lodash';
import mkdirp from 'mkdirp';
import path from 'path';
import { promisify } from 'util';
import { ResponseMessage } from 'vscode-jsonrpc/lib/messages';
import { Hover, Location, TextDocumentPositionParams } from 'vscode-languageserver';
@ -35,6 +35,8 @@ import { LoggerFactory } from '../utils/log_factory';
export const MAX_RESULT_COUNT = 20;
const mkdirAsync = promisify(fs.mkdir);
export class WorkspaceHandler {
private revisionMap: { [uri: string]: string } = {};
private log: Logger;
@ -396,15 +398,7 @@ export class WorkspaceHandler {
this.log.info(`Create workspace ${workspaceDir} from url ${bareRepo.path()}`);
const parentDir = path.dirname(workspaceDir);
// on windows, git clone will failed if parent folder is not exists;
await new Promise((resolve, reject) =>
mkdirp(parentDir, err => {
if (err) {
reject(err);
} else {
resolve();
}
})
);
await mkdirAsync(parentDir, { recursive: true });
const workTreeName = this.workspaceWorktreeBranchName(revision);
await this.pruneWorktree(bareRepo, workTreeName);
// Create the worktree and open it as Repository.

View file

@ -7,7 +7,7 @@
import Git, { RemoteCallbacks } from '@elastic/nodegit';
import del from 'del';
import fs from 'fs';
import mkdirp from 'mkdirp';
import { promisify } from 'util';
import moment from 'moment';
import path from 'path';
@ -34,6 +34,8 @@ const NODEGIT_CALLBACK_RETURN_VALUE_ERROR = -7;
const GIT_INDEXER_PROGRESS_CALLBACK_RETURN_VALUE_ERROR_MSG = `indexer progress callback returned ${GIT_FETCH_PROGRESS_CANCEL}`;
const SSH_AUTH_ERROR = new Error('Failed to authenticate SSH session');
const mkdirAsync = promisify(fs.mkdir);
function isCancelled(error: any) {
return (
error &&
@ -77,15 +79,7 @@ export class RepositoryService {
} else {
const parentDir = path.dirname(localPath);
// on windows, git clone will failed if parent folder is not exists;
await new Promise((resolve, reject) =>
mkdirp(parentDir, err => {
if (err) {
reject(err);
} else {
resolve();
}
})
);
await mkdirAsync(parentDir, { recursive: true });
}
// Go head with the actual clone.
if (repo.protocol === 'ssh') {

View file

@ -4,11 +4,10 @@
* you may not use this file except in compliance with the Elastic License.
*/
import { openSync, writeSync, closeSync } from 'fs';
import { openSync, writeSync, closeSync, mkdirSync } from 'fs';
import { createHash } from 'crypto';
import { dirname } from 'path';
import mkdirp from 'mkdirp';
import request from 'request';
import { log, readableEnd } from './util';
@ -24,7 +23,7 @@ export async function download(url, path) {
const hash = createHash('md5');
mkdirp.sync(dirname(path));
mkdirSync(dirname(path), { recursive: true });
const handle = openSync(path, 'w');
try {

View file

@ -72,7 +72,6 @@
"@types/mapbox-gl": "^0.54.1",
"@types/memoize-one": "^4.1.0",
"@types/mime": "^2.0.1",
"@types/mkdirp": "^0.5.2",
"@types/mocha": "^5.2.7",
"@types/nock": "^10.0.3",
"@types/node": "^10.12.27",
@ -287,7 +286,6 @@
"markdown-it": "^8.4.1",
"memoize-one": "^5.0.0",
"mime": "^2.4.4",
"mkdirp": "0.5.1",
"moment": "^2.20.1",
"moment-duration-format": "^1.3.0",
"moment-timezone": "^0.5.14",

View file

@ -8,12 +8,11 @@ import del from 'del';
// @ts-ignore
import extractZip from 'extract-zip';
import fs from 'fs';
import mkdirp from 'mkdirp';
import path from 'path';
import { promisify } from 'util';
const asyncExtractZip = promisify(extractZip);
const asyncMkdirp = promisify(mkdirp);
const asyncMkdir = promisify(fs.mkdir);
const archiveFilePath = (zipFileName: string) => {
return path.resolve(__dirname, `./fixtures/${zipFileName}.zip`);
@ -29,7 +28,7 @@ const workspaceDir = (repoUri: string, kibanaDir: string) => {
const unzip = async (filepath: string, target: string) => {
if (!fs.existsSync(target)) {
await asyncMkdirp(target);
await asyncMkdir(target, { recursive: true });
}
await asyncExtractZip(filepath, { dir: target });
};

View file

@ -6,13 +6,12 @@
import path from 'path';
import fs from 'fs';
import { promisify } from 'bluebird';
import mkdirp from 'mkdirp';
import { promisify } from 'util';
import { PDFImage } from 'pdf-image';
import PDFJS from 'pdfjs-dist';
import { comparePngs } from '../../../../../test/functional/services/lib/compare_pngs';
const mkdirAsync = promisify(mkdirp);
const mkdirAsync = promisify(fs.mkdir);
export async function checkIfPdfsMatch(actualPdfPath, baselinePdfPath, screenshotsDirectory, log) {
log.debug(`checkIfPdfsMatch: ${actualPdfPath} vs ${baselinePdfPath}`);
@ -21,8 +20,8 @@ export async function checkIfPdfsMatch(actualPdfPath, baselinePdfPath, screensho
const sessionDirectoryPath = path.resolve(screenshotsDirectory, 'session');
const failureDirectoryPath = path.resolve(screenshotsDirectory, 'failure');
await mkdirAsync(sessionDirectoryPath);
await mkdirAsync(failureDirectoryPath);
await mkdirAsync(sessionDirectoryPath, { recursive: true });
await mkdirAsync(failureDirectoryPath, { recursive: true });
const actualPdfFileName = path.basename(actualPdfPath, '.pdf');
const baselinePdfFileName = path.basename(baselinePdfPath, '.pdf');

View file

@ -7,10 +7,9 @@
import path from 'path';
import fs from 'fs';
import { promisify } from 'bluebird';
import mkdirp from 'mkdirp';
import { comparePngs } from '../../../../../test/functional/services/lib/compare_pngs';
const mkdirAsync = promisify(mkdirp);
const mkdirAsync = promisify(fs.mkdir);
export async function checkIfPngsMatch(actualpngPath, baselinepngPath, screenshotsDirectory, log) {
log.debug(`checkIfpngsMatch: ${actualpngPath} vs ${baselinepngPath}`);
@ -19,8 +18,8 @@ export async function checkIfPngsMatch(actualpngPath, baselinepngPath, screensho
const sessionDirectoryPath = path.resolve(screenshotsDirectory, 'session');
const failureDirectoryPath = path.resolve(screenshotsDirectory, 'failure');
await mkdirAsync(sessionDirectoryPath);
await mkdirAsync(failureDirectoryPath);
await mkdirAsync(sessionDirectoryPath, { recursive: true });
await mkdirAsync(failureDirectoryPath, { recursive: true });
const actualpngFileName = path.basename(actualpngPath, '.png');
const baselinepngFileName = path.basename(baselinepngPath, '.png');

View file

@ -6,12 +6,12 @@
import expect from '@kbn/expect';
import path from 'path';
import mkdirp from 'mkdirp';
import fs from 'fs';
import { promisify } from 'bluebird';
import { promisify } from 'util';
import { checkIfPdfsMatch, checkIfPngsMatch } from './lib';
const writeFileAsync = promisify(fs.writeFile);
const mkdirAsync = promisify(mkdirp);
const mkdirAsync = promisify(fs.mkdir);
const REPORTS_FOLDER = path.resolve(__dirname, 'reports');
@ -51,7 +51,7 @@ export default function ({ getService, getPageObjects }) {
const writeSessionReport = async (name, rawPdf, reportExt = 'pdf') => {
const sessionDirectory = path.resolve(REPORTS_FOLDER, 'session');
await mkdirAsync(sessionDirectory);
await mkdirAsync(sessionDirectory, { recursive: true });
const sessionReportPath = path.resolve(sessionDirectory, `${name}.${reportExt}`);
await writeFileAsync(sessionReportPath, rawPdf);
return sessionReportPath;

View file

@ -3677,13 +3677,6 @@
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a"
integrity sha1-UALhT3Xi1x5WQoHfBDHIwbSio2o=
"@types/mkdirp@^0.5.2":
version "0.5.2"
resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f"
integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==
dependencies:
"@types/node" "*"
"@types/mocha@^5.2.7":
version "5.2.7"
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea"