refactor: remove omitPermissionGuidColumns utility and implement omitRecords function
This commit is contained in:
21
src/cli.ts
21
src/cli.ts
@@ -18,9 +18,6 @@ import {
|
||||
parseHeaderSpec,
|
||||
renderOutput,
|
||||
} from "@slawek/sk-tools";
|
||||
import {
|
||||
omitPermissionGuidColumns,
|
||||
} from "./cli/permission-utils.ts";
|
||||
|
||||
type CliValues = {
|
||||
help?: boolean;
|
||||
@@ -89,6 +86,16 @@ function usageCommand(command: string): string {
|
||||
}
|
||||
}
|
||||
|
||||
function omitRecords(record: Record<string, unknown>, names: Set<string>): Record<string, unknown> {
|
||||
return Object.fromEntries(
|
||||
Object.entries(record).filter(([key]) => !names.has(key)),
|
||||
);
|
||||
}
|
||||
|
||||
function isRecord(value: unknown): value is Record<string, unknown> {
|
||||
return value !== null && typeof value === "object" && !Array.isArray(value);
|
||||
}
|
||||
|
||||
async function main(): Promise<void> {
|
||||
const argv = process.argv.slice(2);
|
||||
const command = argv[0];
|
||||
@@ -138,9 +145,11 @@ async function main(): Promise<void> {
|
||||
const outputFormat = normalizeOutputFormat(typedValues.output);
|
||||
const result = await runCommand(command, typedValues);
|
||||
const filtered = outputFiltered(result, typedValues.query);
|
||||
const output = command === "list-app-permissions" && typedValues.short
|
||||
? omitPermissionGuidColumns(filtered)
|
||||
: filtered;
|
||||
let output: unknown = filtered;
|
||||
if (command === "list-app-permissions" && typedValues.short && Array.isArray(filtered) && filtered.every(isRecord)) {
|
||||
const names = new Set(["resourceAppId", "permissionId"]);
|
||||
output = filtered.map((item) => omitRecords(item, names));
|
||||
}
|
||||
const headerSpec = command === "rest"
|
||||
? parseHeaderSpec(undefined)
|
||||
: parseHeaderSpec(typedValues.header);
|
||||
|
||||
Reference in New Issue
Block a user