Skip to content

Commit

Permalink
Merge 4ecf92d into 96522d6
Browse files Browse the repository at this point in the history
  • Loading branch information
B4nan committed Mar 6, 2019
2 parents 96522d6 + 4ecf92d commit 12b07ac
Show file tree
Hide file tree
Showing 43 changed files with 967 additions and 953 deletions.
4 changes: 2 additions & 2 deletions lib/Collection.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { IPrimaryKey } from './decorators/PrimaryKey';
import { EntityProperty, IEntity, IEntityType, ReferenceType } from './decorators/Entity';
import { EntityHelper } from './utils/EntityHelper';
import { MetadataStorage } from './metadata/MetadataStorage';
import { EntityManager } from './EntityManager';
import { EntityTransformer } from '.';

export class Collection<T extends IEntityType<T>> {

Expand Down Expand Up @@ -92,7 +92,7 @@ export class Collection<T extends IEntityType<T>> {
}

toArray(parent: IEntity = this.owner): { [field: string]: any }[] {
return this.getItems().map(item => EntityHelper.toObject(item, parent, true));
return this.getItems().map(item => EntityTransformer.toObject(item, parent, true));
}

getIdentifiers(field = 'id'): IPrimaryKey[] {
Expand Down
16 changes: 8 additions & 8 deletions lib/EntityManager.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
import { EntityRepository } from './EntityRepository';
import { EntityFactory } from './EntityFactory';
import { EntityRepository } from './entity/EntityRepository';
import { EntityFactory } from './entity/EntityFactory';
import { EntityValidator } from './entity/EntityValidator';
import { EntityAssigner } from './entity/EntityAssigner';
import { EntityLoader } from './entity/EntityLoader';
import { UnitOfWork } from './UnitOfWork';
import { Utils } from './utils/Utils';
import { MikroORMOptions } from './MikroORM';
import { Validator } from './Validator';
import { RequestContext } from './utils/RequestContext';
import { FilterQuery } from './drivers/DatabaseDriver';
import { IDatabaseDriver } from './drivers/IDatabaseDriver';
import { IPrimaryKey } from './decorators/PrimaryKey';
import { QueryBuilder, QueryOrder } from './QueryBuilder';
import { QueryBuilder, QueryOrder } from './query/QueryBuilder';
import { EntityClass, EntityData, IEntity, IEntityType, ReferenceType } from './decorators/Entity';
import { EntityHelper } from './utils/EntityHelper';
import { EntityLoader } from './EntityLoader';
import { MetadataStorage } from './metadata/MetadataStorage';
import { Connection } from './connections/Connection';

export class EntityManager {

readonly validator = new Validator(this.options.strict);
readonly validator = new EntityValidator(this.options.strict);

private readonly repositoryMap: { [k: string]: EntityRepository<IEntity> } = {};
private readonly entityLoader = new EntityLoader(this);
Expand Down Expand Up @@ -173,7 +173,7 @@ export class EntityManager {
}

const entity = Utils.isEntity<T>(data) ? data : this.entityFactory.create<T>(entityName, data, true);
EntityHelper.assign(entity, data);
EntityAssigner.assign(entity, data);
this.getUnitOfWork().addToIdentityMap(entity);

return entity as T;
Expand Down
38 changes: 22 additions & 16 deletions lib/MikroORM.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { Logger } from './utils/Logger';
import { Utils } from './utils/Utils';
import { TypeScriptMetadataProvider } from './metadata/TypeScriptMetadataProvider';
import { MetadataProvider } from './metadata/MetadataProvider';
import { EntityRepository } from './EntityRepository';
import { EntityRepository } from './entity/EntityRepository';
import { EntityClass, IEntity } from './decorators/Entity';
import { NullCacheAdapter } from './cache/NullCacheAdapter';

Expand Down Expand Up @@ -56,26 +56,14 @@ export class MikroORM {

constructor(options: Options) {
this.options = Utils.merge({}, defaultOptions, options);

if (!this.options.dbName) {
throw new Error('No database specified, please fill in `dbName` option');
}

if (this.options.entities.length === 0 && this.options.entitiesDirs.length === 0) {
throw new Error('No entities found, please use `entities` or `entitiesDirs` option');
}

if (!this.options.driver) {
this.options.driver = require('./drivers/MongoDriver').MongoDriver;
}
this.validateOptions();
this.logger = new Logger(this.options);
this.driver = this.initDriver();

if (!this.options.cache.enabled) {
this.options.cache.adapter = NullCacheAdapter;
}

this.logger = new Logger(this.options);
this.driver = new this.options.driver!(this.options, this.logger);

if (!this.options.clientUrl) {
this.options.clientUrl = this.driver.getConnection().getDefaultClientUrl();
}
Expand All @@ -97,6 +85,24 @@ export class MikroORM {
return this.driver.getConnection().close(force);
}

private validateOptions(): void {
if (!this.options.dbName) {
throw new Error('No database specified, please fill in `dbName` option');
}

if (this.options.entities.length === 0 && this.options.entitiesDirs.length === 0) {
throw new Error('No entities found, please use `entities` or `entitiesDirs` option');
}
}

private initDriver(): IDatabaseDriver {
if (!this.options.driver) {
this.options.driver = require('./drivers/MongoDriver').MongoDriver;
}

return new this.options.driver!(this.options, this.logger);
}

}

export interface MikroORMOptions {
Expand Down

0 comments on commit 12b07ac

Please sign in to comment.