@accounts/module-mikro-orm
Version:
MikroORM Database Interface GraphQL Module
63 lines • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAccountsMikroORMModule = void 0;
const tslib_1 = require("tslib");
const graphql_modules_1 = require("graphql-modules");
const server_1 = require("@accounts/server");
const mikro_orm_1 = require("@accounts/mikro-orm");
const core_1 = require("@mikro-orm/core");
tslib_1.__exportStar(require("./types"), exports);
tslib_1.__exportStar(require("./utils"), exports);
const createAccountsMikroORMModule = ({ em, EmailEntity, SessionEntity, ServiceEntity, UserEntity, } = {}) => (0, graphql_modules_1.createModule)({
typeDefs: (0, graphql_modules_1.gql) `
extend type Query {
_accounts_mikro_orm: String
}
`,
id: 'accounts-mikro-orm',
providers: () => {
const providers = [
{
provide: mikro_orm_1.EmailToken,
useValue: EmailEntity,
global: true,
},
{
provide: mikro_orm_1.SessionToken,
useValue: SessionEntity,
global: true,
},
{
provide: mikro_orm_1.ServiceToken,
useValue: ServiceEntity,
global: true,
},
{
provide: mikro_orm_1.UserToken,
useValue: UserEntity,
global: true,
},
{
provide: server_1.DatabaseInterfaceUserToken,
useClass: mikro_orm_1.AccountsMikroOrm,
global: true,
},
{
provide: server_1.DatabaseInterfaceSessionsToken,
useValue: undefined,
global: true,
},
];
if (em) {
providers.push({
provide: core_1.EntityManager,
scope: graphql_modules_1.Scope.Operation,
useFactory: () => em.fork(),
global: true,
});
}
return providers;
},
});
exports.createAccountsMikroORMModule = createAccountsMikroORMModule;
//# sourceMappingURL=index.js.map