| 
									
										
										
										
											2015-02-12 09:40:37 +00:00
										 |  |  | #!/usr/bin/env node | 
					
						
							|  |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require('../walnut.js'); | 
					
						
							| 
									
										
										
										
											2015-10-09 03:48:07 +00:00
										 |  |  | /* | 
					
						
							|  |  |  | var c = require('console-plus'); | 
					
						
							|  |  |  | console.log = c.log; | 
					
						
							|  |  |  | console.error = c.error; | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2015-03-29 03:28:41 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | function eagerLoad() { | 
					
						
							| 
									
										
										
										
											2015-04-01 17:46:56 +00:00
										 |  |  |   var PromiseA = require('bluebird').Promise; | 
					
						
							| 
									
										
										
										
											2015-03-29 03:28:41 +00:00
										 |  |  |   var promise = PromiseA.resolve(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   [ 'passport' | 
					
						
							|  |  |  |   , 'knex' | 
					
						
							|  |  |  |   , 'bookshelf' | 
					
						
							|  |  |  |   , 'express' | 
					
						
							|  |  |  |   , 'request' | 
					
						
							|  |  |  |   , 'sqlite3' | 
					
						
							|  |  |  |   , 'body-parser' | 
					
						
							|  |  |  |   , 'express-session' | 
					
						
							|  |  |  |   , 'urlrouter' | 
					
						
							|  |  |  |   , 'express-lazy' | 
					
						
							|  |  |  |   , 'connect-send-error' | 
					
						
							|  |  |  |   , 'underscore.string' | 
					
						
							|  |  |  |   , 'bookshelf' | 
					
						
							|  |  |  |   , 'secret-utils' | 
					
						
							|  |  |  |   , 'connect-cors' | 
					
						
							|  |  |  |   , 'uuid' | 
					
						
							|  |  |  |   , 'connect-recase' | 
					
						
							|  |  |  |   , 'passport-local' | 
					
						
							|  |  |  |   , 'passport-strategy' | 
					
						
							|  |  |  |   , 'passport-http' | 
					
						
							|  |  |  |   , 'passport-http-bearer' | 
					
						
							|  |  |  |   , 'escape-string-regexp' | 
					
						
							|  |  |  |   , 'connect-query' | 
					
						
							|  |  |  |   , 'recase' | 
					
						
							|  |  |  |   ].forEach(function (name, i) { | 
					
						
							|  |  |  |     promise = promise.then(function () { | 
					
						
							| 
									
										
										
										
											2015-04-01 16:14:13 +00:00
										 |  |  |       return new PromiseA(function (resolve, reject) { | 
					
						
							| 
									
										
										
										
											2015-03-29 03:28:41 +00:00
										 |  |  |         setTimeout(function () { | 
					
						
							|  |  |  |           require(name); | 
					
						
							|  |  |  |           resolve(); | 
					
						
							|  |  |  |         }, 4); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   [ function () { | 
					
						
							|  |  |  |       return require('knex').initialize({ | 
					
						
							|  |  |  |         client: 'sqlite3' | 
					
						
							|  |  |  |       , connection: { | 
					
						
							|  |  |  |           filename : ':memory:' | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   , function (knex) { | 
					
						
							|  |  |  |       require('bookshelf').initialize(knex); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   , function () { | 
					
						
							|  |  |  |       require('body-parser').json(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-10-28 06:22:15 +00:00
										 |  |  |     /* | 
					
						
							|  |  |  |     // do not use urlencoded as it enables csrf | 
					
						
							| 
									
										
										
										
											2015-03-29 03:28:41 +00:00
										 |  |  |   , function () { | 
					
						
							|  |  |  |       require('body-parser').urlencoded(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-10-28 06:22:15 +00:00
										 |  |  |     */ | 
					
						
							| 
									
										
										
										
											2015-03-29 03:28:41 +00:00
										 |  |  |   ].forEach(function (fn) { | 
					
						
							|  |  |  |     promise = promise.then(function (thing) { | 
					
						
							| 
									
										
										
										
											2015-04-01 16:14:13 +00:00
										 |  |  |       return new PromiseA(function (resolve) { | 
					
						
							| 
									
										
										
										
											2015-03-29 03:28:41 +00:00
										 |  |  |         setTimeout(function () { | 
					
						
							|  |  |  |          resolve(fn(thing)); | 
					
						
							|  |  |  |         }, 4); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2015-04-01 17:46:56 +00:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-03-29 03:28:41 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   promise.then(function () { | 
					
						
							|  |  |  |     console.log('Eager Loading Complete'); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | setTimeout(eagerLoad, 100); |