add duckdb-ui-client & other ts pkgs (#10)

* add duckdb-ui-client & other ts pkgs

* workflow fixes

* fix working dir

* no sparse checkout; specify package.json path

* path to pnpm-lock.yaml

* add check & build test

* workflow step descriptions

* use comments & names

* one more naming tweak
This commit is contained in:
Jeff Raymakers
2025-06-13 09:06:55 -07:00
parent d6cc9eeea4
commit 0edb52054a
133 changed files with 11112 additions and 4 deletions

View File

@@ -0,0 +1,33 @@
import { displayStringForDuckDBValue } from './conversion/displayStringForDuckDBValue.js';
import { jsonFromDuckDBValue } from './conversion/jsonFromDuckDBValue.js';
import { DuckDBStructEntry } from './DuckDBStructEntry.js';
import { Json } from './Json.js';
import { SpecialDuckDBValue } from './SpecialDuckDBValue.js';
export class DuckDBStructValue extends SpecialDuckDBValue {
public readonly entries: readonly DuckDBStructEntry[];
constructor(entries: readonly DuckDBStructEntry[]) {
super();
this.entries = entries;
}
public toDuckDBString(): string {
const entryStrings = this.entries.map(
({ key, value }) =>
`${displayStringForDuckDBValue(key)}: ${displayStringForDuckDBValue(
value,
)}`,
);
return `{${entryStrings.join(', ')}}`;
}
public toJson(): Json {
const result: Json = {};
for (const { key, value } of this.entries) {
const keyString = displayStringForDuckDBValue(key);
result[keyString] = jsonFromDuckDBValue(value);
}
return result;
}
}