11'use strict' ;
22
33const _ = require ( 'underscore' ) ;
4+ const Readyness = require ( 'readyness' ) ;
5+ const { Error, App } = require ( '@booljs/api' ) ;
6+
7+ const Folder = require ( './folder' ) ;
8+ const loadConfigurations = require ( './configurations' ) ;
9+ const { loadComponents, loadDatabases, loadServer } = require ( './loaders' ) ;
10+ const deprecationNote = require ( './utilities/deprecation-note' ) ;
411
512/**
613 * @class BoolJSBootstrapper
@@ -11,29 +18,21 @@ const _ = require('underscore');
1118 * @return {BoolJSBootstrapper } The instance of a bool.js loaded application
1219 */
1320module . exports = class BoolJSBootstrapper {
14- constructor ( namespace , dependencies = [ ] ) {
15- const { Error , App } = require ( '@booljs/api' ) ;
21+ Error = Error ;
22+ folders = new Folder . List ( ) ;
1623
17- this . Error = Error ;
18- this . Folder = require ( './folder' ) ;
19- this . ready = require ( 'readyness' ) ;
20- this . Configuration = require ( './configurations' ) ;
21- this . Loaders = require ( './loaders' ) ;
24+ databaseDrivers = [ ] ;
25+ serverDrivers = [ ] ;
26+ booted = false ;
27+ booting = false ;
28+ server = null ;
2229
30+ constructor ( namespace , dependencies = [ ] ) {
2331 this . instance = App . getInstance ( namespace , dependencies ) ;
2432
25- this . folders = new this . Folder . List ( ) ;
26-
27- this . databaseDrivers = [ ] ;
28- this . serverDrivers = [ ] ;
29- this . booted = false ;
30- this . booting = false ;
31- this . server = null ;
32-
3333 if ( ! this . booted ) {
34- this . instance . insertComponent (
35- 'utilities' , this . instance . getComponents ( ) . utilities . getStore ( )
36- ) ;
34+ this . instance . insertComponent ( 'utilities' ,
35+ this . instance . getComponents ( ) . utilities . getStore ( ) ) ;
3736 }
3837 }
3938
@@ -74,12 +73,7 @@ module.exports = class BoolJSBootstrapper {
7473 * @return {BoolJSBootstrapper } The loaded application instance
7574 */
7675 setDatabaseLoader ( databaseLoader ) {
77- console . log ( [
78- '\n\t\tDEPRECATION NOTE\n' ,
79- 'This method is being deprecated since v0.9.0. Please stop using' ,
80- 'it and instead use #setDatabaseDrivers'
81- ] . join ( ' ' ) ) ;
82- return this . setDatabaseDrivers ( databaseLoader ) ;
76+ deprecationNote ( '0.9.0' , 'setDatabaseDrivers' , true ) ;
8377 }
8478
8579 /**
@@ -105,12 +99,7 @@ module.exports = class BoolJSBootstrapper {
10599 * @return {BoolJSBootstrapper } The loaded application instance
106100 */
107101 setServerLoader ( serverLoader ) {
108- console . log ( [
109- '\n\t\tDEPRECATION NOTE\n' ,
110- 'This method is being deprecated since v0.9.0. Please stop using' ,
111- 'it and instead use #setServerDrivers'
112- ] . join ( ' ' ) ) ;
113- return this . setServerDrivers ( serverLoader ) ;
102+ deprecationNote ( '0.9.0' , 'setServerDrivers' , true ) ;
114103 }
115104
116105 /**
@@ -146,7 +135,7 @@ module.exports = class BoolJSBootstrapper {
146135 * @return {Promise }
147136 */
148137 readConfigurations ( done , progress ) {
149- return this . Configuration ( this . instance , this . folders . configuration ) ;
138+ return loadConfigurations ( this . instance , this . folders . configuration ) ;
150139 }
151140
152141 /**
@@ -179,7 +168,7 @@ module.exports = class BoolJSBootstrapper {
179168 * @return {Promise }
180169 */
181170 loadDatabase ( ) {
182- return this . Loaders . database ( this . instance , this . databaseDrivers ) ;
171+ return loadDatabases ( this . instance , this . databaseDrivers ) ;
183172 }
184173
185174 /**
@@ -188,7 +177,7 @@ module.exports = class BoolJSBootstrapper {
188177 * @return {Promise }
189178 */
190179 loadComponents ( ) {
191- return this . Loaders . components ( this . folders , this . instance ) ;
180+ return loadComponents ( this . folders , this . instance ) ;
192181 }
193182
194183 /**
@@ -197,39 +186,21 @@ module.exports = class BoolJSBootstrapper {
197186 * @return {Promise }
198187 */
199188 bootServer ( ) {
200- return this . Loaders . server ( this . instance , this . serverDrivers ) ;
189+ return loadServer ( this . instance , this . serverDrivers ) ;
201190 }
202191
203192 /**
204193 * @function module:booljs#run
205- * @description Boots up bool.js
194+ * @description Bootstraps a new BoolJS instance
206195 * @param {module:booljs-doneCallback } done - Executes when booting
207196 * process is complete.
208197 * @param {Callback } progress - Executes once a single steps have been
209198 * executed
210199 * @return {Promise }
211200 */
212- async run ( ) {
213- if ( this . booted ) {
214- return {
215- app : this . instance . getComponents ( ) ,
216- server : this . server
217- } ;
218- } else if ( this . booting ) {
219- await new Promise ( ( resolve , reject ) => {
220- this . ready . doWhen ( error => {
221- if ( error ) {
222- return reject ( error ) ;
223- }
224- return resolve ( ) ;
225- } ) ;
226- } ) ;
227-
228- return this . run ( ) ;
229- }
230-
201+ async bootstrap ( ) {
231202 this . booting = true ;
232- const booted = this . ready . waitFor ( 'boot' ) ;
203+ const booted = Readyness . waitFor ( 'boot' ) ;
233204
234205 this . insertBoolError ( ) ;
235206
@@ -249,4 +220,31 @@ module.exports = class BoolJSBootstrapper {
249220 server : this . server
250221 } ;
251222 }
223+
224+ /**
225+ * @function module:booljs#run
226+ * @description Boots BoolJS up
227+ * @return {Promise }
228+ */
229+ async run ( ) {
230+ if ( this . booted ) {
231+ return {
232+ app : this . instance . getComponents ( ) ,
233+ server : this . server
234+ } ;
235+ } else if ( this . booting ) {
236+ await new Promise ( ( resolve , reject ) => {
237+ Readyness . doWhen ( error => {
238+ if ( error ) {
239+ return reject ( error ) ;
240+ }
241+ return resolve ( ) ;
242+ } ) ;
243+ } ) ;
244+
245+ return this . run ( ) ;
246+ }
247+
248+ this . bootstrap ( ) ;
249+ }
252250} ;
0 commit comments