TypeScript DTOs
Generate front-end interfaces from the package DTOs
TypeScript DTOs
Every response object is a spatie/laravel-data class under
OiLab\OiLaravelUmami\Data. These are discoverable by OI Laravel TS, which turns
them into TypeScript interfaces for an Inertia / React front-end.
Enabling discovery
Add the package's Data namespace to your app's config/oi-laravel-ts.php:
php
'data_namespaces' => [
'App\\Data',
'OiLab\\OiLaravelUmami\\Data',
],Then regenerate:
bash
php artisan oi:gen-tsResult
typescript
export interface IWebsiteStatsData {
pageviews: IStatMetricData;
visitors: IStatMetricData;
visits: IStatMetricData;
bounces: IStatMetricData;
totaltime: IStatMetricData;
}
export interface IStatMetricData {
value: number;
prev?: number;
}
export interface IPageviewsData {
pageviews: IDataPointData[];
sessions: IDataPointData[];
}Available DTOs
| DTO | Returned by |
|---|---|
WebsiteStatsData | stats() |
StatMetricData | nested in WebsiteStatsData |
ActiveVisitorsData | activeVisitors() |
PageviewsData | pageviews() |
DataPointData | nested in PageviewsData |
MetricData | metrics() |
WebsiteData | websites(), website(), createWebsite(), updateWebsite() |
UserData | users(), user(), createUser(), updateUser() |