in src/core/ledger.ts [141:183]
export async function getLedgerMetaData(
ledgerSummary: LedgerSummary,
enqueueSnackbar?: (
message: SnackbarMessage,
options?: OptionsObject
) => SnackbarKey
): Promise<LedgerInfo> {
if (!ledgerSummary.Name) {
return nullLedger;
}
let ledger: LedgerInfo;
if (frontendEndpointValue) {
const serviceConfigurationOptions: ClientConfiguration = {
endpoint: frontendEndpointValue,
};
ledger = await new QLDB(serviceConfigurationOptions)
.describeLedger({ Name: ledgerSummary.Name })
.promise();
} else {
ledger = await new QLDB()
.describeLedger({ Name: ledgerSummary.Name })
.promise();
}
if (ledger.State === "ACTIVE") {
try {
const result = await openLedger(ledgerSummary.Name).execute(
"SELECT * FROM information_schema.user_tables"
);
ledger.tables = parseTableInfos(result[0].getResultList());
} catch (e) {
const errorMessage = `Unable to execute query on ledger ${
ledgerSummary.Name
}. ${
frontendEndpointValue || sessionEndpointValue
? "Make sure you have set session endpoint correctly."
: ""
}. ${e}`;
enqueueSnackbar && enqueueSnackbar(errorMessage, { variant: "error" });
}
}
return ledger;
}