UNPKG

ravendb

Version:
48 lines 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MultiDatabaseHiLoIdGenerator = void 0; const MultiTypeHiLoIdGenerator_js_1 = require("./MultiTypeHiLoIdGenerator.js"); const DocumentStoreBase_js_1 = require("../DocumentStoreBase.js"); const TypeUtil_js_1 = require("../../Utility/TypeUtil.js"); class MultiDatabaseHiLoIdGenerator { _store; _generators = {}; constructor(store) { this._store = store; } generateDocumentId(database, entity) { return this._getGeneratorForDatabase(DocumentStoreBase_js_1.DocumentStoreBase.getEffectiveDatabase(this._store, database)) .generateDocumentId(entity); } _getGeneratorForDatabase(database) { if (!(database in this._generators)) { this._generators[database] = new MultiTypeHiLoIdGenerator_js_1.MultiTypeHiLoIdGenerator(this._store, database); } return this._generators[database]; } async returnUnusedRange() { for (const [key, generator] of Object.entries(this._generators)) { await generator.returnUnusedRange(); } } generateNextIdFor(database, target) { if (TypeUtil_js_1.TypeUtil.isString(target)) { return this._generateNextIdFor(database, target); } if (TypeUtil_js_1.TypeUtil.isObjectTypeDescriptor(target)) { const collectionName = this._store.conventions.getCollectionNameForType(target); return this._generateNextIdFor(database, collectionName); } const collectionName = this._store.conventions.getCollectionNameForEntity(target); return this._generateNextIdFor(database, collectionName); } async _generateNextIdFor(database, collectionName) { database = this._store.getEffectiveDatabase(database); if (!(database in this._generators)) { this._generators[database] = new MultiTypeHiLoIdGenerator_js_1.MultiTypeHiLoIdGenerator(this._store, database); } return this._generators[database].generateNextIdFor(collectionName); } } exports.MultiDatabaseHiLoIdGenerator = MultiDatabaseHiLoIdGenerator; //# sourceMappingURL=MultiDatabaseHiLoIdGenerator.js.map