/
index.js
126 lines (95 loc) · 4.99 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/**
* @module hooks/jblast
* @description
* This module is the main subclass of a Sails Hook incorporating *Marlinspike*.
*/
'use strict';
//var mapRoutes = require('./mapRoutes');
//var jblastProc = require('../../services/jblastProc');
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
//var _marlinspike = require('./marlinspike');
var _marlinspike = require('marlinspike');
var _marlinspike2 = _interopRequireDefault(_marlinspike);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var thisHook;
if (typeof sails !== 'undefined')
thisHook = sails.hooks.jblast;
else
thisHook = global.jtest_hook; // this handles hbh-jblast npm test case. It's a bit hackish
if (!thisHook) {
var Hook = function (_Marlinspike) {
_inherits(Hook, _Marlinspike);
function Hook(sails) {
_classCallCheck(this, Hook);
return _possibleConstructorReturn(this, (Hook.__proto__ || Object.getPrototypeOf(Hook)).call(this, sails, module));
}
_createClass(Hook, [{
key: 'defaults',
value: function defaults(overrides) {
// http://sailsjs.org/documentation/concepts/extending-sails/hooks/hook-specification/defaults#?using-defaults-as-a-function
}
}, {
key: 'configure',
value: function configure() {
// this.sails = sails
// http://sailsjs.org/documentation/concepts/extending-sails/hooks/hook-specification/configure
const fs = require('fs-extra');
let services = sails.config.globals.jbrowse.services;
sails.log.debug('>> jblast hookPath: ',this.hookPath);
let hookPath = this.hookPath.replace('api/hooks/jblast','')+'api/services';
// add .path and .module to service config for jblast services (this is sort of a hack)
// todo: cleanup hack
fs.readdir(hookPath, function(err, items) {
//console.log('dir',items);
for(let i in items) {
if (items[i].indexOf('Service.js') > 0) {
let servName = items[i].split('.js')[0];
if (!services[servName]) continue;
sails.log.info('JBlast service - '+servName);
services[servName].path = hookPath+'/'+servName;
services[servName].module = 'jblast';
}
}
//sails.services.jblastPostAction = require(hookPath+'/jblastPostAction');
//sails.log.debug('>> jblast services: ',services);
});
}
}, {
key: 'initialize',
value: function initialize(next) {
// http://sailsjs.org/documentation/concepts/extending-sails/hooks/hook-specification/initialize
//jblastProc.initialize(next);
let sh = require("shelljs");
sails.on('hook:orm:loaded', function() {
//sails.on('lifted', function() {
//sails.log(">>> jblastProc.initialize.lifted");
// copy sample data
//console.log(">>>> cwd",process.cwd());
sh.exec('./jbutil --setupdata');
// do something after hooks are loaded
return next();
});
//return next();
}
}, {
key: 'routes',
value: function routes() {
//sails.log('>>> setup jbh-jblast routes');
//return mapRoutes.routes();
//return {};
}
}]);
return Hook;
}(_marlinspike2.default);
thisHook = _marlinspike2.default.createSailsHook(Hook);
}
exports.default = thisHook;
module.exports = exports['default'];