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,
|
parseHeaderSpec,
|
||||||
renderOutput,
|
renderOutput,
|
||||||
} from "@slawek/sk-tools";
|
} from "@slawek/sk-tools";
|
||||||
import {
|
|
||||||
omitPermissionGuidColumns,
|
|
||||||
} from "./cli/permission-utils.ts";
|
|
||||||
|
|
||||||
type CliValues = {
|
type CliValues = {
|
||||||
help?: boolean;
|
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> {
|
async function main(): Promise<void> {
|
||||||
const argv = process.argv.slice(2);
|
const argv = process.argv.slice(2);
|
||||||
const command = argv[0];
|
const command = argv[0];
|
||||||
@@ -138,9 +145,11 @@ async function main(): Promise<void> {
|
|||||||
const outputFormat = normalizeOutputFormat(typedValues.output);
|
const outputFormat = normalizeOutputFormat(typedValues.output);
|
||||||
const result = await runCommand(command, typedValues);
|
const result = await runCommand(command, typedValues);
|
||||||
const filtered = outputFiltered(result, typedValues.query);
|
const filtered = outputFiltered(result, typedValues.query);
|
||||||
const output = command === "list-app-permissions" && typedValues.short
|
let output: unknown = filtered;
|
||||||
? omitPermissionGuidColumns(filtered)
|
if (command === "list-app-permissions" && typedValues.short && Array.isArray(filtered) && filtered.every(isRecord)) {
|
||||||
: filtered;
|
const names = new Set(["resourceAppId", "permissionId"]);
|
||||||
|
output = filtered.map((item) => omitRecords(item, names));
|
||||||
|
}
|
||||||
const headerSpec = command === "rest"
|
const headerSpec = command === "rest"
|
||||||
? parseHeaderSpec(undefined)
|
? parseHeaderSpec(undefined)
|
||||||
: parseHeaderSpec(typedValues.header);
|
: parseHeaderSpec(typedValues.header);
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
// SPDX-License-Identifier: MIT
|
|
||||||
|
|
||||||
export function omitPermissionGuidColumns(value: unknown): unknown {
|
|
||||||
if (Array.isArray(value)) {
|
|
||||||
return value.map((item) => omitPermissionGuidColumns(item));
|
|
||||||
}
|
|
||||||
if (!value || typeof value !== "object") {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
const { resourceAppId, permissionId, ...rest } = value as Record<string, unknown>;
|
|
||||||
void resourceAppId;
|
|
||||||
void permissionId;
|
|
||||||
return rest;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user