JavaScript SDK
The official JavaScript/TypeScript SDK for LH42.
Installation
bash
npm install @lakehouse42/sdk
# or
yarn add @lakehouse42/sdk
# or
pnpm add @lakehouse42/sdkQuick Start
typescript
import { LakehouseClient } from '@lakehouse42/sdk';
const client = new LakehouseClient({
apiKey: 'YOUR_API_KEY'
});
const results = await client.search({
query: 'quarterly revenue'
});
results.forEach(r => console.log(`${r.title}: ${r.score}`));TypeScript Support
Full TypeScript definitions included:
typescript
import {
LakehouseClient,
SearchResult,
Document,
SearchOptions
} from '@lakehouse42/sdk';
const options: SearchOptions = {
query: 'quarterly revenue',
limit: 10,
options: {
retrieval: 'hybrid',
rerank: true
}
};
const results: SearchResult[] = await client.search(options);Error Handling
typescript
import { LakehouseError, RateLimitError } from '@lakehouse42/sdk';
try {
const results = await client.search({ query: '...' });
} catch (error) {
if (error instanceof RateLimitError) {
console.log(`Retry after ${error.retryAfter}s`);
} else if (error instanceof LakehouseError) {
console.log(`API error: ${error.message}`);
}
}Browser Usage
For client-side applications, use the lightweight client:
typescript
import { LakehouseBrowserClient } from '@lakehouse42/sdk/browser';
// Note: Never expose API keys in browser code
// Use a server proxy insteadStreaming
typescript
const stream = await client.chat.completions.create({
messages: [{ role: 'user', content: 'Hello' }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.content);
}