@pagopa/dx-cli
Version:
A CLI useful to manage DX tools.
24 lines (23 loc) • 893 B
JavaScript
import { SubscriptionClient } from "@azure/arm-resources-subscriptions";
import { z } from "zod/v4";
import { cloudAccountSchema, } from "../../domain/cloud-account.js";
import { defaultLocation } from "./locations.js";
export class AzureSubscriptionRepository {
#subscriptionClient;
constructor(credential) {
this.#subscriptionClient = new SubscriptionClient(credential);
}
async list() {
const subscriptions = [];
for await (const subscription of this.#subscriptionClient.subscriptions.list()) {
if (subscription.state === "Enabled") {
subscriptions.push({
defaultLocation,
displayName: subscription.displayName,
id: subscription.subscriptionId,
});
}
}
return z.array(cloudAccountSchema).parse(subscriptions);
}
}