Skip to main content

Quick Start

Lovrabet SDK is a lightweight JavaScript/TypeScript SDK that allows you to quickly integrate with Lovrabet platform's data services.

Recommended Method

Using Lovrabet CLI can generate configuration with one click, saving you the trouble of manual configuration. Please refer to CLI 5-Minute Quick Start.

Installation

Install the SDK using npm or yarn:

npm install @lovrabet/sdk
# or
yarn add @lovrabet/sdk

⚡ 5-Minute Quick Start

Use CLI to generate configuration with one click, then use directly:

import { createClient } from "@lovrabet/sdk";
import "./api/api"; // Import CLI-generated configuration

const client = createClient();

// Standard access method (recommended) - use dataset_ prefix + datasetCode
const users = await client.models.dataset_71494bcba13f4ec7858abe90794183ad.filter({
currentPage: 1,
pageSize: 20,
});

// Alias access method (syntactic sugar) - use configured alias
const users = await client.models.users.filter({
currentPage: 1,
pageSize: 20,
});

💡 Standard Method vs Alias Method: Both are functionally identical. The standard method uses datasetCode, globally unique, AI-friendly; the alias method is more readable, it's syntactic sugar.

2. Manual Configuration Method

import { registerModels, createClient } from "@lovrabet/sdk";

// Register configuration
registerModels({
appCode: "your-app-code",
models: [
{
datasetCode: "8d2dcbae08b54bdd84c00be558ed48df",
tableName: "users",
alias: "users", // Optional: model alias
name: "User Table", // Optional: UI display name
},
{
datasetCode: "a1b2c3d4e5f6789012345678abcdef12",
tableName: "posts",
alias: "posts",
},
],
});

const client = createClient();

// Standard access method (recommended)
const users = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter();
// Alias access method (syntactic sugar)
const users = await client.models.users.filter();

📊 Response Data Structure

List Query Response

const response = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter();

console.log(response.tableData); // Data list
console.log(response.total); // Total count
console.log(response.currentPage); // Current page
console.log(response.pageSize); // Page size

Single Record Response

const user = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.getOne("user-id");
console.log(user); // User detail object

🛠️ CLI Auto-Generated Configuration

If you use the Lovrabet CLI tool, the configuration file will be automatically generated:

src/api/api.ts (Auto-generated by CLI)

import { registerModels, type ModelsConfig } from "@lovrabet/sdk";

export const LOVRABET_MODELS_CONFIG: ModelsConfig = {
appCode: "app-c4c89304",
models: [
{
datasetCode: "71494bcba13f4ec7858abe90794183ad",
tableName: "users",
alias: "users",
name: "User Management",
},
{
datasetCode: "d26ed512e878461ca97d287a47606fd3",
tableName: "posts",
alias: "posts",
name: "Article Management",
},
],
} as const;

// Auto-register default configuration
registerModels(LOVRABET_MODELS_CONFIG);

src/api/client.ts (Business code)

import { createClient } from "@lovrabet/sdk";
import "./api"; // Import configuration file to execute registration

// Create client instance
export const lovrabetClient = createClient();

// Use in components
// import { lovrabetClient } from '@/api/client';
// Standard method: lovrabetClient.models.dataset_71494bcba13f4ec7858abe90794183ad.filter()
// Alias method: lovrabetClient.models.users.filter()

🛠️ Basic CRUD Operations

// Query list (with pagination and conditional filtering)
const users = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter({
where: { status: { $eq: "active" } },
currentPage: 1,
pageSize: 10,
});

// Get single record
const user = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.getOne("user-id");

// Create new record
const newUser = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.create({
name: "Jane Doe",
email: "jane@example.com",
status: "active",
});

// Update record
const updatedUser = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.update("user-id", {
name: "Jane Smith",
email: "jane.smith@example.com",
});

// Delete record
await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.delete("user-id");

💡 The above examples use the standard method dataset_xxx, but you can also use the alias method client.models.users.xxx().

🆕 v1.2.0 New Features

Model Access Methods

v1.2.0 supports standard and alias methods to access models:

// Standard method (recommended) - use dataset_ prefix + datasetCode
// Globally unique, convenient for AI tools to generate code
const users = await client.models.dataset_8d2dcbae08b54bdd84c00be558ed48df.filter();

// Alias method (syntactic sugar) - use configured alias
// Convenient for human reading, functionally identical to standard method
const users = await client.models.users.filter();

💡 Alias is just a pointer, internally still uses datasetCode for access, all features are exactly the same as the standard method.

Model Manager Enhancements

// Get all model detailed information
const details = client.getModelListDetails();
// Returns: [{ datasetCode: '8d2dcbae08b54bdd84c00be558ed48df', alias: 'users', name: 'User Table' }, ...]

// Dynamically add model
client.addModel({
datasetCode: 'f7e6d5c4b3a2901234567890fedcba98',
tableName: 'products',
alias: 'products'
});

📖 Next Steps

Congratulations! You've mastered the basics of Lovrabet SDK. Next, you can dive deeper:

❓ Having Issues?

If you encounter problems during use, you can check:

  • 🛠️ Troubleshooting - Common questions and answers
  • 📞 Technical Support - Contact Lovrabet technical team