changed entry point functions

This commit is contained in:
Umed Khudoiberdiev 2016-03-13 12:54:37 +05:00
parent 3eda744d6c
commit 5f92ede75c
10 changed files with 44 additions and 51 deletions

View File

@ -1,4 +1,4 @@
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {Post} from "./entity/Post";
import {ConnectionOptions} from "../../src/connection/ConnectionOptions";
@ -12,7 +12,7 @@ let options: ConnectionOptions = {
autoSchemaCreate: true
};
TypeORM.createMysqlConnection(options, [Post]).then(connection => {
createMysqlConnection(options, [Post]).then(connection => {
let post = new Post();
post.text = "Hello how are you?";

View File

@ -1,4 +1,4 @@
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {Post} from "./entity/Post";
import {PostDetails} from "./entity/PostDetails";
import {Image} from "./entity/Image";
@ -17,7 +17,7 @@ let options = {
autoSchemaCreate: true
};
TypeORM.createMysqlConnection(options, [Post, PostDetails, Image, ImageDetails, Cover, Category, Chapter]).then(connection => {
createMysqlConnection(options, [Post, PostDetails, Image, ImageDetails, Cover, Category, Chapter]).then(connection => {
let postRepository = connection.getRepository<Post>(Post);

View File

@ -1,4 +1,4 @@
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {Post} from "./entity/Post";
import {ConnectionOptions} from "../../src/connection/ConnectionOptions";
import {PostDetails} from "./entity/PostDetails";
@ -18,7 +18,7 @@ let options: ConnectionOptions = {
autoSchemaCreate: true
};
TypeORM.createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(connection => {
createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(connection => {
let details = new PostDetails();
details.authorName = "Umed";

View File

@ -1,4 +1,4 @@
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {Post} from "./entity/Post";
import {PostDetails} from "./entity/PostDetails";
import {PostCategory} from "./entity/PostCategory";
@ -17,7 +17,7 @@ let options = {
autoSchemaCreate: true
};
TypeORM.createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(connection => {
createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(connection => {
let details = new PostDetails();
details.authorName = "Umed";

View File

@ -1,4 +1,4 @@
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {Post} from "./entity/Post";
import {PostDetails} from "./entity/PostDetails";
import {PostCategory} from "./entity/PostCategory";
@ -17,7 +17,7 @@ let options = {
autoSchemaCreate: true
};
TypeORM.createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(connection => {
createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(connection => {
let details1 = new PostDetails();
details1.comment = "People";

View File

@ -6,40 +6,33 @@ import {MysqlDriver} from "./driver/MysqlDriver";
let mysql = require("mysql");
/**
* Provides quick functions for easy-way of performing some commonly making operations.
* Global connection manager.
*/
export class TypeORM {
export const connectionManager = new ConnectionManager();
/**
* Global connection manager.
*/
static connectionManager = new ConnectionManager();
/**
* Creates a new connection to mysql. Imports documents and subscribers from the given directories.
*/
static createMysqlConnection(options: string, documentDirectories: string[]|Function[], subscriberDirectories?: string[]): Promise<Connection>;
static createMysqlConnection(options: ConnectionOptions, documentDirectories: string[]|Function[], subscriberDirectories?: string[]): Promise<Connection>;
static createMysqlConnection(configuration: string|ConnectionOptions, documentDirectories: string[]|Function[], subscriberDirectories?: string[]): Promise<Connection> {
if (typeof configuration === "string") {
configuration = { url: <string> configuration };
}
this.connectionManager.addConnection(new MysqlDriver(mysql));
if (documentDirectories && documentDirectories.length > 0) {
if (typeof documentDirectories[0] === "string") {
this.connectionManager.importEntitiesFromDirectories(<string[]> documentDirectories);
} else {
this.connectionManager.importEntities(<Function[]> documentDirectories);
}
}
if (subscriberDirectories && subscriberDirectories.length > 0)
this.connectionManager.importSubscribersFromDirectories(subscriberDirectories);
const connection = this.connectionManager.getConnection();
return connection.connect(<ConnectionOptions> configuration).then(() => connection);
/**
* Creates a new connection to mysql. Imports documents and subscribers from the given directories.
*/
export function createMysqlConnection(options: string, documentDirectories: string[]|Function[], subscriberDirectories?: string[]): Promise<Connection>;
export function createMysqlConnection(options: ConnectionOptions, documentDirectories: string[]|Function[], subscriberDirectories?: string[]): Promise<Connection>;
export function createMysqlConnection(configuration: string|ConnectionOptions, documentDirectories: string[]|Function[], subscriberDirectories?: string[]): Promise<Connection> {
if (typeof configuration === "string") {
configuration = { url: <string> configuration };
}
}
this.connectionManager.addConnection(new MysqlDriver(mysql));
if (documentDirectories && documentDirectories.length > 0) {
if (typeof documentDirectories[0] === "string") {
this.connectionManager.importEntitiesFromDirectories(<string[]> documentDirectories);
} else {
this.connectionManager.importEntities(<Function[]> documentDirectories);
}
}
if (subscriberDirectories && subscriberDirectories.length > 0)
this.connectionManager.importSubscribersFromDirectories(subscriberDirectories);
const connection = this.connectionManager.getConnection();
return connection.connect(<ConnectionOptions> configuration).then(() => connection);
}

View File

@ -1,7 +1,7 @@
import * as chai from "chai";
import {expect} from "chai";
import {Connection} from "../../src/connection/Connection";
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {ConnectionOptions} from "../../src/connection/ConnectionOptions";
import {Repository} from "../../src/repository/Repository";
import {SchemaCreator} from "../../src/schema-creator/SchemaCreator";
@ -26,7 +26,7 @@ describe("insertion", function() {
// connect to db
let connection: Connection;
before(function() {
return TypeORM.createMysqlConnection(options, [Post]).then(conn => {
return createMysqlConnection(options, [Post]).then(conn => {
connection = conn;
}).catch(e => console.log("Error during connection to db: " + e));
});

View File

@ -1,7 +1,7 @@
import * as chai from "chai";
import {expect} from "chai";
import {Connection} from "../../src/connection/Connection";
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {ConnectionOptions} from "../../src/connection/ConnectionOptions";
import {Repository} from "../../src/repository/Repository";
import {SchemaCreator} from "../../src/schema-creator/SchemaCreator";
@ -32,7 +32,7 @@ describe("one-to-one", function() {
// connect to db
let connection: Connection;
before(function() {
return TypeORM.createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(conn => {
return createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(conn => {
connection = conn;
}).catch(e => console.log("Error during connection to db: " + e));
});

View File

@ -1,7 +1,7 @@
import * as chai from "chai";
import {expect} from "chai";
import {Connection} from "../../src/connection/Connection";
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {ConnectionOptions} from "../../src/connection/ConnectionOptions";
import {Repository} from "../../src/repository/Repository";
import {SchemaCreator} from "../../src/schema-creator/SchemaCreator";
@ -32,7 +32,7 @@ describe("many-to-one", function() {
// connect to db
let connection: Connection;
before(function() {
return TypeORM.createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(conn => {
return createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(conn => {
connection = conn;
}).catch(e => console.log("Error during connection to db: " + e));
});

View File

@ -1,7 +1,7 @@
import * as chai from "chai";
import {expect} from "chai";
import {Connection} from "../../src/connection/Connection";
import {TypeORM} from "../../src/TypeORM";
import {createMysqlConnection} from "../../src/typeorm";
import {ConnectionOptions} from "../../src/connection/ConnectionOptions";
import {Repository} from "../../src/repository/Repository";
import {SchemaCreator} from "../../src/schema-creator/SchemaCreator";
@ -32,7 +32,7 @@ describe("many-to-many", function() {
// connect to db
let connection: Connection;
before(function() {
return TypeORM.createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(conn => {
return createMysqlConnection(options, [Post, PostDetails, PostCategory, PostMetadata, PostImage, PostInformation, PostAuthor]).then(conn => {
connection = conn;
}).catch(e => console.log("Error during connection to db: " + e));
});