@hashgraph/solo
Version:
An opinionated CLI tool to deploy and manage private Hedera Networks.
19 lines (18 loc) • 1.16 kB
TypeScript
import { type SchemaDefinition } from './schema-definition.js';
import { type SchemaMigration } from './schema-migration.js';
import { SemanticVersion } from '../../../../business/utils/semantic-version.js';
import { type ClassConstructor } from '../../../../business/utils/class-constructor.type.js';
import { type ObjectMapper } from '../../../mapper/api/object-mapper.js';
export declare abstract class SchemaDefinitionBase<T> implements SchemaDefinition<T> {
protected readonly mapper: ObjectMapper;
abstract get classConstructor(): ClassConstructor<T>;
abstract get migrations(): SchemaMigration[];
abstract get name(): string;
abstract get version(): SemanticVersion<number>;
protected constructor(mapper: ObjectMapper);
transform(data: object, sourceVersion?: SemanticVersion<number>): Promise<T>;
validateMigrations(): Promise<void>;
protected nextVersionJump(currentVersion: SemanticVersion<number>): SemanticVersion<number>;
protected applyMigrations(data: object, dataVersion: SemanticVersion<number>): Promise<object>;
protected findMigrations(dataVersion: SemanticVersion<number>): SchemaMigration[];
}