11
2+ "use strict" ;
3+ /**
4+ * Module `DB`
5+ *
6+ * Module to init and return Database connection with SQL or NoSQL.
7+ * Auto get config from `@iConfigs/database`.
8+ *
9+ * @module DB
10+ *
11+ * @requires @iConfigs /database - Config of database
12+ * @requires sequelize
13+ * @requires mongodb
14+ */
15+
216const config = require ( "@iConfigs/database" ) ;
317
4- const getDB = ( { useDatabase } ) => {
18+ /**
19+ * Connect and get DB with params
20+ *
21+ * @function get
22+ *
23+ * @param {Object } options - To determine database information
24+ * @param {string } options.useDatabase - Type of Database (e.g: "sql", "nosql").
25+ * If no specified, module will use default value
26+ * from `config.useDatabase`.
27+ *
28+ * @returns {Object } - Connection Database Object:
29+ * - With SQL: return Sequelize instance.
30+ * - With NoSQL (e.g: MongoDB): return flexible connection (default is Mongoose)
31+ *
32+ * @example
33+ * Use default value from config
34+ * const db = require('@iKernel/database').get();
35+ *
36+ * @example
37+ * // Use SQL (Sequelize)
38+ * const db = require('@iKernel/database').get({ useDatabase: 'sql' });
39+ *
40+ * @example
41+ * // Use NoSQL (MongoDB)
42+ * const db = require('@iKernel/database').get({ useDatabase: 'nosql' });
43+ */
44+ exports . get = ( { useDatabase } ) => {
45+ /**
46+ * Many connection database method
47+ */
548 const useDBs = {
49+ /**
50+ * SQL Connection
51+ *
52+ * @function sql
53+ * @returns {require("sequelize") } - Return instance of Sequelize
54+ */
655 sql : function ( ) {
756 return require ( "./sequelize" ) ( config . sql [ config . sql . environment ] )
857 } ,
58+ /**
59+ * NoSQL Connection
60+ *
61+ * @function nosql
62+ * @returns {Object } - Return mongoose or other (future update).
63+ */
964 nosql : function ( ) {
1065 switch ( config . nosql . connection ) {
1166 case "mongodb" :
@@ -18,6 +73,4 @@ const getDB = ({ useDatabase }) => {
1873 const db = useDatabase ? useDBs [ useDatabase ] ( ) : useDBs [ config . useDatabase ] ( ) ;
1974
2075 return db
21- }
22-
23- module . exports = getDB ;
76+ }
0 commit comments