@orion-js/migrations 4.1.8 → 4.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -183,7 +183,7 @@ var MigrationsService = class {
183
183
  try {
184
184
  await func(context);
185
185
  } catch (error) {
186
- import_logger.logger.error("[orionjs/migrations] Error running migration", error);
186
+ import_logger.logger.error("[orionjs/migrations] Error running migration", { error });
187
187
  throw error;
188
188
  }
189
189
  }
@@ -194,7 +194,9 @@ var MigrationsService = class {
194
194
  try {
195
195
  await func(context);
196
196
  } catch (error) {
197
- import_logger.logger.error("[orionjs/migrations] Error running migration, will abort transaction", error);
197
+ import_logger.logger.error("[orionjs/migrations] Error running migration, will abort transaction", {
198
+ error
199
+ });
198
200
  throw error;
199
201
  }
200
202
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/Schema.ts","../src/Repo.ts","../src/loadMigrations/index.ts","../src/service/index.ts","../src/MigrationsService.ts"],"sourcesContent":["export * from './Schema'\nexport * from './Repo'\nexport * from './loadMigrations'\nexport * from './service'\nexport * from './MigrationsService'\n","import {TypedId, typedId} from '@orion-js/mongodb'\nimport {InferSchemaType, schemaWithName} from '@orion-js/schema'\n\nexport type MigrationId = TypedId<'scnmg'>\n\nexport const MigrationSchema = schemaWithName('Migration', {\n _id: {\n type: typedId('scnmg'),\n },\n name: {\n type: String,\n },\n completedAt: {\n type: Date,\n },\n})\n\nexport type MigrationType = InferSchemaType<typeof MigrationSchema>\n","import {createCollection} from '@orion-js/mongodb'\nimport {MigrationSchema} from './Schema'\nimport {Service} from '@orion-js/services'\n\n@Service()\nexport class MigrationsRepo {\n public collection = createCollection({\n name: 'orionjs.migrations',\n schema: MigrationSchema,\n indexes: [],\n })\n\n async getCompletedMigrationNames() {\n const migrations = await this.collection.find().toArray()\n return migrations.map(m => m.name)\n }\n\n async saveCompletedMigration(name: string) {\n await this.collection.insertOne({\n name,\n completedAt: new Date(),\n })\n }\n}\n","import {defineJob, startWorkers} from '@orion-js/dogs'\nimport {getMigrationsFromServices} from '../service'\nimport {getInstance} from '@orion-js/services'\nimport {MigrationsService} from '../MigrationsService'\n\nexport interface Options {\n lockTime?: number\n omitJob?: boolean\n}\n\nexport function loadMigrations(migrationServices: any[], options?: Options) {\n const migrations = getMigrationsFromServices(migrationServices)\n if (options?.omitJob) return migrations\n\n startWorkers({\n cooldownPeriod: 1000,\n lockTime: 1000 * 60 * 20, // 20 min\n workersCount: 1,\n pollInterval: 10 * 1000,\n jobs: {\n orionjsRunMigrations: defineJob({\n type: 'recurrent',\n runEvery: 30 * 1000,\n async resolve(_params, context) {\n const instance = getInstance(MigrationsService)\n await instance.runMigrations(migrations, context)\n },\n }),\n },\n })\n\n return migrations\n}\n","import {ExecutionContext} from '@orion-js/dogs'\nimport {getInstance} from '@orion-js/services'\nimport {Service} from '@orion-js/services'\n\nexport interface MigrationServiceOptions {\n name: string\n useMongoTransactions: false\n}\n\n// Define metadata storage using WeakMaps\nconst serviceMetadata = new WeakMap<any, {_serviceType: string; options: MigrationServiceOptions}>()\n\nexport function MigrationService(options: MigrationServiceOptions) {\n return (target: any, context: ClassDecoratorContext<any>) => {\n Service()(target, context)\n\n context.addInitializer(function (this) {\n serviceMetadata.set(this, {_serviceType: 'migrations', options: options})\n })\n }\n}\n\nexport type MigrationExecutable = {\n runMigration(context: ExecutionContext): Promise<void>\n} & MigrationServiceOptions\n\nexport function getMigrationsFromServices(services: any[]): MigrationExecutable[] {\n return services.map(service => {\n const instance = getInstance(service)\n const options = serviceMetadata.get(instance.constructor)\n if (!options._serviceType || options._serviceType !== 'migrations') {\n throw new Error(`Service ${service.name} is not a migration service`)\n }\n\n return {\n ...options.options,\n runMigration: async (context: ExecutionContext) => {\n const instance = getInstance(service) as any\n return await instance.runMigration(context)\n },\n }\n })\n}\n","import {Inject, Service} from '@orion-js/services'\nimport type {MigrationsRepo as MigrationsRepoType} from './Repo'\nimport {MigrationsRepo} from './Repo'\nimport {logger} from '@orion-js/logger'\nimport {MigrationExecutable} from './service'\nimport {ExecutionContext} from '@orion-js/dogs'\n\n@Service()\nexport class MigrationsService {\n @Inject(() => MigrationsRepo)\n private migrationsRepo: MigrationsRepoType\n\n async getNextMigration(migrationsList: MigrationExecutable[]) {\n const completedNames = await this.migrationsRepo.getCompletedMigrationNames()\n\n for (const migrationExecutable of migrationsList) {\n if (completedNames.includes(migrationExecutable.name)) continue\n return migrationExecutable\n }\n }\n\n async runMigrations(migrationsList: MigrationExecutable[], context: ExecutionContext) {\n const next = await this.getNextMigration(migrationsList)\n if (!next) return\n\n logger.info('[orionjs/migrations] Running migration...', {name: next.name})\n\n if (next.useMongoTransactions) {\n await this.runAsTransaction(next.runMigration, context)\n } else {\n await this.runMigration(next.runMigration, context)\n }\n\n logger.info('[orionjs/migrations] Migration executed correctly', {name: next.name})\n\n await this.migrationsRepo.saveCompletedMigration(next.name)\n\n await this.runMigrations(migrationsList, context)\n }\n\n async runMigration(\n func: (context: ExecutionContext) => Promise<void>,\n context: ExecutionContext,\n ) {\n try {\n await func(context)\n } catch (error) {\n logger.error('[orionjs/migrations] Error running migration', error)\n throw error\n }\n }\n\n async runAsTransaction(\n func: (context: ExecutionContext) => Promise<void>,\n context: ExecutionContext,\n ) {\n const {client} = this.migrationsRepo.collection.client\n const session = client.startSession()\n\n await session.withTransaction(async () => {\n try {\n await func(context)\n } catch (error) {\n logger.error('[orionjs/migrations] Error running migration, will abort transaction', error)\n throw error\n }\n })\n\n session.endSession()\n }\n}\n"],"mappings":"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","names":["import_mongodb","import_services","instance","import_services","import_services","_init"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/Schema.ts","../src/Repo.ts","../src/loadMigrations/index.ts","../src/service/index.ts","../src/MigrationsService.ts"],"sourcesContent":["export * from './Schema'\nexport * from './Repo'\nexport * from './loadMigrations'\nexport * from './service'\nexport * from './MigrationsService'\n","import {TypedId, typedId} from '@orion-js/mongodb'\nimport {InferSchemaType, schemaWithName} from '@orion-js/schema'\n\nexport type MigrationId = TypedId<'scnmg'>\n\nexport const MigrationSchema = schemaWithName('Migration', {\n _id: {\n type: typedId('scnmg'),\n },\n name: {\n type: String,\n },\n completedAt: {\n type: Date,\n },\n})\n\nexport type MigrationType = InferSchemaType<typeof MigrationSchema>\n","import {createCollection} from '@orion-js/mongodb'\nimport {MigrationSchema} from './Schema'\nimport {Service} from '@orion-js/services'\n\n@Service()\nexport class MigrationsRepo {\n public collection = createCollection({\n name: 'orionjs.migrations',\n schema: MigrationSchema,\n indexes: [],\n })\n\n async getCompletedMigrationNames() {\n const migrations = await this.collection.find().toArray()\n return migrations.map(m => m.name)\n }\n\n async saveCompletedMigration(name: string) {\n await this.collection.insertOne({\n name,\n completedAt: new Date(),\n })\n }\n}\n","import {defineJob, startWorkers} from '@orion-js/dogs'\nimport {getMigrationsFromServices} from '../service'\nimport {getInstance} from '@orion-js/services'\nimport {MigrationsService} from '../MigrationsService'\n\nexport interface Options {\n lockTime?: number\n omitJob?: boolean\n}\n\nexport function loadMigrations(migrationServices: any[], options?: Options) {\n const migrations = getMigrationsFromServices(migrationServices)\n if (options?.omitJob) return migrations\n\n startWorkers({\n cooldownPeriod: 1000,\n lockTime: 1000 * 60 * 20, // 20 min\n workersCount: 1,\n pollInterval: 10 * 1000,\n jobs: {\n orionjsRunMigrations: defineJob({\n type: 'recurrent',\n runEvery: 30 * 1000,\n async resolve(_params, context) {\n const instance = getInstance(MigrationsService)\n await instance.runMigrations(migrations, context)\n },\n }),\n },\n })\n\n return migrations\n}\n","import {ExecutionContext} from '@orion-js/dogs'\nimport {getInstance} from '@orion-js/services'\nimport {Service} from '@orion-js/services'\n\nexport interface MigrationServiceOptions {\n name: string\n useMongoTransactions: false\n}\n\n// Define metadata storage using WeakMaps\nconst serviceMetadata = new WeakMap<any, {_serviceType: string; options: MigrationServiceOptions}>()\n\nexport function MigrationService(options: MigrationServiceOptions) {\n return (target: any, context: ClassDecoratorContext<any>) => {\n Service()(target, context)\n\n context.addInitializer(function (this) {\n serviceMetadata.set(this, {_serviceType: 'migrations', options: options})\n })\n }\n}\n\nexport type MigrationExecutable = {\n runMigration(context: ExecutionContext): Promise<void>\n} & MigrationServiceOptions\n\nexport function getMigrationsFromServices(services: any[]): MigrationExecutable[] {\n return services.map(service => {\n const instance = getInstance(service)\n const options = serviceMetadata.get(instance.constructor)\n if (!options._serviceType || options._serviceType !== 'migrations') {\n throw new Error(`Service ${service.name} is not a migration service`)\n }\n\n return {\n ...options.options,\n runMigration: async (context: ExecutionContext) => {\n const instance = getInstance(service) as any\n return await instance.runMigration(context)\n },\n }\n })\n}\n","import {Inject, Service} from '@orion-js/services'\nimport type {MigrationsRepo as MigrationsRepoType} from './Repo'\nimport {MigrationsRepo} from './Repo'\nimport {logger} from '@orion-js/logger'\nimport {MigrationExecutable} from './service'\nimport {ExecutionContext} from '@orion-js/dogs'\n\n@Service()\nexport class MigrationsService {\n @Inject(() => MigrationsRepo)\n private migrationsRepo: MigrationsRepoType\n\n async getNextMigration(migrationsList: MigrationExecutable[]) {\n const completedNames = await this.migrationsRepo.getCompletedMigrationNames()\n\n for (const migrationExecutable of migrationsList) {\n if (completedNames.includes(migrationExecutable.name)) continue\n return migrationExecutable\n }\n }\n\n async runMigrations(migrationsList: MigrationExecutable[], context: ExecutionContext) {\n const next = await this.getNextMigration(migrationsList)\n if (!next) return\n\n logger.info('[orionjs/migrations] Running migration...', {name: next.name})\n\n if (next.useMongoTransactions) {\n await this.runAsTransaction(next.runMigration, context)\n } else {\n await this.runMigration(next.runMigration, context)\n }\n\n logger.info('[orionjs/migrations] Migration executed correctly', {name: next.name})\n\n await this.migrationsRepo.saveCompletedMigration(next.name)\n\n await this.runMigrations(migrationsList, context)\n }\n\n async runMigration(\n func: (context: ExecutionContext) => Promise<void>,\n context: ExecutionContext,\n ) {\n try {\n await func(context)\n } catch (error) {\n logger.error('[orionjs/migrations] Error running migration', {error})\n throw error\n }\n }\n\n async runAsTransaction(\n func: (context: ExecutionContext) => Promise<void>,\n context: ExecutionContext,\n ) {\n const {client} = this.migrationsRepo.collection.client\n const session = client.startSession()\n\n await session.withTransaction(async () => {\n try {\n await func(context)\n } catch (error) {\n logger.error('[orionjs/migrations] Error running migration, will abort transaction', {\n error,\n })\n throw error\n }\n })\n\n session.endSession()\n }\n}\n"],"mappings":"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","names":["import_mongodb","import_services","instance","import_services","import_services","_init"]}
package/dist/index.js CHANGED
@@ -156,7 +156,7 @@ var MigrationsService = class {
156
156
  try {
157
157
  await func(context);
158
158
  } catch (error) {
159
- logger.error("[orionjs/migrations] Error running migration", error);
159
+ logger.error("[orionjs/migrations] Error running migration", { error });
160
160
  throw error;
161
161
  }
162
162
  }
@@ -167,7 +167,9 @@ var MigrationsService = class {
167
167
  try {
168
168
  await func(context);
169
169
  } catch (error) {
170
- logger.error("[orionjs/migrations] Error running migration, will abort transaction", error);
170
+ logger.error("[orionjs/migrations] Error running migration, will abort transaction", {
171
+ error
172
+ });
171
173
  throw error;
172
174
  }
173
175
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Schema.ts","../src/Repo.ts","../src/loadMigrations/index.ts","../src/service/index.ts","../src/MigrationsService.ts"],"sourcesContent":["import {TypedId, typedId} from '@orion-js/mongodb'\nimport {InferSchemaType, schemaWithName} from '@orion-js/schema'\n\nexport type MigrationId = TypedId<'scnmg'>\n\nexport const MigrationSchema = schemaWithName('Migration', {\n _id: {\n type: typedId('scnmg'),\n },\n name: {\n type: String,\n },\n completedAt: {\n type: Date,\n },\n})\n\nexport type MigrationType = InferSchemaType<typeof MigrationSchema>\n","import {createCollection} from '@orion-js/mongodb'\nimport {MigrationSchema} from './Schema'\nimport {Service} from '@orion-js/services'\n\n@Service()\nexport class MigrationsRepo {\n public collection = createCollection({\n name: 'orionjs.migrations',\n schema: MigrationSchema,\n indexes: [],\n })\n\n async getCompletedMigrationNames() {\n const migrations = await this.collection.find().toArray()\n return migrations.map(m => m.name)\n }\n\n async saveCompletedMigration(name: string) {\n await this.collection.insertOne({\n name,\n completedAt: new Date(),\n })\n }\n}\n","import {defineJob, startWorkers} from '@orion-js/dogs'\nimport {getMigrationsFromServices} from '../service'\nimport {getInstance} from '@orion-js/services'\nimport {MigrationsService} from '../MigrationsService'\n\nexport interface Options {\n lockTime?: number\n omitJob?: boolean\n}\n\nexport function loadMigrations(migrationServices: any[], options?: Options) {\n const migrations = getMigrationsFromServices(migrationServices)\n if (options?.omitJob) return migrations\n\n startWorkers({\n cooldownPeriod: 1000,\n lockTime: 1000 * 60 * 20, // 20 min\n workersCount: 1,\n pollInterval: 10 * 1000,\n jobs: {\n orionjsRunMigrations: defineJob({\n type: 'recurrent',\n runEvery: 30 * 1000,\n async resolve(_params, context) {\n const instance = getInstance(MigrationsService)\n await instance.runMigrations(migrations, context)\n },\n }),\n },\n })\n\n return migrations\n}\n","import {ExecutionContext} from '@orion-js/dogs'\nimport {getInstance} from '@orion-js/services'\nimport {Service} from '@orion-js/services'\n\nexport interface MigrationServiceOptions {\n name: string\n useMongoTransactions: false\n}\n\n// Define metadata storage using WeakMaps\nconst serviceMetadata = new WeakMap<any, {_serviceType: string; options: MigrationServiceOptions}>()\n\nexport function MigrationService(options: MigrationServiceOptions) {\n return (target: any, context: ClassDecoratorContext<any>) => {\n Service()(target, context)\n\n context.addInitializer(function (this) {\n serviceMetadata.set(this, {_serviceType: 'migrations', options: options})\n })\n }\n}\n\nexport type MigrationExecutable = {\n runMigration(context: ExecutionContext): Promise<void>\n} & MigrationServiceOptions\n\nexport function getMigrationsFromServices(services: any[]): MigrationExecutable[] {\n return services.map(service => {\n const instance = getInstance(service)\n const options = serviceMetadata.get(instance.constructor)\n if (!options._serviceType || options._serviceType !== 'migrations') {\n throw new Error(`Service ${service.name} is not a migration service`)\n }\n\n return {\n ...options.options,\n runMigration: async (context: ExecutionContext) => {\n const instance = getInstance(service) as any\n return await instance.runMigration(context)\n },\n }\n })\n}\n","import {Inject, Service} from '@orion-js/services'\nimport type {MigrationsRepo as MigrationsRepoType} from './Repo'\nimport {MigrationsRepo} from './Repo'\nimport {logger} from '@orion-js/logger'\nimport {MigrationExecutable} from './service'\nimport {ExecutionContext} from '@orion-js/dogs'\n\n@Service()\nexport class MigrationsService {\n @Inject(() => MigrationsRepo)\n private migrationsRepo: MigrationsRepoType\n\n async getNextMigration(migrationsList: MigrationExecutable[]) {\n const completedNames = await this.migrationsRepo.getCompletedMigrationNames()\n\n for (const migrationExecutable of migrationsList) {\n if (completedNames.includes(migrationExecutable.name)) continue\n return migrationExecutable\n }\n }\n\n async runMigrations(migrationsList: MigrationExecutable[], context: ExecutionContext) {\n const next = await this.getNextMigration(migrationsList)\n if (!next) return\n\n logger.info('[orionjs/migrations] Running migration...', {name: next.name})\n\n if (next.useMongoTransactions) {\n await this.runAsTransaction(next.runMigration, context)\n } else {\n await this.runMigration(next.runMigration, context)\n }\n\n logger.info('[orionjs/migrations] Migration executed correctly', {name: next.name})\n\n await this.migrationsRepo.saveCompletedMigration(next.name)\n\n await this.runMigrations(migrationsList, context)\n }\n\n async runMigration(\n func: (context: ExecutionContext) => Promise<void>,\n context: ExecutionContext,\n ) {\n try {\n await func(context)\n } catch (error) {\n logger.error('[orionjs/migrations] Error running migration', error)\n throw error\n }\n }\n\n async runAsTransaction(\n func: (context: ExecutionContext) => Promise<void>,\n context: ExecutionContext,\n ) {\n const {client} = this.migrationsRepo.collection.client\n const session = client.startSession()\n\n await session.withTransaction(async () => {\n try {\n await func(context)\n } catch (error) {\n logger.error('[orionjs/migrations] Error running migration, will abort transaction', error)\n throw error\n }\n })\n\n session.endSession()\n }\n}\n"],"mappings":"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","names":["Service","instance","getInstance","Service","_init","Service","getInstance"]}
1
+ {"version":3,"sources":["../src/Schema.ts","../src/Repo.ts","../src/loadMigrations/index.ts","../src/service/index.ts","../src/MigrationsService.ts"],"sourcesContent":["import {TypedId, typedId} from '@orion-js/mongodb'\nimport {InferSchemaType, schemaWithName} from '@orion-js/schema'\n\nexport type MigrationId = TypedId<'scnmg'>\n\nexport const MigrationSchema = schemaWithName('Migration', {\n _id: {\n type: typedId('scnmg'),\n },\n name: {\n type: String,\n },\n completedAt: {\n type: Date,\n },\n})\n\nexport type MigrationType = InferSchemaType<typeof MigrationSchema>\n","import {createCollection} from '@orion-js/mongodb'\nimport {MigrationSchema} from './Schema'\nimport {Service} from '@orion-js/services'\n\n@Service()\nexport class MigrationsRepo {\n public collection = createCollection({\n name: 'orionjs.migrations',\n schema: MigrationSchema,\n indexes: [],\n })\n\n async getCompletedMigrationNames() {\n const migrations = await this.collection.find().toArray()\n return migrations.map(m => m.name)\n }\n\n async saveCompletedMigration(name: string) {\n await this.collection.insertOne({\n name,\n completedAt: new Date(),\n })\n }\n}\n","import {defineJob, startWorkers} from '@orion-js/dogs'\nimport {getMigrationsFromServices} from '../service'\nimport {getInstance} from '@orion-js/services'\nimport {MigrationsService} from '../MigrationsService'\n\nexport interface Options {\n lockTime?: number\n omitJob?: boolean\n}\n\nexport function loadMigrations(migrationServices: any[], options?: Options) {\n const migrations = getMigrationsFromServices(migrationServices)\n if (options?.omitJob) return migrations\n\n startWorkers({\n cooldownPeriod: 1000,\n lockTime: 1000 * 60 * 20, // 20 min\n workersCount: 1,\n pollInterval: 10 * 1000,\n jobs: {\n orionjsRunMigrations: defineJob({\n type: 'recurrent',\n runEvery: 30 * 1000,\n async resolve(_params, context) {\n const instance = getInstance(MigrationsService)\n await instance.runMigrations(migrations, context)\n },\n }),\n },\n })\n\n return migrations\n}\n","import {ExecutionContext} from '@orion-js/dogs'\nimport {getInstance} from '@orion-js/services'\nimport {Service} from '@orion-js/services'\n\nexport interface MigrationServiceOptions {\n name: string\n useMongoTransactions: false\n}\n\n// Define metadata storage using WeakMaps\nconst serviceMetadata = new WeakMap<any, {_serviceType: string; options: MigrationServiceOptions}>()\n\nexport function MigrationService(options: MigrationServiceOptions) {\n return (target: any, context: ClassDecoratorContext<any>) => {\n Service()(target, context)\n\n context.addInitializer(function (this) {\n serviceMetadata.set(this, {_serviceType: 'migrations', options: options})\n })\n }\n}\n\nexport type MigrationExecutable = {\n runMigration(context: ExecutionContext): Promise<void>\n} & MigrationServiceOptions\n\nexport function getMigrationsFromServices(services: any[]): MigrationExecutable[] {\n return services.map(service => {\n const instance = getInstance(service)\n const options = serviceMetadata.get(instance.constructor)\n if (!options._serviceType || options._serviceType !== 'migrations') {\n throw new Error(`Service ${service.name} is not a migration service`)\n }\n\n return {\n ...options.options,\n runMigration: async (context: ExecutionContext) => {\n const instance = getInstance(service) as any\n return await instance.runMigration(context)\n },\n }\n })\n}\n","import {Inject, Service} from '@orion-js/services'\nimport type {MigrationsRepo as MigrationsRepoType} from './Repo'\nimport {MigrationsRepo} from './Repo'\nimport {logger} from '@orion-js/logger'\nimport {MigrationExecutable} from './service'\nimport {ExecutionContext} from '@orion-js/dogs'\n\n@Service()\nexport class MigrationsService {\n @Inject(() => MigrationsRepo)\n private migrationsRepo: MigrationsRepoType\n\n async getNextMigration(migrationsList: MigrationExecutable[]) {\n const completedNames = await this.migrationsRepo.getCompletedMigrationNames()\n\n for (const migrationExecutable of migrationsList) {\n if (completedNames.includes(migrationExecutable.name)) continue\n return migrationExecutable\n }\n }\n\n async runMigrations(migrationsList: MigrationExecutable[], context: ExecutionContext) {\n const next = await this.getNextMigration(migrationsList)\n if (!next) return\n\n logger.info('[orionjs/migrations] Running migration...', {name: next.name})\n\n if (next.useMongoTransactions) {\n await this.runAsTransaction(next.runMigration, context)\n } else {\n await this.runMigration(next.runMigration, context)\n }\n\n logger.info('[orionjs/migrations] Migration executed correctly', {name: next.name})\n\n await this.migrationsRepo.saveCompletedMigration(next.name)\n\n await this.runMigrations(migrationsList, context)\n }\n\n async runMigration(\n func: (context: ExecutionContext) => Promise<void>,\n context: ExecutionContext,\n ) {\n try {\n await func(context)\n } catch (error) {\n logger.error('[orionjs/migrations] Error running migration', {error})\n throw error\n }\n }\n\n async runAsTransaction(\n func: (context: ExecutionContext) => Promise<void>,\n context: ExecutionContext,\n ) {\n const {client} = this.migrationsRepo.collection.client\n const session = client.startSession()\n\n await session.withTransaction(async () => {\n try {\n await func(context)\n } catch (error) {\n logger.error('[orionjs/migrations] Error running migration, will abort transaction', {\n error,\n })\n throw error\n }\n })\n\n session.endSession()\n }\n}\n"],"mappings":"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","names":["Service","instance","getInstance","Service","_init","Service","getInstance"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/migrations",
3
- "version": "4.1.8",
3
+ "version": "4.1.9",
4
4
  "main": "./dist/index.cjs",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [
@@ -9,22 +9,22 @@
9
9
  "author": "nicolaslopezj",
10
10
  "license": "MIT",
11
11
  "peerDependencies": {
12
- "@orion-js/dogs": "4.1.8",
13
- "@orion-js/logger": "4.1.4",
14
- "@orion-js/mongodb": "4.1.7"
12
+ "@orion-js/dogs": "4.1.9",
13
+ "@orion-js/mongodb": "4.1.7",
14
+ "@orion-js/logger": "4.1.4"
15
15
  },
16
16
  "dependencies": {
17
- "@orion-js/schema": "4.1.4",
18
- "@orion-js/services": "4.1.4",
19
17
  "@orion-js/helpers": "4.1.4",
20
- "@orion-js/typed-model": "4.1.7"
18
+ "@orion-js/schema": "4.1.4",
19
+ "@orion-js/typed-model": "4.1.7",
20
+ "@orion-js/services": "4.1.4"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/node": "^18.0.0",
24
24
  "tsup": "^8.0.1",
25
25
  "typescript": "^5.4.5",
26
26
  "vitest": "^3.0.8",
27
- "@orion-js/dogs": "4.1.8",
27
+ "@orion-js/dogs": "4.1.9",
28
28
  "@orion-js/mongodb": "4.1.7"
29
29
  },
30
30
  "publishConfig": {