/* * Copyright 2024 ScopeDB, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { Client } from "scopedb"; // Layer: quickstart (read-only and runnable). // Run: pnpm run example:catalog const client = new Client( process.env["SCOPEDB_ENDPOINT"] ?? "http://127.0.0.1:6543", { apiKey: process.env["SCOPEDB_API_KEY"], }, ); const database = process.env["SCOPEDB_DATABASE"] ?? "scopedb"; const schema = process.env["SCOPEDB_SCHEMA"] ?? "public"; for await (const item of client.iterateDatabases({ pageSize: 100 })) { console.log("database", item.name, item.comment ?? ""); } for await (const item of client.iterateSchemas({ database, pageSize: 100 })) { console.log("schema", item.name, item.comment ?? ""); } let firstTableName: string | undefined; for await ( const item of client.iterateTables({ database, schema, pageSize: 100 }) ) { firstTableName ??= item.name; console.log("table", item.name, item.comment ?? ""); } if (firstTableName !== undefined) { const description = await client.table(firstTableName, { database, schema, }).describe(); console.log("first table", description); }