@temboplus/tembo-dashboard
v0.0.26-beta.0
Published
A foundational library for Temboplus-Dashboard projects providing type-safe data layer abstraction with API contracts, domain models, and repositories.
Readme
@temboplus/tembo-dashboard
A foundational library for Temboplus-Dashboard projects providing type-safe data layer abstraction with API contracts, domain models, and repositories.
Features
- Type Safety: Full TypeScript support with Zod schema validation
- API Contracts: Type-safe API definitions using
@ts-rest/core - Domain Models: Rich business logic with proper data handling
- Query Builders: Fluent API for building complex queries
- Repository Pattern: Clean data access layer with error handling
Modules
Collections
Handle incoming payments from mobile money and bank channels.
import { CollectionRepository } from '@temboplus/tembo-dashboard';
const repo = new CollectionRepository();
const collections = await repo.getCollections();
const summary = await repo.getSummary();Payouts
Manage outbound payments to mobile money and bank accounts.
import { PayoutRepository } from '@temboplus/tembo-dashboard';
const repo = new PayoutRepository();
const payouts = await repo.getPayouts();
const payout = await repo.getPayout('id');Authentication
User authentication and session management.
import { AuthRepository } from '@temboplus/tembo-dashboard';
const repo = new AuthRepository();
const user = await repo.login({
identity: '[email protected]',
password: 'password'
});Architecture
Each module follows a consistent pattern:
module/
├── module.dtos.ts # Zod schemas and types
├── module.api-contract.ts # API contract definitions
├── module.model.ts # Domain models with business logic
├── module.query-builder.ts # Query building utilities
└── module.repository.ts # Data access layerUsage
Installation
npm install @temboplus/tembo-dashboardThe library has peer dependencies that need to be installed:
npm install @temboplus/frontend-core @ts-rest/core zod tslib uuidBasic Setup
import { PayoutRepository } from '@temboplus/tembo-dashboard';
// Initialize with optional config
const payoutRepo = new PayoutRepository({
token: 'your-auth-token',
root: 'https://api.example.com'
});
// Use the repository
const result = await payoutRepo.getPayouts({
page: 1,
limit: 10,
status: 'PAYMENT_ACCEPTED'
});Query Building
import { PayoutQueryBuilder } from '@temboplus/tembo-dashboard';
const query = new PayoutQueryBuilder()
.whereSuccessful()
.whereAmountBetween(1000, 50000)
.dateRange('2024-01-01', '2024-12-31')
.toPayoutQuery();
const payouts = await repo.getPayouts(query);Requirements
- TypeScript 4.5+
- Node.js 16+
Peer Dependencies
@temboplus/frontend-core ^0.2.11- Core utilities and Amount handling@ts-rest/core ^3.52.1- API contract definitionszod ^3.24.2- Schema validationtslib ^2.8.1- TypeScript runtime helpersuuid ^11.1.0- UUID generation
Repository
- GitHub: tembo-dashboard-js
- Issues: Report issues
License
TemboPlus © 2025
