86 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env node
 | 
						|
'use strict';
 | 
						|
 | 
						|
require('../walnut.js');
 | 
						|
/*
 | 
						|
var c = require('console-plus');
 | 
						|
console.log = c.log;
 | 
						|
console.error = c.error;
 | 
						|
*/
 | 
						|
 | 
						|
function eagerLoad() {
 | 
						|
  var PromiseA = require('bluebird').Promise;
 | 
						|
  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 () {
 | 
						|
      return new PromiseA(function (resolve, reject) {
 | 
						|
        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();
 | 
						|
    }
 | 
						|
    /*
 | 
						|
    // do not use urlencoded as it enables csrf
 | 
						|
  , function () {
 | 
						|
      require('body-parser').urlencoded();
 | 
						|
    }
 | 
						|
    */
 | 
						|
  ].forEach(function (fn) {
 | 
						|
    promise = promise.then(function (thing) {
 | 
						|
      return new PromiseA(function (resolve) {
 | 
						|
        setTimeout(function () {
 | 
						|
         resolve(fn(thing));
 | 
						|
        }, 4);
 | 
						|
      });
 | 
						|
    });
 | 
						|
  });
 | 
						|
 | 
						|
  promise.then(function () {
 | 
						|
    console.log('Eager Loading Complete');
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
setTimeout(eagerLoad, 100);
 |