UNPKG

2.16 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var TreeRepository_1 = require("./TreeRepository");
4var Repository_1 = require("./Repository");
5var MongoDriver_1 = require("../driver/mongodb/MongoDriver");
6var MongoRepository_1 = require("./MongoRepository");
7/**
8 * Factory used to create different types of repositories.
9 */
10var RepositoryFactory = /** @class */ (function () {
11 function RepositoryFactory() {
12 }
13 // -------------------------------------------------------------------------
14 // Public Methods
15 // -------------------------------------------------------------------------
16 /**
17 * Creates a repository.
18 */
19 RepositoryFactory.prototype.create = function (manager, metadata, queryRunner) {
20 if (metadata.treeType) {
21 // NOTE: dynamic access to protected properties. We need this to prevent unwanted properties in those classes to be exposed,
22 // however we need these properties for internal work of the class
23 var repository = new TreeRepository_1.TreeRepository();
24 Object.assign(repository, {
25 manager: manager,
26 metadata: metadata,
27 queryRunner: queryRunner,
28 });
29 return repository;
30 }
31 else {
32 // NOTE: dynamic access to protected properties. We need this to prevent unwanted properties in those classes to be exposed,
33 // however we need these properties for internal work of the class
34 var repository = void 0;
35 if (manager.connection.driver instanceof MongoDriver_1.MongoDriver) {
36 repository = new MongoRepository_1.MongoRepository();
37 }
38 else {
39 repository = new Repository_1.Repository();
40 }
41 Object.assign(repository, {
42 manager: manager,
43 metadata: metadata,
44 queryRunner: queryRunner,
45 });
46 return repository;
47 }
48 };
49 return RepositoryFactory;
50}());
51exports.RepositoryFactory = RepositoryFactory;
52
53//# sourceMappingURL=RepositoryFactory.js.map