Skip to content

Commit

Permalink
feat: implement new configtest command
Browse files Browse the repository at this point in the history
  • Loading branch information
snitin315 committed Jan 4, 2021
1 parent d34dfb7 commit a2bd00a
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 6 deletions.
18 changes: 18 additions & 0 deletions packages/configtest/package.json
@@ -0,0 +1,18 @@
{
"name": "@webpack-cli/configtest",
"version": "1.2.1",
"description": "Test your webpack configuration",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"files": [
"lib"
],
"peerDependencies": {
"webpack": "4.x.x || 5.x.x",
"webpack-cli": "4.x.x"
}
}
32 changes: 32 additions & 0 deletions packages/configtest/src/index.ts
@@ -0,0 +1,32 @@
import { validate } from 'webpack';

class ConfigTestCommand {
async apply(cli): Promise<void> {
const { logger } = cli;

await cli.makeCommand(
{
name: 'configtest',
alias: 't',
description: 'Outputs information about your system.',
usage: '[configs]',
pkg: '@webpack-cli/configtest',
},
[],
async (program) => {
const { options } = await cli.resolveConfig({ config: program.args });
//eslint-disable-next-line @typescript-eslint/no-explicit-any
const validationErrors: any = validate(options);

if (validationErrors) {
logger.error("Your configuration validation wasn't successful");
logger.error(validationErrors);
}

logger.success('No errors found');
},
);
}
}

export default ConfigTestCommand;
8 changes: 8 additions & 0 deletions packages/configtest/tsconfig.json
@@ -0,0 +1,8 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./lib",
"rootDir": "./src"
},
"include": ["./src"]
}
5 changes: 5 additions & 0 deletions packages/webpack-cli/lib/webpack-cli.js
Expand Up @@ -279,6 +279,11 @@ class WebpackCLI {
alias: 'm',
pkg: '@webpack-cli/migrate',
},
{
name: 'configtest',
alias: 't',
pkg: '@webpack-cli/configtest',
},
];

const knownCommands = [bundleCommandOptions, versionCommandOptions, helpCommandOptions, ...externalBuiltInCommandsInfo];
Expand Down
27 changes: 21 additions & 6 deletions tsconfig.json
Expand Up @@ -20,11 +20,26 @@
"declaration": true
},
"references": [
{ "path": "packages/generators" },
{ "path": "packages/info" },
{ "path": "packages/init" },
{ "path": "packages/migrate" },
{ "path": "packages/serve" },
{ "path": "packages/utils" }
{
"path": "packages/generators"
},
{
"path": "packages/info"
},
{
"path": "packages/init"
},
{
"path": "packages/migrate"
},
{
"path": "packages/serve"
},
{
"path": "packages/utils"
},
{
"path": "packages/configtest"
}
]
}

0 comments on commit a2bd00a

Please sign in to comment.