cd06ae20e8
The code removed in the PR was flagged as unused by the JetBrains inspector. I did a QA on the dev environment but other checks are highly recommended. There is one commit by scope to make the review easier. --------- Co-authored-by: Charles Bochet <charles@twenty.com>
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import {
|
|
DataSource,
|
|
DataSourceOptions,
|
|
EntityTarget,
|
|
ObjectLiteral,
|
|
QueryRunner,
|
|
} from 'typeorm';
|
|
|
|
import { WorkspaceInternalContext } from 'src/engine/twenty-orm/interfaces/workspace-internal-context.interface';
|
|
|
|
import { WorkspaceEntityManager } from 'src/engine/twenty-orm/entity-manager/entity.manager';
|
|
import { WorkspaceRepository } from 'src/engine/twenty-orm/repository/workspace.repository';
|
|
|
|
export class WorkspaceDataSource extends DataSource {
|
|
readonly internalContext: WorkspaceInternalContext;
|
|
readonly manager: WorkspaceEntityManager;
|
|
|
|
constructor(
|
|
internalContext: WorkspaceInternalContext,
|
|
options: DataSourceOptions,
|
|
) {
|
|
super(options);
|
|
this.internalContext = internalContext;
|
|
// Recreate manager after internalContext has been initialized
|
|
this.manager = this.createEntityManager();
|
|
}
|
|
|
|
override getRepository<Entity extends ObjectLiteral>(
|
|
target: EntityTarget<Entity>,
|
|
): WorkspaceRepository<Entity> {
|
|
return this.manager.getRepository(target);
|
|
}
|
|
|
|
override createEntityManager(
|
|
queryRunner?: QueryRunner,
|
|
): WorkspaceEntityManager {
|
|
return new WorkspaceEntityManager(this.internalContext, this, queryRunner);
|
|
}
|
|
}
|