From f3796d83685465f29736a5dbdd171571e1995900 Mon Sep 17 00:00:00 2001 From: Anshuman Verma Date: Sun, 1 Nov 2020 12:22:47 +0530 Subject: [PATCH 1/5] feat: export utils from core --- packages/generate-loader/src/index.ts | 2 +- packages/generate-plugin/src/index.ts | 2 +- packages/generators/src/addon-generator.ts | 4 ++-- packages/generators/src/init-generator.ts | 4 ++-- packages/info/src/index.ts | 4 ++-- packages/migrate/src/index.ts | 2 +- .../src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts | 2 +- packages/serve/src/parseArgs.ts | 2 +- packages/utils/__tests__/global-packages-path.test.ts | 2 +- packages/utils/src/global-packages-path.ts | 2 +- packages/utils/src/modify-config-helper.ts | 4 ++-- packages/utils/src/recursive-parser.ts | 2 +- packages/utils/src/resolve-packages.ts | 2 +- packages/utils/src/run-prettier.ts | 2 +- packages/utils/src/scaffold.ts | 4 ++-- packages/utils/src/spawn-child.ts | 2 +- packages/webpack-cli/lib/webpack-cli.js | 7 ++++++- 17 files changed, 27 insertions(+), 22 deletions(-) diff --git a/packages/generate-loader/src/index.ts b/packages/generate-loader/src/index.ts index 40ffcefc346..6e5114800bd 100644 --- a/packages/generate-loader/src/index.ts +++ b/packages/generate-loader/src/index.ts @@ -1,6 +1,6 @@ import { loaderGenerator } from '@webpack-cli/generators'; import yeoman from 'yeoman-environment'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; /** * Runs a yeoman generator to create a new webpack loader project diff --git a/packages/generate-plugin/src/index.ts b/packages/generate-plugin/src/index.ts index abc32312534..1ee3bc45152 100644 --- a/packages/generate-plugin/src/index.ts +++ b/packages/generate-plugin/src/index.ts @@ -1,6 +1,6 @@ import { pluginGenerator } from '@webpack-cli/generators'; import yeoman from 'yeoman-environment'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; /** * Runs a yeoman generator to create a new webpack plugin project diff --git a/packages/generators/src/addon-generator.ts b/packages/generators/src/addon-generator.ts index 538c837df20..6c2e2cca47b 100644 --- a/packages/generators/src/addon-generator.ts +++ b/packages/generators/src/addon-generator.ts @@ -1,9 +1,9 @@ -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; import fs from 'fs'; import path from 'path'; import Generator from 'yeoman-generator'; import { generatorCopy, generatorCopyTpl } from '@webpack-cli/utils'; -import { getPackageManager } from 'webpack-cli/lib/utils/get-package-manager'; +import { getPackageManager } from 'webpack-cli'; /** * Creates a Yeoman Generator that generates a project conforming diff --git a/packages/generators/src/init-generator.ts b/packages/generators/src/init-generator.ts index 3cc7fa85021..2a58e565b14 100644 --- a/packages/generators/src/init-generator.ts +++ b/packages/generators/src/init-generator.ts @@ -1,8 +1,8 @@ import { blue, green, bold } from 'colorette'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; import logSymbols from 'log-symbols'; import path from 'path'; -import { getPackageManager } from 'webpack-cli/lib/utils/get-package-manager'; +import { getPackageManager } from 'webpack-cli'; import { Confirm, Input, List } from '@webpack-cli/webpack-scaffold'; import { diff --git a/packages/info/src/index.ts b/packages/info/src/index.ts index 12594e1f6bc..d16bf21aef0 100644 --- a/packages/info/src/index.ts +++ b/packages/info/src/index.ts @@ -1,6 +1,6 @@ import envinfo from 'envinfo'; -import logger from 'webpack-cli/lib/utils/logger'; -import { commands } from 'webpack-cli/lib/utils/cli-flags'; +import { logger } from 'webpack-cli'; +import { commands } from 'webpack-cli'; import WebpackCLI from 'webpack-cli'; interface Information { diff --git a/packages/migrate/src/index.ts b/packages/migrate/src/index.ts index cb499c0d832..739d3d090e9 100644 --- a/packages/migrate/src/index.ts +++ b/packages/migrate/src/index.ts @@ -2,7 +2,7 @@ import { green, red } from 'colorette'; import { Change, diffLines } from 'diff'; import fs from 'fs'; import inquirer from 'inquirer'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; import Listr from 'listr'; import pLazy = require('p-lazy'); import path from 'path'; diff --git a/packages/migrate/src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts b/packages/migrate/src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts index 9e48d1b6d52..f9a80556c95 100644 --- a/packages/migrate/src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts +++ b/packages/migrate/src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts @@ -1,6 +1,6 @@ import { red, underline } from 'colorette'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; import { findPluginsByName, isType, safeTraverse } from '@webpack-cli/utils'; diff --git a/packages/serve/src/parseArgs.ts b/packages/serve/src/parseArgs.ts index ff4cb7ddf63..597da1dd049 100644 --- a/packages/serve/src/parseArgs.ts +++ b/packages/serve/src/parseArgs.ts @@ -1,4 +1,4 @@ -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; type WebpackCLIType = { getCoreFlags: Function; diff --git a/packages/utils/__tests__/global-packages-path.test.ts b/packages/utils/__tests__/global-packages-path.test.ts index 467057d4657..64cdb073428 100644 --- a/packages/utils/__tests__/global-packages-path.test.ts +++ b/packages/utils/__tests__/global-packages-path.test.ts @@ -4,7 +4,7 @@ jest.setMock('webpack-cli/lib/utils/get-package-manager', { }); import { getPathToGlobalPackages } from '../lib/global-packages-path'; -import { getPackageManager } from 'webpack-cli/lib/utils/get-package-manager'; +import { getPackageManager } from 'webpack-cli'; jest.mock('execa'); jest.mock('cross-spawn'); const globalModulesNpmValue = 'test-npm'; diff --git a/packages/utils/src/global-packages-path.ts b/packages/utils/src/global-packages-path.ts index acdc7fecc45..adff8fc9c45 100644 --- a/packages/utils/src/global-packages-path.ts +++ b/packages/utils/src/global-packages-path.ts @@ -1,6 +1,6 @@ import spawn from 'cross-spawn'; import path from 'path'; -import { getPackageManager } from 'webpack-cli/lib/utils/get-package-manager'; +import { getPackageManager } from 'webpack-cli'; /** * diff --git a/packages/utils/src/modify-config-helper.ts b/packages/utils/src/modify-config-helper.ts index aba3b571725..a990b4e5cfc 100644 --- a/packages/utils/src/modify-config-helper.ts +++ b/packages/utils/src/modify-config-helper.ts @@ -1,11 +1,11 @@ import { green } from 'colorette'; import fs from 'fs'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; import path from 'path'; import yeoman from 'yeoman-environment'; import Generator from 'yeoman-generator'; import { runTransform } from './scaffold'; -import { getPackageManager } from 'webpack-cli/lib/utils/get-package-manager'; +import { getPackageManager } from 'webpack-cli'; export interface Config extends Object { item?: { diff --git a/packages/utils/src/recursive-parser.ts b/packages/utils/src/recursive-parser.ts index 0bdcdf81ba0..f93a1bd7977 100644 --- a/packages/utils/src/recursive-parser.ts +++ b/packages/utils/src/recursive-parser.ts @@ -1,7 +1,7 @@ import { parseTopScope, findRootNodesByName, addProperty, removeProperty, parseMerge, safeTraverse } from './ast-utils'; import { JSCodeshift, Node, valueType } from './types/NodePath'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; export function recursiveTransform(j: JSCodeshift, ast: Node, key: string, value: valueType, action: string): boolean | Node { if (key === 'topScope') { diff --git a/packages/utils/src/resolve-packages.ts b/packages/utils/src/resolve-packages.ts index 9fa19f2ca80..1c12f4f8dad 100644 --- a/packages/utils/src/resolve-packages.ts +++ b/packages/utils/src/resolve-packages.ts @@ -1,5 +1,5 @@ import { bold } from 'colorette'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; import path from 'path'; import { modifyHelperUtil } from './modify-config-helper'; import { getPathToGlobalPackages } from './global-packages-path'; diff --git a/packages/utils/src/run-prettier.ts b/packages/utils/src/run-prettier.ts index 6de24cab637..ca3d9dca461 100644 --- a/packages/utils/src/run-prettier.ts +++ b/packages/utils/src/run-prettier.ts @@ -1,5 +1,5 @@ import fs from 'fs'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; /** * diff --git a/packages/utils/src/scaffold.ts b/packages/utils/src/scaffold.ts index 18383e30e6a..74f970a0ff9 100644 --- a/packages/utils/src/scaffold.ts +++ b/packages/utils/src/scaffold.ts @@ -1,9 +1,9 @@ import { green } from 'colorette'; import j from 'jscodeshift'; -import logger from 'webpack-cli/lib/utils/logger'; +import { logger } from 'webpack-cli'; import pEachSeries = require('p-each-series'); import path from 'path'; -import { getPackageManager } from 'webpack-cli/lib/utils/get-package-manager'; +import { getPackageManager } from 'webpack-cli'; import { findProjectRoot } from './path-utils'; import { Error } from './types'; import { Config, TransformConfig } from './types'; diff --git a/packages/utils/src/spawn-child.ts b/packages/utils/src/spawn-child.ts index 93b10a9f79e..65a427c4a99 100644 --- a/packages/utils/src/spawn-child.ts +++ b/packages/utils/src/spawn-child.ts @@ -2,7 +2,7 @@ import path from 'path'; import fs from 'fs'; import { ExecaSyncReturnValue, sync } from 'execa'; import { getPathToGlobalPackages } from './global-packages-path'; -import { getPackageManager } from 'webpack-cli/lib/utils/get-package-manager'; +import { getPackageManager } from 'webpack-cli'; /** * diff --git a/packages/webpack-cli/lib/webpack-cli.js b/packages/webpack-cli/lib/webpack-cli.js index 9ae5c1ae010..11805ca3655 100644 --- a/packages/webpack-cli/lib/webpack-cli.js +++ b/packages/webpack-cli/lib/webpack-cli.js @@ -3,11 +3,12 @@ const webpack = packageExists('webpack') ? require('webpack') : undefined; const logger = require('./utils/logger'); const webpackMerge = require('webpack-merge'); const GroupHelper = require('./utils/GroupHelper'); -const { groups, core } = require('./utils/cli-flags'); +const { groups, core, commands } = require('./utils/cli-flags'); const argParser = require('./utils/arg-parser'); const { outputStrategy } = require('./utils/merge-strategies'); const { toKebabCase } = require('./utils/helpers'); const assignFlagDefaults = require('./utils/flag-defaults'); +const getPackageManager = require('./utils/get-package-manager'); const { writeFileSync } = require('fs'); const { options: coloretteOptions } = require('colorette'); const WebpackCLIPlugin = require('./plugins/WebpackCLIPlugin'); @@ -337,3 +338,7 @@ class WebpackCLI extends GroupHelper { } module.exports = WebpackCLI; +// export additional utils used by other packages +module.exports.logger = logger; +module.exports.commands = commands; +module.exports.getPackageManager = getPackageManager; From c23cad89e0b4783dfbeda37d9b2dae7a926462ef Mon Sep 17 00:00:00 2001 From: Anshuman Verma Date: Sun, 1 Nov 2020 12:26:25 +0530 Subject: [PATCH 2/5] feat: create new root file --- packages/webpack-cli/lib/index.js | 11 +++++++++++ packages/webpack-cli/lib/webpack-cli.js | 7 +------ packages/webpack-cli/package.json | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 packages/webpack-cli/lib/index.js diff --git a/packages/webpack-cli/lib/index.js b/packages/webpack-cli/lib/index.js new file mode 100644 index 00000000000..b9a66c65c00 --- /dev/null +++ b/packages/webpack-cli/lib/index.js @@ -0,0 +1,11 @@ +const WebpackCLI = require('./webpack-cli'); +const { commands } = require('./utils/cli-flags'); +const logger = require('./utils/logger'); +const getPackageManager = require('./utils/get-package-manager'); + +module.exports = WebpackCLI; + +// export additional utils used by other packages +module.exports.logger = logger; +module.exports.commands = commands; +module.exports.getPackageManager = getPackageManager; diff --git a/packages/webpack-cli/lib/webpack-cli.js b/packages/webpack-cli/lib/webpack-cli.js index 11805ca3655..9ae5c1ae010 100644 --- a/packages/webpack-cli/lib/webpack-cli.js +++ b/packages/webpack-cli/lib/webpack-cli.js @@ -3,12 +3,11 @@ const webpack = packageExists('webpack') ? require('webpack') : undefined; const logger = require('./utils/logger'); const webpackMerge = require('webpack-merge'); const GroupHelper = require('./utils/GroupHelper'); -const { groups, core, commands } = require('./utils/cli-flags'); +const { groups, core } = require('./utils/cli-flags'); const argParser = require('./utils/arg-parser'); const { outputStrategy } = require('./utils/merge-strategies'); const { toKebabCase } = require('./utils/helpers'); const assignFlagDefaults = require('./utils/flag-defaults'); -const getPackageManager = require('./utils/get-package-manager'); const { writeFileSync } = require('fs'); const { options: coloretteOptions } = require('colorette'); const WebpackCLIPlugin = require('./plugins/WebpackCLIPlugin'); @@ -338,7 +337,3 @@ class WebpackCLI extends GroupHelper { } module.exports = WebpackCLI; -// export additional utils used by other packages -module.exports.logger = logger; -module.exports.commands = commands; -module.exports.getPackageManager = getPackageManager; diff --git a/packages/webpack-cli/package.json b/packages/webpack-cli/package.json index c6e0534cd41..463e26d27a8 100644 --- a/packages/webpack-cli/package.json +++ b/packages/webpack-cli/package.json @@ -10,7 +10,7 @@ "bin": { "webpack-cli": "./bin/cli.js" }, - "main": "./lib/webpack-cli.js", + "main": "./lib/index.js", "engines": { "node": ">=10.13.0" }, From 723024c8696193c7813d185f5a2007cb8a196cd9 Mon Sep 17 00:00:00 2001 From: Anshuman Verma Date: Sun, 1 Nov 2020 13:17:05 +0530 Subject: [PATCH 3/5] fix: tests --- packages/generators/__tests__/addon-generator.test.ts | 2 +- packages/generators/src/init-generator.ts | 3 +-- .../lib/utils/__tests__/get-package-manager.test.js | 2 +- packages/webpack-cli/lib/utils/get-package-manager.js | 4 +--- packages/webpack-cli/lib/utils/prompt-installation.js | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/generators/__tests__/addon-generator.test.ts b/packages/generators/__tests__/addon-generator.test.ts index d8690c29f25..a93fc6e71ab 100644 --- a/packages/generators/__tests__/addon-generator.test.ts +++ b/packages/generators/__tests__/addon-generator.test.ts @@ -5,7 +5,7 @@ jest.setMock('@webpack-cli/utils', { import fs from 'fs'; import path from 'path'; import rimraf from 'rimraf'; -import { getPackageManager } from 'webpack-cli/lib/utils/get-package-manager'; +import { getPackageManager } from 'webpack-cli'; import addonGenerator from '../src/addon-generator'; // TODO: enable after jest release diff --git a/packages/generators/src/init-generator.ts b/packages/generators/src/init-generator.ts index 2a58e565b14..3a1c2d4a08d 100644 --- a/packages/generators/src/init-generator.ts +++ b/packages/generators/src/init-generator.ts @@ -1,8 +1,7 @@ import { blue, green, bold } from 'colorette'; -import { logger } from 'webpack-cli'; +import { logger, getPackageManager } from 'webpack-cli'; import logSymbols from 'log-symbols'; import path from 'path'; -import { getPackageManager } from 'webpack-cli'; import { Confirm, Input, List } from '@webpack-cli/webpack-scaffold'; import { diff --git a/packages/webpack-cli/lib/utils/__tests__/get-package-manager.test.js b/packages/webpack-cli/lib/utils/__tests__/get-package-manager.test.js index b11c0113d86..61350f3e520 100644 --- a/packages/webpack-cli/lib/utils/__tests__/get-package-manager.test.js +++ b/packages/webpack-cli/lib/utils/__tests__/get-package-manager.test.js @@ -9,7 +9,7 @@ const syncMock = jest.fn(() => { jest.setMock('execa', { sync: syncMock, }); -const { getPackageManager } = require('../get-package-manager'); +const getPackageManager = require('../get-package-manager'); jest.mock('cross-spawn'); const globalModulesNpmValue = 'test-npm'; diff --git a/packages/webpack-cli/lib/utils/get-package-manager.js b/packages/webpack-cli/lib/utils/get-package-manager.js index 7ac3efb9c07..9d6b4125604 100644 --- a/packages/webpack-cli/lib/utils/get-package-manager.js +++ b/packages/webpack-cli/lib/utils/get-package-manager.js @@ -30,6 +30,4 @@ function getPackageManager() { return 'npm'; } -module.exports = { - getPackageManager, -}; +module.exports = getPackageManager; diff --git a/packages/webpack-cli/lib/utils/prompt-installation.js b/packages/webpack-cli/lib/utils/prompt-installation.js index 8b5b4c37800..377e58e7d3b 100644 --- a/packages/webpack-cli/lib/utils/prompt-installation.js +++ b/packages/webpack-cli/lib/utils/prompt-installation.js @@ -1,7 +1,7 @@ const { prompt } = require('enquirer'); const { green } = require('colorette'); const { runCommand } = require('./run-command'); -const { getPackageManager } = require('./get-package-manager'); +const getPackageManager = require('./get-package-manager'); const { packageExists } = require('./package-exists'); /** From 666fed07072a223a91f49f53dcb3135b5525ea72 Mon Sep 17 00:00:00 2001 From: Anshuman Verma Date: Sun, 1 Nov 2020 13:35:25 +0530 Subject: [PATCH 4/5] fix: tests --- packages/utils/__tests__/global-packages-path.test.ts | 4 +--- .../lib/utils/__tests__/prompt-installation.test.js | 6 ++---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/utils/__tests__/global-packages-path.test.ts b/packages/utils/__tests__/global-packages-path.test.ts index 64cdb073428..dcd8554a591 100644 --- a/packages/utils/__tests__/global-packages-path.test.ts +++ b/packages/utils/__tests__/global-packages-path.test.ts @@ -1,7 +1,5 @@ 'use strict'; -jest.setMock('webpack-cli/lib/utils/get-package-manager', { - getPackageManager: jest.fn(), -}); +jest.setMock('webpack-cli/lib/utils/get-package-manager', jest.fn()); import { getPathToGlobalPackages } from '../lib/global-packages-path'; import { getPackageManager } from 'webpack-cli'; diff --git a/packages/webpack-cli/lib/utils/__tests__/prompt-installation.test.js b/packages/webpack-cli/lib/utils/__tests__/prompt-installation.test.js index 2108828c010..6a0b54e3f25 100644 --- a/packages/webpack-cli/lib/utils/__tests__/prompt-installation.test.js +++ b/packages/webpack-cli/lib/utils/__tests__/prompt-installation.test.js @@ -16,11 +16,9 @@ jest.setMock('../package-exists', { packageExists: jest.fn(), }); -jest.setMock('../get-package-manager', { - getPackageManager: jest.fn(), -}); +jest.setMock('../get-package-manager', jest.fn()); -const { getPackageManager } = require('../get-package-manager'); +const getPackageManager = require('../get-package-manager'); const { packageExists } = require('../package-exists'); const { promptInstallation } = require('../prompt-installation'); const { runCommand } = require('../run-command'); From e0d8c9044600f445df7ede6405b09068feb9a6af Mon Sep 17 00:00:00 2001 From: Anshuman Verma Date: Mon, 2 Nov 2020 18:24:11 +0530 Subject: [PATCH 5/5] chore: export utils object --- packages/generate-loader/src/index.ts | 6 ++++-- packages/generate-plugin/src/index.ts | 4 +++- packages/generators/__tests__/addon-generator.test.ts | 4 +++- packages/generators/src/addon-generator.ts | 6 ++++-- packages/generators/src/init-generator.ts | 4 +++- packages/info/src/index.ts | 5 +++-- packages/migrate/src/index.ts | 4 +++- .../removeDeprecatedPlugins/removeDeprecatedPlugins.ts | 6 ++++-- packages/serve/src/parseArgs.ts | 4 +++- packages/utils/__tests__/global-packages-path.test.ts | 5 ++++- packages/utils/src/global-packages-path.ts | 4 +++- packages/utils/src/modify-config-helper.ts | 5 +++-- packages/utils/src/recursive-parser.ts | 3 ++- packages/utils/src/resolve-packages.ts | 4 +++- packages/utils/src/run-prettier.ts | 4 +++- packages/utils/src/scaffold.ts | 5 +++-- packages/utils/src/spawn-child.ts | 4 +++- packages/webpack-cli/lib/index.js | 8 +++++--- 18 files changed, 59 insertions(+), 26 deletions(-) diff --git a/packages/generate-loader/src/index.ts b/packages/generate-loader/src/index.ts index 6e5114800bd..ee7a7a6fa63 100644 --- a/packages/generate-loader/src/index.ts +++ b/packages/generate-loader/src/index.ts @@ -1,6 +1,8 @@ -import { loaderGenerator } from '@webpack-cli/generators'; import yeoman from 'yeoman-environment'; -import { logger } from 'webpack-cli'; +import { loaderGenerator } from '@webpack-cli/generators'; +import { utils } from 'webpack-cli'; + +const { logger } = utils; /** * Runs a yeoman generator to create a new webpack loader project diff --git a/packages/generate-plugin/src/index.ts b/packages/generate-plugin/src/index.ts index 1ee3bc45152..3e5d4d55568 100644 --- a/packages/generate-plugin/src/index.ts +++ b/packages/generate-plugin/src/index.ts @@ -1,6 +1,8 @@ import { pluginGenerator } from '@webpack-cli/generators'; import yeoman from 'yeoman-environment'; -import { logger } from 'webpack-cli'; +import { utils } from 'webpack-cli'; + +const { logger } = utils; /** * Runs a yeoman generator to create a new webpack plugin project diff --git a/packages/generators/__tests__/addon-generator.test.ts b/packages/generators/__tests__/addon-generator.test.ts index a93fc6e71ab..5c67838f3d7 100644 --- a/packages/generators/__tests__/addon-generator.test.ts +++ b/packages/generators/__tests__/addon-generator.test.ts @@ -5,9 +5,11 @@ jest.setMock('@webpack-cli/utils', { import fs from 'fs'; import path from 'path'; import rimraf from 'rimraf'; -import { getPackageManager } from 'webpack-cli'; +import { utils } from 'webpack-cli'; import addonGenerator from '../src/addon-generator'; +const { getPackageManager } = utils; + // TODO: enable after jest release describe.skip('addon generator', () => { let gen, installMock, packageMock; diff --git a/packages/generators/src/addon-generator.ts b/packages/generators/src/addon-generator.ts index 6c2e2cca47b..37e99297852 100644 --- a/packages/generators/src/addon-generator.ts +++ b/packages/generators/src/addon-generator.ts @@ -1,9 +1,11 @@ -import { logger } from 'webpack-cli'; import fs from 'fs'; import path from 'path'; import Generator from 'yeoman-generator'; import { generatorCopy, generatorCopyTpl } from '@webpack-cli/utils'; -import { getPackageManager } from 'webpack-cli'; + +import { utils } from 'webpack-cli'; + +const { logger, getPackageManager } = utils; /** * Creates a Yeoman Generator that generates a project conforming diff --git a/packages/generators/src/init-generator.ts b/packages/generators/src/init-generator.ts index 3a1c2d4a08d..e77fdc3cb5a 100644 --- a/packages/generators/src/init-generator.ts +++ b/packages/generators/src/init-generator.ts @@ -1,5 +1,5 @@ import { blue, green, bold } from 'colorette'; -import { logger, getPackageManager } from 'webpack-cli'; +import { utils } from 'webpack-cli'; import logSymbols from 'log-symbols'; import path from 'path'; import { Confirm, Input, List } from '@webpack-cli/webpack-scaffold'; @@ -16,6 +16,8 @@ import { } from './utils'; import { CustomGenerator } from './types'; +const { logger, getPackageManager } = utils; + /** * * Generator for initializing a webpack config diff --git a/packages/info/src/index.ts b/packages/info/src/index.ts index d16bf21aef0..caf3f86d059 100644 --- a/packages/info/src/index.ts +++ b/packages/info/src/index.ts @@ -1,7 +1,8 @@ import envinfo from 'envinfo'; -import { logger } from 'webpack-cli'; -import { commands } from 'webpack-cli'; import WebpackCLI from 'webpack-cli'; +import { utils } from 'webpack-cli'; + +const { logger, commands } = utils; interface Information { Binaries?: string[]; diff --git a/packages/migrate/src/index.ts b/packages/migrate/src/index.ts index 739d3d090e9..1a14eccc127 100644 --- a/packages/migrate/src/index.ts +++ b/packages/migrate/src/index.ts @@ -2,7 +2,6 @@ import { green, red } from 'colorette'; import { Change, diffLines } from 'diff'; import fs from 'fs'; import inquirer from 'inquirer'; -import { logger } from 'webpack-cli'; import Listr from 'listr'; import pLazy = require('p-lazy'); import path from 'path'; @@ -11,6 +10,9 @@ import { runPrettier } from '@webpack-cli/utils'; import { transformations } from './migrate'; import { Node } from './types/NodePath'; import jscodeshift from 'jscodeshift'; +import { utils } from 'webpack-cli'; + +const { logger } = utils; declare let process: { cwd: Function; diff --git a/packages/migrate/src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts b/packages/migrate/src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts index f9a80556c95..12d270e48e8 100644 --- a/packages/migrate/src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts +++ b/packages/migrate/src/removeDeprecatedPlugins/removeDeprecatedPlugins.ts @@ -1,11 +1,13 @@ import { red, underline } from 'colorette'; -import { logger } from 'webpack-cli'; - import { findPluginsByName, isType, safeTraverse } from '@webpack-cli/utils'; import { JSCodeshift, Node } from '../types/NodePath'; +import { utils } from 'webpack-cli'; + +const { logger } = utils; + /** * * Find deprecated plugins and remove them from the `plugins` array, if possible. diff --git a/packages/serve/src/parseArgs.ts b/packages/serve/src/parseArgs.ts index 597da1dd049..b42f902f95e 100644 --- a/packages/serve/src/parseArgs.ts +++ b/packages/serve/src/parseArgs.ts @@ -1,4 +1,6 @@ -import { logger } from 'webpack-cli'; +import { utils } from 'webpack-cli'; + +const { logger } = utils; type WebpackCLIType = { getCoreFlags: Function; diff --git a/packages/utils/__tests__/global-packages-path.test.ts b/packages/utils/__tests__/global-packages-path.test.ts index dcd8554a591..5aa77543595 100644 --- a/packages/utils/__tests__/global-packages-path.test.ts +++ b/packages/utils/__tests__/global-packages-path.test.ts @@ -2,7 +2,10 @@ jest.setMock('webpack-cli/lib/utils/get-package-manager', jest.fn()); import { getPathToGlobalPackages } from '../lib/global-packages-path'; -import { getPackageManager } from 'webpack-cli'; +import { utils } from 'webpack-cli'; + +const { getPackageManager } = utils; + jest.mock('execa'); jest.mock('cross-spawn'); const globalModulesNpmValue = 'test-npm'; diff --git a/packages/utils/src/global-packages-path.ts b/packages/utils/src/global-packages-path.ts index adff8fc9c45..feac325b6d5 100644 --- a/packages/utils/src/global-packages-path.ts +++ b/packages/utils/src/global-packages-path.ts @@ -1,6 +1,8 @@ import spawn from 'cross-spawn'; import path from 'path'; -import { getPackageManager } from 'webpack-cli'; +import { utils } from 'webpack-cli'; + +const { getPackageManager } = utils; /** * diff --git a/packages/utils/src/modify-config-helper.ts b/packages/utils/src/modify-config-helper.ts index a990b4e5cfc..7103b066f35 100644 --- a/packages/utils/src/modify-config-helper.ts +++ b/packages/utils/src/modify-config-helper.ts @@ -1,11 +1,12 @@ import { green } from 'colorette'; import fs from 'fs'; -import { logger } from 'webpack-cli'; import path from 'path'; import yeoman from 'yeoman-environment'; import Generator from 'yeoman-generator'; import { runTransform } from './scaffold'; -import { getPackageManager } from 'webpack-cli'; +import { utils } from 'webpack-cli'; + +const { logger, getPackageManager } = utils; export interface Config extends Object { item?: { diff --git a/packages/utils/src/recursive-parser.ts b/packages/utils/src/recursive-parser.ts index f93a1bd7977..ce8888082e8 100644 --- a/packages/utils/src/recursive-parser.ts +++ b/packages/utils/src/recursive-parser.ts @@ -1,7 +1,8 @@ import { parseTopScope, findRootNodesByName, addProperty, removeProperty, parseMerge, safeTraverse } from './ast-utils'; import { JSCodeshift, Node, valueType } from './types/NodePath'; +import { utils } from 'webpack-cli'; -import { logger } from 'webpack-cli'; +const { logger } = utils; export function recursiveTransform(j: JSCodeshift, ast: Node, key: string, value: valueType, action: string): boolean | Node { if (key === 'topScope') { diff --git a/packages/utils/src/resolve-packages.ts b/packages/utils/src/resolve-packages.ts index 1c12f4f8dad..ce5eddae437 100644 --- a/packages/utils/src/resolve-packages.ts +++ b/packages/utils/src/resolve-packages.ts @@ -1,11 +1,13 @@ import { bold } from 'colorette'; -import { logger } from 'webpack-cli'; import path from 'path'; import { modifyHelperUtil } from './modify-config-helper'; import { getPathToGlobalPackages } from './global-packages-path'; import { spawnChild } from './spawn-child'; import { isLocalPath } from './path-utils'; import { ExecaSyncReturnValue } from 'execa'; +import { utils } from 'webpack-cli'; + +const { logger } = utils; interface ChildProcess { status: number; diff --git a/packages/utils/src/run-prettier.ts b/packages/utils/src/run-prettier.ts index ca3d9dca461..d2612d04849 100644 --- a/packages/utils/src/run-prettier.ts +++ b/packages/utils/src/run-prettier.ts @@ -1,5 +1,7 @@ import fs from 'fs'; -import { logger } from 'webpack-cli'; +import { utils } from 'webpack-cli'; + +const { logger } = utils; /** * diff --git a/packages/utils/src/scaffold.ts b/packages/utils/src/scaffold.ts index 74f970a0ff9..f4d21e130c6 100644 --- a/packages/utils/src/scaffold.ts +++ b/packages/utils/src/scaffold.ts @@ -1,9 +1,7 @@ import { green } from 'colorette'; import j from 'jscodeshift'; -import { logger } from 'webpack-cli'; import pEachSeries = require('p-each-series'); import path from 'path'; -import { getPackageManager } from 'webpack-cli'; import { findProjectRoot } from './path-utils'; import { Error } from './types'; import { Config, TransformConfig } from './types'; @@ -11,6 +9,9 @@ import { PROP_TYPES } from './prop-types'; import { recursiveTransform } from './recursive-parser'; import { runPrettier } from './run-prettier'; import { Node } from './types/NodePath'; +import { utils } from 'webpack-cli'; + +const { logger, getPackageManager } = utils; /** * diff --git a/packages/utils/src/spawn-child.ts b/packages/utils/src/spawn-child.ts index 65a427c4a99..a26e9f24379 100644 --- a/packages/utils/src/spawn-child.ts +++ b/packages/utils/src/spawn-child.ts @@ -2,7 +2,9 @@ import path from 'path'; import fs from 'fs'; import { ExecaSyncReturnValue, sync } from 'execa'; import { getPathToGlobalPackages } from './global-packages-path'; -import { getPackageManager } from 'webpack-cli'; +import { utils } from 'webpack-cli'; + +const { getPackageManager } = utils; /** * diff --git a/packages/webpack-cli/lib/index.js b/packages/webpack-cli/lib/index.js index b9a66c65c00..f284f9074db 100644 --- a/packages/webpack-cli/lib/index.js +++ b/packages/webpack-cli/lib/index.js @@ -6,6 +6,8 @@ const getPackageManager = require('./utils/get-package-manager'); module.exports = WebpackCLI; // export additional utils used by other packages -module.exports.logger = logger; -module.exports.commands = commands; -module.exports.getPackageManager = getPackageManager; +module.exports.utils = { + logger, + commands, + getPackageManager, +};