feat: Add --debug flag for printing debug logs for all CLI commands (#75)

This commit is contained in:
Aaron
2023-08-13 14:04:43 -05:00
committed by GitHub
parent e164bd51fe
commit d05f126eb3
13 changed files with 43 additions and 5 deletions
+2
View File
@@ -10,6 +10,7 @@ export const build = defineCommand<
browser?: wxt.TargetBrowser;
mv3?: boolean;
mv2?: boolean;
debug?: boolean;
},
]
>(async (root, flags) => {
@@ -20,6 +21,7 @@ export const build = defineCommand<
browser: flags.browser,
manifestVersion: flags.mv3 ? 3 : flags.mv2 ? 2 : undefined,
configFile: flags.config,
debug: flags.debug,
};
await wxt.build(cliConfig);
+2
View File
@@ -10,6 +10,7 @@ export const dev = defineCommand<
browser?: wxt.TargetBrowser;
mv3?: boolean;
mv2?: boolean;
debug?: boolean;
},
]
>(async (root, flags) => {
@@ -20,6 +21,7 @@ export const dev = defineCommand<
browser: flags.browser,
manifestVersion: flags.mv3 ? 3 : flags.mv2 ? 2 : undefined,
configFile: flags.config,
debug: flags.debug,
};
const server = await wxt.createServer(cliConfig);
+4 -1
View File
@@ -9,7 +9,10 @@ import pc from 'picocolors';
import { Formatter } from 'picocolors/types';
export const init = defineCommand<
[directory: string | undefined, options: { template?: string; pm?: string }]
[
directory: string | undefined,
options: { template?: string; pm?: string; debug?: boolean },
]
>(
async (userDirectory, flags) => {
consola.info('Initalizing new project');
+2
View File
@@ -9,12 +9,14 @@ export const prepare = defineCommand<
root: string | undefined,
flags: {
config?: string;
debug?: boolean;
},
]
>(async (root, flags) => {
const cliConfig: wxt.InlineConfig = {
root,
configFile: flags.config,
debug: flags.debug,
};
const config = await getInternalConfig(cliConfig, 'build');
+4 -1
View File
@@ -2,7 +2,10 @@ import { consola } from 'consola';
import { defineCommand } from '../utils/defineCommand';
export const publish = defineCommand(
async (root: any, { config: configFile }: any) => {
async (
root: any,
{ config: configFile, debug }: { config?: string; debug?: string },
) => {
consola.warn('wxt publish: Not implemented');
},
);
+2
View File
@@ -13,6 +13,7 @@ export const zip = defineCommand<
browser?: wxt.TargetBrowser;
mv3?: boolean;
mv2?: boolean;
debug?: boolean;
},
]
>(async (root, flags) => {
@@ -23,6 +24,7 @@ export const zip = defineCommand<
browser: flags.browser,
manifestVersion: flags.mv3 ? 3 : flags.mv2 ? 2 : undefined,
configFile: flags.config,
debug: flags.debug,
};
const config = await getInternalConfig(cliConfig, 'build');
+2
View File
@@ -6,6 +6,8 @@ const cli = cac('wxt');
cli.help();
cli.version(version);
cli.option('--debug', 'enable debug mode');
// DEV
cli
.command('[root]', 'start dev server')
+8 -1
View File
@@ -1,4 +1,4 @@
import { consola } from 'consola';
import { LogLevels, consola } from 'consola';
import { printHeader } from '../../core/log/printHeader';
import { formatDuration } from '../../core/utils/formatDuration';
@@ -9,6 +9,13 @@ export function defineCommand<TArgs extends any[]>(
},
) {
return async (...args: TArgs) => {
// Enable consola's debug mode globally at the start of all commands when the `--debug` flag is
// passed
const isDebug = !!args.find((arg) => arg?.debug);
if (isDebug) {
consola.level = LogLevels.debug;
}
const startTime = Date.now();
try {
printHeader();
+8
View File
@@ -2,6 +2,7 @@ import * as vite from 'vite';
import { Manifest, Scripting } from 'webextension-polyfill';
import { UnimportOptions } from 'unimport';
import { EntrypointGroup } from '.';
import { LogLevel } from 'consola';
export interface InlineConfig {
/**
@@ -34,6 +35,12 @@ export interface InlineConfig {
* @default "wxt.config.ts"
*/
configFile?: string | false;
/**
* Set to `true` to show debug logs. Overriden by the command line `--debug` option.
*
* @default false
*/
debug?: boolean;
/**
* ID of the extension for each store. Used for publishing.
*/
@@ -218,6 +225,7 @@ export interface Logger {
error(...args: any[]): void;
fatal(...args: any[]): void;
success(...args: any[]): void;
level: LogLevel;
}
export interface BaseEntrypoint {
+1
View File
@@ -20,6 +20,7 @@ export interface InternalConfig {
entrypointsDir: string;
outBaseDir: string;
outDir: string;
debug: boolean;
storeIds: {
chrome?: string;
firefox?: string;
+4 -1
View File
@@ -9,7 +9,7 @@ import {
} from '../types';
import path, { resolve } from 'node:path';
import * as vite from 'vite';
import { consola } from 'consola';
import { LogLevels, consola } from 'consola';
import * as plugins from '../vite-plugins';
import { createFsCache } from './createFsCache';
import { getGlobals } from './globals';
@@ -33,6 +33,8 @@ export async function getInternalConfig(
const outBaseDir = path.resolve(root, '.output');
const outDir = path.resolve(outBaseDir, `${browser}-mv${manifestVersion}`);
const logger = config.logger ?? consola;
const debug = !!config.debug;
if (debug) logger.level = LogLevels.debug;
const baseConfig: InternalConfigNoUserDirs = {
root,
@@ -43,6 +45,7 @@ export async function getInternalConfig(
manifestVersion,
mode,
command,
debug,
logger,
vite: config.vite ?? {},
imports: config.imports ?? {},
+3 -1
View File
@@ -33,7 +33,9 @@ export function multipageMove(
(entry) => !!normalizePath(entry.inputPath).endsWith(oldBundlePath),
);
if (entrypoint == null) {
config.logger.debug('No entrypoint found for', oldBundlePath);
config.logger.debug(
`No entrypoint found for ${oldBundlePath}, leaving in chunks directory`,
);
continue;
}
+1
View File
@@ -212,6 +212,7 @@ export const fakeInternalConfig = fakeObjectCreator<InternalConfig>(() => ({
runnerConfig: {
config: {},
},
debug: faker.datatype.boolean(),
srcDir: fakeDir(),
storeIds: {},
typesDir: fakeDir(),