Optional
description?: stringInitialize the plugin.
Additional metadata about the plugin that doesn't fit in the standard fields.
Note: Plugin info on the Context
object will be frozen after
the plugin is initialized. However, the freeze is shallow, so the fields of
this object will be mutable by default.
Optional
version?: stringimport { run, logger } from 'clide-js';
run({ plugins: [logger()] });
import { run, logger } from 'clide-js';
function timestamp() {
return new Date().toISOString();
}
run({
plugins: [
logger({
prefix: timestamp,
logFile: `logs/${timestamp()}.log`,
enabled: process.env.NODE_ENV === 'development',
})
],
});
import { command, disableLogger, enableLogger } from 'clide-js';
export default command({
options: {
v {
description: 'Enable verbose logging',
type: 'boolean',
default: false,
},
},
handler: async ({ options, context }) => {
const verbose = await options.verbose();
if (verbose) {
enableLogger();
} else {
disableLogger();
}
// rest of the command...
},
});
A minimal logger plugin that logs the result of each execution step. By default, it uses the
Client
fromContext
. If alogFile
is provided, it will log to that file instead.The logger can be enabled or disabled at any time by emitting one of the
LoggerHooks
events:enableLogger
: Turns the logger on.disableLogger
: Turns the logger off.toggleLogger
: Toggles the logger on or off.