UNPKG

typeorm

Version:

Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.

344 lines (342 loc) • 17.3 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [0, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } Object.defineProperty(exports, "__esModule", { value: true }); /*! */ require("reflect-metadata"); var ConnectionManager_1 = require("./connection/ConnectionManager"); var MetadataArgsStorage_1 = require("./metadata-args/MetadataArgsStorage"); var container_1 = require("./container"); var PlatformTools_1 = require("./platform/PlatformTools"); var ConnectionOptionsReader_1 = require("./connection/ConnectionOptionsReader"); var PromiseUtils_1 = require("./util/PromiseUtils"); // ------------------------------------------------------------------------- // Commonly Used exports // ------------------------------------------------------------------------- __export(require("./container")); __export(require("./error/QueryFailedError")); __export(require("./decorator/columns/Column")); __export(require("./decorator/columns/CreateDateColumn")); __export(require("./decorator/columns/PrimaryGeneratedColumn")); __export(require("./decorator/columns/PrimaryColumn")); __export(require("./decorator/columns/UpdateDateColumn")); __export(require("./decorator/columns/VersionColumn")); __export(require("./decorator/columns/ObjectIdColumn")); __export(require("./decorator/listeners/AfterInsert")); __export(require("./decorator/listeners/AfterLoad")); __export(require("./decorator/listeners/AfterRemove")); __export(require("./decorator/listeners/AfterUpdate")); __export(require("./decorator/listeners/BeforeInsert")); __export(require("./decorator/listeners/BeforeRemove")); __export(require("./decorator/listeners/BeforeUpdate")); __export(require("./decorator/listeners/EventSubscriber")); __export(require("./decorator/relations/JoinColumn")); __export(require("./decorator/relations/JoinTable")); __export(require("./decorator/relations/ManyToMany")); __export(require("./decorator/relations/ManyToOne")); __export(require("./decorator/relations/OneToMany")); __export(require("./decorator/relations/OneToOne")); __export(require("./decorator/relations/RelationCount")); __export(require("./decorator/relations/RelationId")); __export(require("./decorator/entity/Entity")); __export(require("./decorator/entity/ChildEntity")); __export(require("./decorator/entity/TableInheritance")); __export(require("./decorator/transaction/Transaction")); __export(require("./decorator/transaction/TransactionManager")); __export(require("./decorator/transaction/TransactionRepository")); __export(require("./decorator/tree/TreeLevelColumn")); __export(require("./decorator/tree/TreeParent")); __export(require("./decorator/tree/TreeChildren")); __export(require("./decorator/tree/Tree")); __export(require("./decorator/Index")); __export(require("./decorator/Unique")); __export(require("./decorator/Check")); __export(require("./decorator/Generated")); __export(require("./decorator/EntityRepository")); __export(require("./find-options/operator/Any")); __export(require("./find-options/operator/Between")); __export(require("./find-options/operator/Equal")); __export(require("./find-options/operator/In")); __export(require("./find-options/operator/IsNull")); __export(require("./find-options/operator/LessThan")); __export(require("./find-options/operator/Like")); __export(require("./find-options/operator/MoreThan")); __export(require("./find-options/operator/Not")); __export(require("./find-options/operator/Raw")); __export(require("./find-options/FindOperator")); __export(require("./logger/AdvancedConsoleLogger")); __export(require("./logger/SimpleConsoleLogger")); __export(require("./logger/FileLogger")); __export(require("./metadata/EntityMetadata")); __export(require("./entity-manager/EntityManager")); __export(require("./repository/AbstractRepository")); __export(require("./repository/Repository")); __export(require("./repository/BaseEntity")); __export(require("./repository/TreeRepository")); __export(require("./repository/MongoRepository")); __export(require("./schema-builder/table/TableColumn")); __export(require("./schema-builder/table/TableForeignKey")); __export(require("./schema-builder/table/TableIndex")); __export(require("./schema-builder/table/Table")); __export(require("./driver/mongodb/typings")); __export(require("./driver/sqlserver/MssqlParameter")); var ConnectionOptionsReader_2 = require("./connection/ConnectionOptionsReader"); exports.ConnectionOptionsReader = ConnectionOptionsReader_2.ConnectionOptionsReader; var Connection_1 = require("./connection/Connection"); exports.Connection = Connection_1.Connection; var ConnectionManager_2 = require("./connection/ConnectionManager"); exports.ConnectionManager = ConnectionManager_2.ConnectionManager; var QueryBuilder_1 = require("./query-builder/QueryBuilder"); exports.QueryBuilder = QueryBuilder_1.QueryBuilder; var SelectQueryBuilder_1 = require("./query-builder/SelectQueryBuilder"); exports.SelectQueryBuilder = SelectQueryBuilder_1.SelectQueryBuilder; var DeleteQueryBuilder_1 = require("./query-builder/DeleteQueryBuilder"); exports.DeleteQueryBuilder = DeleteQueryBuilder_1.DeleteQueryBuilder; var InsertQueryBuilder_1 = require("./query-builder/InsertQueryBuilder"); exports.InsertQueryBuilder = InsertQueryBuilder_1.InsertQueryBuilder; var UpdateQueryBuilder_1 = require("./query-builder/UpdateQueryBuilder"); exports.UpdateQueryBuilder = UpdateQueryBuilder_1.UpdateQueryBuilder; var RelationQueryBuilder_1 = require("./query-builder/RelationQueryBuilder"); exports.RelationQueryBuilder = RelationQueryBuilder_1.RelationQueryBuilder; var Brackets_1 = require("./query-builder/Brackets"); exports.Brackets = Brackets_1.Brackets; var InsertResult_1 = require("./query-builder/result/InsertResult"); exports.InsertResult = InsertResult_1.InsertResult; var UpdateResult_1 = require("./query-builder/result/UpdateResult"); exports.UpdateResult = UpdateResult_1.UpdateResult; var DeleteResult_1 = require("./query-builder/result/DeleteResult"); exports.DeleteResult = DeleteResult_1.DeleteResult; var EntityManager_1 = require("./entity-manager/EntityManager"); exports.EntityManager = EntityManager_1.EntityManager; var MongoEntityManager_1 = require("./entity-manager/MongoEntityManager"); exports.MongoEntityManager = MongoEntityManager_1.MongoEntityManager; var DefaultNamingStrategy_1 = require("./naming-strategy/DefaultNamingStrategy"); exports.DefaultNamingStrategy = DefaultNamingStrategy_1.DefaultNamingStrategy; var Repository_1 = require("./repository/Repository"); exports.Repository = Repository_1.Repository; var TreeRepository_1 = require("./repository/TreeRepository"); exports.TreeRepository = TreeRepository_1.TreeRepository; var MongoRepository_1 = require("./repository/MongoRepository"); exports.MongoRepository = MongoRepository_1.MongoRepository; var BaseEntity_1 = require("./repository/BaseEntity"); exports.BaseEntity = BaseEntity_1.BaseEntity; var EntitySchema_1 = require("./entity-schema/EntitySchema"); exports.EntitySchema = EntitySchema_1.EntitySchema; var PromiseUtils_2 = require("./util/PromiseUtils"); exports.PromiseUtils = PromiseUtils_2.PromiseUtils; // ------------------------------------------------------------------------- // Deprecated // ------------------------------------------------------------------------- // ------------------------------------------------------------------------- // Commonly used functionality // ------------------------------------------------------------------------- /** * Gets metadata args storage. */ function getMetadataArgsStorage() { // we should store metadata storage in a global variable otherwise it brings too much problems // one of the problem is that if any entity (or any other) will be imported before consumer will call // useContainer method with his own container implementation, that entity will be registered in the // old old container (default one post probably) and consumer will his entity. // calling useContainer before he imports any entity (or any other) is not always convenient. // another reason is that when we run migrations typeorm is being called from a global package // and it may load entities which register decorators in typeorm of local package // this leads to impossibility of usage of entities in migrations and cli related operations var globalScope = PlatformTools_1.PlatformTools.getGlobalVariable(); if (!globalScope.typeormMetadataArgsStorage) globalScope.typeormMetadataArgsStorage = new MetadataArgsStorage_1.MetadataArgsStorage(); return globalScope.typeormMetadataArgsStorage; } exports.getMetadataArgsStorage = getMetadataArgsStorage; /** * Reads connection options stored in ormconfig configuration file. */ function getConnectionOptions(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2 /*return*/, new ConnectionOptionsReader_1.ConnectionOptionsReader().get(connectionName)]; }); }); } exports.getConnectionOptions = getConnectionOptions; /** * Gets a ConnectionManager which creates connections. */ function getConnectionManager() { return container_1.getFromContainer(ConnectionManager_1.ConnectionManager); } exports.getConnectionManager = getConnectionManager; /** * Creates a new connection and registers it in the manager. * * If connection options were not specified, then it will try to create connection automatically, * based on content of ormconfig (json/js/yml/xml/env) file or environment variables. * Only one connection from ormconfig will be created (name "default" or connection without name). */ function createConnection(optionsOrName) { return __awaiter(this, void 0, void 0, function () { var connectionName, options, _a; return __generator(this, function (_b) { switch (_b.label) { case 0: connectionName = typeof optionsOrName === "string" ? optionsOrName : "default"; if (!(optionsOrName instanceof Object)) return [3 /*break*/, 1]; _a = optionsOrName; return [3 /*break*/, 3]; case 1: return [4 /*yield*/, getConnectionOptions(connectionName)]; case 2: _a = _b.sent(); _b.label = 3; case 3: options = _a; return [2 /*return*/, getConnectionManager().create(options).connect()]; } }); }); } exports.createConnection = createConnection; /** * Creates new connections and registers them in the manager. * * If connection options were not specified, then it will try to create connection automatically, * based on content of ormconfig (json/js/yml/xml/env) file or environment variables. * All connections from the ormconfig will be created. */ function createConnections(options) { return __awaiter(this, void 0, void 0, function () { var connections; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!!options) return [3 /*break*/, 2]; return [4 /*yield*/, new ConnectionOptionsReader_1.ConnectionOptionsReader().all()]; case 1: options = _a.sent(); _a.label = 2; case 2: connections = options.map(function (options) { return getConnectionManager().create(options); }); return [2 /*return*/, PromiseUtils_1.PromiseUtils.runInSequence(connections, function (connection) { return connection.connect(); })]; } }); }); } exports.createConnections = createConnections; /** * Gets connection from the connection manager. * If connection name wasn't specified, then "default" connection will be retrieved. */ function getConnection(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName); } exports.getConnection = getConnection; /** * Gets entity manager from the connection. * If connection name wasn't specified, then "default" connection will be retrieved. */ function getManager(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).manager; } exports.getManager = getManager; /** * Gets MongoDB entity manager from the connection. * If connection name wasn't specified, then "default" connection will be retrieved. */ function getMongoManager(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).manager; } exports.getMongoManager = getMongoManager; /** * Gets Sqljs entity manager from connection name. * "default" connection is used, when no name is specified. * Only works when Sqljs driver is used. */ function getSqljsManager(connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).manager; } exports.getSqljsManager = getSqljsManager; /** * Gets repository for the given entity class. */ function getRepository(entityClass, connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).getRepository(entityClass); } exports.getRepository = getRepository; /** * Gets tree repository for the given entity class. */ function getTreeRepository(entityClass, connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).getTreeRepository(entityClass); } exports.getTreeRepository = getTreeRepository; /** * Gets tree repository for the given entity class. */ function getCustomRepository(customRepository, connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).getCustomRepository(customRepository); } exports.getCustomRepository = getCustomRepository; /** * Gets mongodb repository for the given entity class or name. */ function getMongoRepository(entityClass, connectionName) { if (connectionName === void 0) { connectionName = "default"; } return getConnectionManager().get(connectionName).getMongoRepository(entityClass); } exports.getMongoRepository = getMongoRepository; /** * Creates a new query builder. */ function createQueryBuilder(entityClass, alias, connectionName) { if (connectionName === void 0) { connectionName = "default"; } if (entityClass) { return getRepository(entityClass, connectionName).createQueryBuilder(alias); } return getConnection(connectionName).createQueryBuilder(); } exports.createQueryBuilder = createQueryBuilder; //# sourceMappingURL=index.js.map