TypeScript Interfaces
typescript
How to represent date/time types
Example Output
Generated from the pet-store sample schema:
typescript
// Generated by @sqldoc/templates/typescript -- DO NOT EDIT
export interface Adoption {
id: number
petId: number
ownerId: number
adoptedAt: Date
adoptionFee: string
}
export interface AdoptionsAuditLog {
id: number
tableName: string
operation: string
oldData?: unknown
newData?: unknown
changedAt: Date
}
export interface Category {
id: number
name: string
description?: string
}
export interface LegacyInventory {
id: number
itemName?: string
oldSku?: string
quantity?: number
}
export interface Location {
id: number
name: string
address: string
city: string
zip?: string
}
export interface MedicalRecord {
id: number
petId: number
visitDate: string
diagnosis: string
treatment?: string
vetName?: string
}
export interface Owner {
id: number
name: string
email: string
phone?: string
createdAt?: Date
}
export interface Pet {
id: number
categoryId?: number
name: string
sku: string
price: string
internalNotes?: string
status: string
createdAt?: Date
}
export interface Review {
id: number
petId: number
ownerId: number
rating: number
body?: string
locationId?: number
createdAt?: Date
}
export interface StaffAuditLog {
id: number
tableName: string
operation: string
oldData?: unknown
newData?: unknown
changedAt: Date
}Usage
Add to your sqldoc.config.ts:
typescript
export default {
dialect: 'postgres',
schema: ['./schema.sql'],
codegen: [
{
template: 'typescript',
output: './generated/types.ts',
config: {
// See configuration options below
},
},
],
}Then run:
bash
sqldoc codegen