LogoRobo.js
Framework

SchemaHistoryManager

Class: SchemaHistoryManager

Manager for schema version history.

Provides:

  • Append-only history storage
  • Version retrieval and comparison
  • Visual diff generation between versions

Constructors

new SchemaHistoryManager()

new SchemaHistoryManager(adapter): SchemaHistoryManager

Parameters

ParameterType
adapterFlashcoreAdapter<string, unknown>

Returns

SchemaHistoryManager

Methods

appendHistory()

appendHistory(entry, namespace?): Promise<void>

Append a new history entry.

Parameters

ParameterTypeDescription
entrySchemaHistoryEntryHistory entry to append
namespace?stringNamespace name (undefined for default)

Returns

Promise<void>


clearHistory()

clearHistory(namespace?): Promise<void>

Clear all history for a namespace.

Parameters

ParameterTypeDescription
namespace?stringNamespace name (undefined for default)

Returns

Promise<void>


diffVersions()

diffVersions(
   fromVersion, 
   toVersion, 
namespace?): Promise<VersionDiff>

Generate a diff between two versions.

Parameters

ParameterTypeDescription
fromVersionnumberStarting version number
toVersionnumberEnding version number
namespace?stringNamespace name (undefined for default)

Returns

Promise<VersionDiff>

Version diff or null if versions not found


getChangesBetween()

getChangesBetween(
   fromVersion, 
   toVersion, 
namespace?): Promise<SchemaChange[]>

Get changes between two versions as a flat list.

Parameters

ParameterTypeDescription
fromVersionnumberStarting version number
toVersionnumberEnding version number
namespace?stringNamespace name (undefined for default)

Returns

Promise<SchemaChange[]>

List of changes


getHistory()

getHistory(namespace?): Promise<SchemaHistoryEntry[]>

Get the full schema history for a namespace.

Parameters

ParameterTypeDescription
namespace?stringNamespace name (undefined for default)

Returns

Promise<SchemaHistoryEntry[]>

Array of history entries, oldest first


getVersion()

getVersion(namespace?): Promise<number>

Get the latest version number for a namespace.

Parameters

ParameterTypeDescription
namespace?stringNamespace name (undefined for default)

Returns

Promise<number>

Latest version number, or 0 if no history


getVersionEntry()

getVersionEntry(version, namespace?): Promise<SchemaHistoryEntry>

Get a specific history entry by version.

Parameters

ParameterTypeDescription
versionnumberVersion number to retrieve
namespace?stringNamespace name (undefined for default)

Returns

Promise<SchemaHistoryEntry>

History entry or null if not found


createAutoEntry()

static createAutoEntry(
   version, 
   checksum, 
   changes): SchemaHistoryEntry

Create a history entry for auto-applied changes.

Parameters

ParameterTypeDescription
versionnumberNew version number
checksumstringNew combined checksum
changesSchemaChange[]Changes that were auto-applied

Returns

SchemaHistoryEntry

History entry


createMigrationEntry()

static createMigrationEntry(
   version, 
   checksum, 
   changes, 
   migrationName): SchemaHistoryEntry

Create a history entry for migration-applied changes.

Parameters

ParameterTypeDescription
versionnumberNew version number
checksumstringNew combined checksum
changesSchemaChange[]Changes that were applied
migrationNamestringName of the migration

Returns

SchemaHistoryEntry

History entry


formatHistory()

static formatHistory(entries, options): string

Format history entries for display.

Parameters

ParameterTypeDescription
entriesSchemaHistoryEntry[]History entries to format
options{ limit: number; showChanges: boolean; }Formatting options
options.limit?number-
options.showChanges?boolean-

Returns

string

Formatted string


formatVersionDiff()

static formatVersionDiff(diff): string

Format a version diff for display.

Parameters

ParameterTypeDescription
diffVersionDiffVersion diff to format

Returns

string

Formatted string

On this page