UNPKG

@accounts/module-mongo

Version:
54 lines 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAccountsMongoModule = void 0; const graphql_modules_1 = require("graphql-modules"); const server_1 = require("@accounts/server"); const types_1 = require("@accounts/types"); const mongo_1 = require("@accounts/mongo"); const mongodb_1 = require("mongodb"); function createAccountsMongoModule({ type = types_1.DatabaseType.Both, dbConn, storage: { uri = 'mongodb://localhost:27017', name = 'accounts-js' } = {}, ...config } = {}) { const getModule = (conn) => (0, graphql_modules_1.createModule)({ typeDefs: (0, graphql_modules_1.gql) ` extend type Query { _accounts_mongo: String } `, id: `accounts-mongo-${type}`, providers: () => { const providers = [ { provide: mongo_1.AccountsMongoConfigToken, useValue: config, }, { provide: mongo_1.MongoConnectionToken, useValue: conn, }, ]; if (type !== types_1.DatabaseType.Sessions) { providers.push({ provide: server_1.DatabaseInterfaceUserToken, useClass: mongo_1.Mongo, global: true, }); } if (type !== types_1.DatabaseType.User) { providers.push({ provide: server_1.DatabaseInterfaceSessionsToken, ...(type === types_1.DatabaseType.Sessions ? { useClass: mongo_1.Mongo } : { useValue: undefined }), global: true, }); } return providers; }, }); return dbConn ? getModule(dbConn) : new Promise((resolve) => { mongodb_1.MongoClient.connect(uri).then((client) => { resolve(getModule(client.db(name))); }); }); } exports.createAccountsMongoModule = createAccountsMongoModule; //# sourceMappingURL=index.js.map