Files
tsview/readme.hints.md

56 lines
1.6 KiB
Markdown

# tsview - Project Hints
## Overview
tsview is a CLI tool for viewing S3 and MongoDB data through a web UI.
## Key Patterns
### Configuration
- Reads from `.nogit/env.json` (created by `gitzone service`)
- Environment variables: MONGODB_URL, S3_HOST, S3_ACCESSKEY, etc.
### CLI Commands
- `tsview` - Start viewer (auto-finds free port from 3010+)
- `tsview --port 3000` - Force specific port
- `tsview s3` - S3 viewer only
- `tsview mongo` - MongoDB viewer only
### Dependencies
- Uses `@push.rocks/smartbucket` for S3 operations
- Uses `@push.rocks/smartdata` for MongoDB operations
- Uses `@api.global/typedserver` + `@api.global/typedrequest` for API
- Uses `@design.estate/dees-catalog` for UI components
### Build Process
- Run `pnpm build` to compile TypeScript and bundle web UI
- UI is bundled from `ts_web/` to `ts/bundled_ui.ts` as base64
### Web UI Structure
- `ts_web/elements/` - Web components (LitElement-based)
- `ts_web/services/` - API service for backend communication
- `ts_web/utilities/` - Shared formatting functions (formatSize, formatCount, getFileName)
- `ts_web/styles/` - Shared CSS custom properties (themeStyles)
### TypedRequest Pattern
```typescript
// Interface definition
export interface IReq_ListBuckets extends plugins.typedrequest.implementsTR<
plugins.typedrequest.ITypedRequest,
IReq_ListBuckets
> {
method: 'listBuckets';
request: {};
response: { buckets: string[] };
}
// Handler registration
typedrouter.addTypedHandler(
new plugins.typedrequest.TypedHandler<IReq_ListBuckets>(
'listBuckets',
async (reqData) => {
return { buckets: [...] };
}
)
);
```