UNPKG

@shopify/shopify-app-session-storage-redis

Version:
36 lines (33 loc) 1.44 kB
import { AbstractMigrationEngine } from '@shopify/shopify-app-session-storage'; class RedisSessionStorageMigrator extends AbstractMigrationEngine { constructor(dbConnection, opts = {}, migrations) { // The name has already been decided whith the last migration opts.migrationDBIdentifier = 'migrations'; super(dbConnection, opts, migrations); } async initMigrationPersistence() { // nothing to do here return Promise.resolve(); } async hasMigrationBeenApplied(migrationName) { const migrations = await this.getMigrationRecords(); const found = migrations.get(migrationName) ?? false; return Promise.resolve(found); } async saveAppliedMigration(migrationName) { const migrations = await this.getMigrationRecords(); migrations.set(migrationName, true); this.connection.set(this.options.migrationDBIdentifier, JSON.stringify(Object.fromEntries(migrations))); return Promise.resolve(); } async getMigrationRecords() { const migrationsRecord = await this.connection.get(this.options.migrationDBIdentifier); let migrations = new Map(); if (migrationsRecord) { migrations = new Map(Object.entries(JSON.parse(migrationsRecord))); } return Promise.resolve(migrations); } } export { RedisSessionStorageMigrator }; //# sourceMappingURL=redis-migrator.mjs.map