Skip to content

Commit

Permalink
Merge pull request #1 from typeorm/master
Browse files Browse the repository at this point in the history
merge from typeorm/typeorm
  • Loading branch information
Salimlou committed Jun 30, 2017
2 parents 8d9083b + 8efbde7 commit bc90039
Show file tree
Hide file tree
Showing 159 changed files with 3,563 additions and 1,930 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -15,7 +15,7 @@ before_script:
- sudo service mysql stop
- sudo service postgresql stop
- docker-compose up -d
- gulp createTravisOrmConfig
- npm run setup:config

after_success:
- bash <(curl -s https://codecov.io/bash)
5 changes: 5 additions & 0 deletions CHANGELOG.md
Expand Up @@ -54,6 +54,11 @@ of `QueryRunner`, e.g. `queryRunner.connection` and `queryRunner.manager`
* now `update` method in `QueryBuilder` accepts `Partial<Entity>` and property names used in update map are
column property names and they are automatically mapped to column names
* `SpecificRepository` has been removed. Instead new `RelationQueryBuilder` was introduced.
* `getEntitiesAndRawResults` of `QueryBuilder` has been renamed to `getRawAndEntities`
* in mssql all constraints are now generated using table name in their names - this is fixes issues with duplicate constraint names
* now when object is loaded from the database all its columns with null values will be set into entity properties as null.
Also after saving entity with unset properties that will be stored as nulls - their (properties) values will be set to null.
Also now all

### DEPRECATIONS

Expand Down
11 changes: 7 additions & 4 deletions DEVELOPER.md
Expand Up @@ -61,17 +61,20 @@ During installation you may have some problems with some dependencies.
For example to proper install oracle driver you need to follow all instructions from
[node-oracle documentation](https://github.com/oracle/node-oracledb).

Also install these packages globally:
## ORM config

* `npm install -g gulp` (you might need to prefix this command with `sudo`)
* `npm install -g typescript` (you might need to prefix this command with `sudo`)
To create an initial `ormconfig.json` file, run the following command:

```shell
npm run setup:config
```

## Building

To build a distribution package of TypeORM run:

```shell
gulp package
npm run package
```

This command will generate you a distribution package in the `build/package` directory.
Expand Down
4 changes: 2 additions & 2 deletions README-zh_CN.md
Expand Up @@ -952,8 +952,8 @@ let photos = await photoRepository
.where("photo.isPublished=true")
.andWhere("(photo.name=:photoName OR photo.name=:bearName)")
.orderBy("photo.id", "DESC")
.setFirstResult(5)
.setMaxResults(10)
.skip(5)
.take(10)
.setParameters({ photoName: "My", bearName: "Mishka" })
.getMany();
```
Expand Down
32 changes: 14 additions & 18 deletions README.md
Expand Up @@ -341,14 +341,12 @@ import {createConnection} from "typeorm";
import {Photo} from "./entity/Photo";
createConnection({
driver: {
type: "mysql",
host: "localhost",
port: 3306,
username: "root",
password: "admin",
database: "test"
},
type: "mysql",
host: "localhost",
port: 3306,
username: "root",
password: "admin",
database: "test"
entities: [
Photo
],
Expand Down Expand Up @@ -377,14 +375,12 @@ This is not very convenient, so instead we can set up the whole directory, from
import {createConnection} from "typeorm";
createConnection({
driver: {
type: "mysql",
host: "localhost",
port: 3306,
username: "root",
password: "admin",
database: "test"
},
type: "mysql",
host: "localhost",
port: 3306,
username: "root",
password: "admin",
database: "test"
entities: [
__dirname + "/entity/*.js"
],
Expand Down Expand Up @@ -1043,8 +1039,8 @@ let photos = await photoRepository
.where("photo.isPublished=true")
.andWhere("(photo.name=:photoName OR photo.name=:bearName)")
.orderBy("photo.id", "DESC")
.setFirstResult(5)
.setMaxResults(10)
.skip(5)
.take(10)
.setParameters({ photoName: "My", bearName: "Mishka" })
.getMany();
```
Expand Down
2 changes: 1 addition & 1 deletion gulpfile.ts
Expand Up @@ -42,7 +42,7 @@ export class Gulpfile {
@Task()
compile() {
return gulp.src("package.json", { read: false })
.pipe(shell(["tsc"]));
.pipe(shell(["npm run compile"]));
}

// -------------------------------------------------------------------------
Expand Down
9 changes: 6 additions & 3 deletions package.json
@@ -1,7 +1,7 @@
{
"name": "typeorm",
"private": true,
"version": "0.1.0-alpha.19",
"version": "0.1.0-alpha.25",
"description": "Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, WebSQL, MongoDB databases.",
"license": "MIT",
"readmeFilename": "README.md",
Expand Down Expand Up @@ -36,7 +36,7 @@
"websql-orm"
],
"devDependencies": {
"@types/chai": "^4.0.0",
"@types/chai": "^4.0.1",
"@types/chai-as-promised": "0.0.31",
"@types/mocha": "^2.2.41",
"@types/node": "^7.0.31",
Expand Down Expand Up @@ -83,7 +83,10 @@
"yargs": "^8.0.2"
},
"scripts": {
"test": "node_modules/.bin/gulp tests"
"test": "gulp tests",
"compile": "tsc",
"setup:config": "gulp createTravisOrmConfig",
"package": "gulp package"
},
"bin": {
"typeorm": "./cli.js"
Expand Down
6 changes: 3 additions & 3 deletions sample/sample3-many-to-one/entity/PostDetails.ts
Expand Up @@ -10,17 +10,17 @@ export class PostDetails {
@Column({
nullable: true
})
authorName: string;
authorName: string|null;

@Column({
nullable: true
})
comment: string;
comment: string|null;

@Column({
nullable: true
})
metadata: string;
metadata: string|null;

@OneToMany(type => Post, post => post.details, {
cascadeInsert: true,
Expand Down
6 changes: 3 additions & 3 deletions sample/sample4-many-to-many/entity/PostDetails.ts
Expand Up @@ -10,17 +10,17 @@ export class PostDetails {
@Column({
nullable: true
})
authorName: string;
authorName: string|null;

@Column({
nullable: true
})
comment: string;
comment: string|null;

@Column({
nullable: true
})
metadata: string;
metadata: string|null;

@ManyToMany(type => Post, post => post.details, {
cascadeInsert: true,
Expand Down
1 change: 0 additions & 1 deletion src/commands/MigrationCreateCommand.ts
@@ -1,4 +1,3 @@
import * as fs from "fs";
import {ConnectionOptionsReader} from "../connection/ConnectionOptionsReader";
import {CommandUtils} from "./CommandUtils";
const mkdirp = require("mkdirp");
Expand Down
2 changes: 1 addition & 1 deletion src/commands/SchemaDropCommand.ts
@@ -1,4 +1,4 @@
import {createConnections, createConnection} from "../index";
import {createConnection, createConnections} from "../index";
import {Connection} from "../connection/Connection";
import {ConnectionOptionsReader} from "../connection/ConnectionOptionsReader";

Expand Down
2 changes: 1 addition & 1 deletion src/commands/SchemaSyncCommand.ts
@@ -1,4 +1,4 @@
import {createConnections, createConnection} from "../index";
import {createConnection, createConnections} from "../index";
import {Connection} from "../connection/Connection";
import {ConnectionOptionsReader} from "../connection/ConnectionOptionsReader";

Expand Down
2 changes: 1 addition & 1 deletion src/commands/SchemaSyncLogCommand.ts
@@ -1,4 +1,4 @@
import {createConnections, createConnection} from "../index";
import {createConnection} from "../index";
import {Connection} from "../connection/Connection";
import {ConnectionOptionsReader} from "../connection/ConnectionOptionsReader";

Expand Down
1 change: 0 additions & 1 deletion src/commands/SubscriberCreateCommand.ts
@@ -1,4 +1,3 @@
import * as fs from "fs";
import {ConnectionOptionsReader} from "../connection/ConnectionOptionsReader";
import {CommandUtils} from "./CommandUtils";
const mkdirp = require("mkdirp");
Expand Down
12 changes: 6 additions & 6 deletions src/connection/Connection.ts
@@ -1,18 +1,18 @@
import {Driver} from "../driver/Driver";
import {Repository} from "../repository/Repository";
import {EntitySubscriberInterface} from "../subscriber/EntitySubscriberInterface";
import {RepositoryNotFoundError} from "./error/RepositoryNotFoundError";
import {RepositoryNotFoundError} from "../error/RepositoryNotFoundError";
import {ObjectType} from "../common/ObjectType";
import {EntityManager} from "../entity-manager/EntityManager";
import {DefaultNamingStrategy} from "../naming-strategy/DefaultNamingStrategy";
import {CannotExecuteNotConnectedError} from "./error/CannotExecuteNotConnectedError";
import {CannotConnectAlreadyConnectedError} from "./error/CannotConnectAlreadyConnectedError";
import {CannotExecuteNotConnectedError} from "../error/CannotExecuteNotConnectedError";
import {CannotConnectAlreadyConnectedError} from "../error/CannotConnectAlreadyConnectedError";
import {TreeRepository} from "../repository/TreeRepository";
import {NamingStrategyInterface} from "../naming-strategy/NamingStrategyInterface";
import {RepositoryNotTreeError} from "./error/RepositoryNotTreeError";
import {RepositoryNotTreeError} from "../error/RepositoryNotTreeError";
import {EntityMetadata} from "../metadata/EntityMetadata";
import {Logger} from "../logger/Logger";
import {EntityMetadataNotFound} from "../metadata-args/error/EntityMetadataNotFound";
import {EntityMetadataNotFound} from "../error/EntityMetadataNotFound";
import {MigrationInterface} from "../migration/MigrationInterface";
import {MigrationExecutor} from "../migration/MigrationExecutor";
import {PlatformTools} from "../platform/PlatformTools";
Expand All @@ -21,7 +21,7 @@ import {MongoDriver} from "../driver/mongodb/MongoDriver";
import {MongoEntityManager} from "../entity-manager/MongoEntityManager";
import {EntityMetadataValidator} from "../metadata-builder/EntityMetadataValidator";
import {ConnectionOptions} from "./ConnectionOptions";
import {QueryRunnerProviderAlreadyReleasedError} from "../query-runner/error/QueryRunnerProviderAlreadyReleasedError";
import {QueryRunnerProviderAlreadyReleasedError} from "../error/QueryRunnerProviderAlreadyReleasedError";
import {EntityManagerFactory} from "../entity-manager/EntityManagerFactory";
import {LoggerFactory} from "../logger/LoggerFactory";
import {RepositoryFactory} from "../repository/RepositoryFactory";
Expand Down
4 changes: 2 additions & 2 deletions src/connection/ConnectionManager.ts
@@ -1,7 +1,7 @@
import {Connection} from "./Connection";
import {ConnectionNotFoundError} from "./error/ConnectionNotFoundError";
import {ConnectionNotFoundError} from "../error/ConnectionNotFoundError";
import {ConnectionOptions} from "./ConnectionOptions";
import {AlreadyHasActiveConnectionError} from "./error/AlreadyHasActiveConnectionError";
import {AlreadyHasActiveConnectionError} from "../error/AlreadyHasActiveConnectionError";

/**
* ConnectionManager is used to store and manage multiple orm connections.
Expand Down
17 changes: 0 additions & 17 deletions src/connection/error/CannotDetermineConnectionOptionsError.ts

This file was deleted.

14 changes: 0 additions & 14 deletions src/connection/error/CannotImportAlreadyConnectedError.ts

This file was deleted.

13 changes: 0 additions & 13 deletions src/connection/error/CannotRunMigrationNotConnectedError.ts

This file was deleted.

13 changes: 0 additions & 13 deletions src/connection/error/CannotSyncNotConnectedError.ts

This file was deleted.

13 changes: 0 additions & 13 deletions src/connection/error/CannotUseNamingStrategyNotConnectedError.ts

This file was deleted.

3 changes: 2 additions & 1 deletion src/connection/options-reader/ConnectionOptionsEnvReader.ts
Expand Up @@ -29,6 +29,7 @@ export class ConnectionOptionsEnvReader {
extra: PlatformTools.getEnvVariable("TYPEORM_DRIVER_EXTRA") ? JSON.parse(PlatformTools.getEnvVariable("TYPEORM_DRIVER_EXTRA")) : undefined,
autoSchemaSync: OrmUtils.toBoolean(PlatformTools.getEnvVariable("TYPEORM_AUTO_SCHEMA_SYNC")),
entities: PlatformTools.getEnvVariable("TYPEORM_ENTITIES") ? PlatformTools.getEnvVariable("TYPEORM_ENTITIES").split(",") : [],
migrations: PlatformTools.getEnvVariable("TYPEORM_MIGRATIONS") ? PlatformTools.getEnvVariable("TYPEORM_MIGRATIONS").split(",") : [],
subscribers: PlatformTools.getEnvVariable("TYPEORM_SUBSCRIBERS") ? PlatformTools.getEnvVariable("TYPEORM_SUBSCRIBERS").split(",") : [],
entitySchemas: PlatformTools.getEnvVariable("TYPEORM_ENTITY_SCHEMAS") ? PlatformTools.getEnvVariable("TYPEORM_ENTITY_SCHEMAS").split(",") : [],
logging: {
Expand All @@ -44,4 +45,4 @@ export class ConnectionOptionsEnvReader {
};
}

}
}
2 changes: 1 addition & 1 deletion src/decorator/Index.ts
Expand Up @@ -35,7 +35,7 @@ export function Index(name: string, fields: (object?: any) => (any[]|{ [key: str
/**
* Composite index must be set on entity classes and must specify entity's fields to be indexed.
*/
export function Index(nameOrFieldsOrOptions: string|string[]|((object: any) => any[])|IndexOptions,
export function Index(nameOrFieldsOrOptions?: string|string[]|((object: any) => any[])|IndexOptions,
maybeFieldsOrOptions?: ((object?: any) => (any[]|{ [key: string]: number }))|IndexOptions|string[],
maybeOptions?: IndexOptions): Function {
const name = typeof nameOrFieldsOrOptions === "string" ? nameOrFieldsOrOptions : undefined;
Expand Down
2 changes: 1 addition & 1 deletion src/decorator/columns/Column.ts
@@ -1,5 +1,5 @@
import {ColumnOptions} from "../options/ColumnOptions";
import {GeneratedOnlyForPrimaryError} from "../error/GeneratedOnlyForPrimaryError";
import {GeneratedOnlyForPrimaryError} from "../../error/GeneratedOnlyForPrimaryError";
import {getMetadataArgsStorage} from "../../index";
import {
ColumnType,
Expand Down
4 changes: 2 additions & 2 deletions src/decorator/columns/PrimaryColumn.ts
@@ -1,8 +1,8 @@
import {ColumnOptions} from "../options/ColumnOptions";
import {ColumnType} from "../../driver/types/ColumnTypes";
import {ColumnTypeUndefinedError} from "../error/ColumnTypeUndefinedError";
import {ColumnTypeUndefinedError} from "../../error/ColumnTypeUndefinedError";
import {getMetadataArgsStorage} from "../../index";
import {PrimaryColumnCannotBeNullableError} from "../error/PrimaryColumnCannotBeNullableError";
import {PrimaryColumnCannotBeNullableError} from "../../error/PrimaryColumnCannotBeNullableError";
import {ColumnMetadataArgs} from "../../metadata-args/ColumnMetadataArgs";

/**
Expand Down
2 changes: 1 addition & 1 deletion src/decorator/columns/PrimaryGeneratedColumn.ts
@@ -1,6 +1,6 @@
import {ColumnOptions} from "../options/ColumnOptions";
import {getMetadataArgsStorage} from "../../index";
import {PrimaryColumnCannotBeNullableError} from "../error/PrimaryColumnCannotBeNullableError";
import {PrimaryColumnCannotBeNullableError} from "../../error/PrimaryColumnCannotBeNullableError";
import {ColumnMetadataArgs} from "../../metadata-args/ColumnMetadataArgs";

// todo: add overloads for PrimaryGeneratedColumn(generationType: "sequence"|"uuid" = "sequence", options?: ColumnOptions)
Expand Down
1 change: 0 additions & 1 deletion src/decorator/relations/RelationCount.ts
@@ -1,6 +1,5 @@
import {getMetadataArgsStorage} from "../../index";
import {RelationCountMetadataArgs} from "../../metadata-args/RelationCountMetadataArgs";
import {QueryBuilder} from "../../query-builder/QueryBuilder";
import {SelectQueryBuilder} from "../../query-builder/SelectQueryBuilder";

/**
Expand Down

0 comments on commit bc90039

Please sign in to comment.