Files
powerpoint-toolbox/node_modules/office-addin-lint/src/commands.ts
T
2025-03-07 19:22:02 +01:00

75 lines
2.4 KiB
TypeScript

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
import { OptionValues } from "commander";
import { logErrorMessage } from "office-addin-usage-data";
import * as defaults from "./defaults";
import { makeFilesPrettier, performLintCheck, performLintFix } from "./lint";
import { usageDataObject } from "./defaults";
/* global process */
/**
* Determines path to files to run lint against. Priority order follows:
* 1 --files option passed through cli
* 2 lint_files config property in package.json
* 3 default location
* @param command command options which can contain files
*/
function getPathToFiles(options: OptionValues): string {
const pathToFiles: any = options.files
? options.files
: process.env.npm_package_config_lint_files;
return pathToFiles ? pathToFiles : defaults.lintFiles;
}
export async function lint(options: OptionValues) {
try {
const pathToFiles: string = getPathToFiles(options);
const useTestConfig: boolean = options.test;
await performLintCheck(pathToFiles, useTestConfig);
usageDataObject.reportSuccess("lint");
} catch (err: any) {
if (typeof err.status == "number") {
process.exitCode = err.status;
} else {
process.exitCode = defaults.ESLintExitCode.CommandFailed;
usageDataObject.reportException("lint", err);
logErrorMessage(err);
}
}
}
export async function lintFix(options: OptionValues) {
try {
const pathToFiles: string = getPathToFiles(options);
const useTestConfig: boolean = options.test;
await performLintFix(pathToFiles, useTestConfig);
usageDataObject.reportSuccess("lintFix");
} catch (err: any) {
if (typeof err.status == "number") {
process.exitCode = err.status;
} else {
process.exitCode = defaults.ESLintExitCode.CommandFailed;
usageDataObject.reportException("lintFix", err);
logErrorMessage(err);
}
}
}
export async function prettier(options: OptionValues) {
try {
const pathToFiles: string = getPathToFiles(options);
await makeFilesPrettier(pathToFiles);
usageDataObject.reportSuccess("prettier");
} catch (err: any) {
if (typeof err.status == "number") {
process.exitCode = err.status;
} else {
process.exitCode = defaults.PrettierExitCode.CommandFailed;
usageDataObject.reportException("prettier", err);
logErrorMessage(err);
}
}
}