Types
TypeScript type definitions and utilities for MSR Firebase.
Table of contents
- FirebaseDatabase
- MigrationStatus
- BackupResult
- RestoreResult
- ValidationResult
- ValidationError
- ValidationWarning
- Generic Database Type
- Usage Examples
FirebaseDatabase
Type alias for Firebase Realtime Database.
type FirebaseDatabase = admin.database.Database;
Used throughout MSR Firebase to represent the Firebase database instance.
MigrationStatus
Status of a migration.
type MigrationStatus = {
timestamp: number;
name: string;
status: 'applied' | 'pending';
appliedAt?: Date;
};
Properties
- timestamp: Migration identifier
- name: Migration file name
- status: Whether migration is applied or pending
- appliedAt (optional): When migration was applied
BackupResult
Result of a backup operation.
type BackupResult = {
backupId: string;
timestamp: Date;
size: number;
path: string;
};
Properties
- backupId: Unique backup identifier
- timestamp: When backup was created
- size: Backup size in bytes
- path: Location of backup file
RestoreResult
Result of a restore operation.
type RestoreResult = {
backupId: string;
timestamp: Date;
success: boolean;
error?: string;
};
Properties
- backupId: Backup that was restored
- timestamp: When restore was performed
- success: Whether restore succeeded
- error (optional): Error message if failed
ValidationResult
Result of migration validation.
type ValidationResult = {
valid: boolean;
errors: ValidationError[];
warnings: ValidationWarning[];
};
Properties
- valid: Overall validation status
- errors: Critical validation errors
- warnings: Non-critical warnings
ValidationError
Validation error details.
type ValidationError = {
type: 'duplicate' | 'checksum' | 'missing' | 'format';
message: string;
migration?: string;
};
Properties
- type: Type of validation error
- message: Error description
- migration (optional): Affected migration file
ValidationWarning
Validation warning details.
type ValidationWarning = {
type: 'performance' | 'deprecation' | 'suggestion';
message: string;
migration?: string;
};
Properties
- type: Type of warning
- message: Warning description
- migration (optional): Affected migration file
Generic Database Type
MSR Firebase uses the generic type parameter IDB to represent the database type:
// In your migrations
IMigrationScript<admin.database.Database>
// In FirebaseRunner
class FirebaseRunner extends MigrationScriptExecutor<admin.database.Database>
This provides full TypeScript type safety for Firebase operations.
Usage Examples
Using MigrationStatus
const statuses: MigrationStatus[] = await runner.list();
statuses.forEach(status => {
if (status.status === 'pending') {
console.log(`Pending: ${status.name}`);
} else {
console.log(`Applied: ${status.name} at ${status.appliedAt}`);
}
});
Using ValidationResult
const validation: ValidationResult = await runner.validate();
if (!validation.valid) {
validation.errors.forEach(error => {
console.error(`${error.type}: ${error.message}`);
});
}
validation.warnings.forEach(warning => {
console.warn(`${warning.type}: ${warning.message}`);
});