From 87de878e674b7bc8559d3515714a8736359929c1 Mon Sep 17 00:00:00 2001 From: Akshaya Acharya Date: Thu, 31 Oct 2024 14:24:57 +0530 Subject: [PATCH] Release v0.5.1, create database file based on env var --- ndc-duckduckapi/package-lock.json | 4 ++-- ndc-duckduckapi/package.json | 2 +- ndc-duckduckapi/src/duckduckapi.ts | 10 +++++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ndc-duckduckapi/package-lock.json b/ndc-duckduckapi/package-lock.json index 6dd6e3c..b23856c 100644 --- a/ndc-duckduckapi/package-lock.json +++ b/ndc-duckduckapi/package-lock.json @@ -1,12 +1,12 @@ { "name": "@hasura/ndc-duckduckapi", - "version": "0.5.0", + "version": "0.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@hasura/ndc-duckduckapi", - "version": "0.5.0", + "version": "0.5.1", "license": "Apache-2.0", "dependencies": { "@hasura/ndc-lambda-sdk": "^1.9.0", diff --git a/ndc-duckduckapi/package.json b/ndc-duckduckapi/package.json index d02683c..44df739 100644 --- a/ndc-duckduckapi/package.json +++ b/ndc-duckduckapi/package.json @@ -1,6 +1,6 @@ { "name": "@hasura/ndc-duckduckapi", - "version": "0.5.0", + "version": "0.5.1", "description": "SDK for the Hasura DDN DuckDuckAPI connector. Easily build a data API from any existing API by ETLing data into DuckDB.", "author": "Hasura", "license": "Apache-2.0", diff --git a/ndc-duckduckapi/src/duckduckapi.ts b/ndc-duckduckapi/src/duckduckapi.ts index b5316d5..41ab5d2 100644 --- a/ndc-duckduckapi/src/duckduckapi.ts +++ b/ndc-duckduckapi/src/duckduckapi.ts @@ -23,6 +23,8 @@ import { do_explain } from "./handlers/explain"; import { perform_query, plan_queries } from "./handlers/query"; import { generateConfig } from "./generate-config"; import { Connection, Database } from "duckdb-async"; +import fs from "fs-extra"; +import path from "path"; // Make a connection manager const DUCKDB_URL = "duck.db"; @@ -30,8 +32,14 @@ let db: Database; export async function getDB() { if (!db) { const duckDBUrl = (process.env["DUCKDB_URL"] as string) ?? DUCKDB_URL; + + const dirPath = path.dirname(duckDBUrl); + if (dirPath !== ".") { + await fs.ensureDir(dirPath); + } + db = await Database.create(duckDBUrl); - console.log("Created duckdb at", duckDBUrl); + console.log("Database file at", duckDBUrl); } return db; }