From 12775d3170df8988ee7dbad2eda84e7a3e18f13a Mon Sep 17 00:00:00 2001 From: Darren Nelsen Date: Wed, 7 Mar 2018 15:43:45 -0500 Subject: [PATCH] added bitcore-node dir with dependent js files --- app/package.json | 7 +++- bitcore-node/index.js | 68 ++++++++++++++++++++++++++++++ bitcore-node/service.js | 91 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 bitcore-node/index.js create mode 100644 bitcore-node/service.js diff --git a/app/package.json b/app/package.json index c7c22d2..e1f33d2 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,11 @@ { "name": "insight-ui", "private": true, + "bitcoreNode": "bitcore-node", + "insightConfig": { + "apiPrefix": "api", + "routePrefix": "" + }, "scripts": { "clean": "ionic-app-scripts clean", "build": "ionic-app-scripts build", @@ -62,4 +67,4 @@ "node": ">=8" }, "license": "MIT" -} +} \ No newline at end of file diff --git a/bitcore-node/index.js b/bitcore-node/index.js new file mode 100644 index 0000000..c1409fc --- /dev/null +++ b/bitcore-node/index.js @@ -0,0 +1,68 @@ +'use strict'; + +var BaseService = require('./service'); +var inherits = require('util').inherits; +var fs = require('fs'); +var exec = require('child_process').exec; +var pkg = require('../app/package.json'); + +var InsightUI = function(options) { + console.log('options are', options); + BaseService.call(this, options); + this.apiPrefix = options.apiPrefix || 'api'; + this.routePrefix = options.routePrefix || ''; +}; + +InsightUI.dependencies = ['insight-api']; + +inherits(InsightUI, BaseService); + +InsightUI.prototype.start = function(callback) { + + var self = this; + console.log('pkg before', pkg); + pkg.insightConfig.apiPrefix = self.apiPrefix; + pkg.insightConfig.routePrefix = self.routePrefix; + console.log('pkg after', pkg); + console.log('dirname', __dirname); + + fs.writeFileSync(__dirname + '/../app/package.json', JSON.stringify(pkg, null, 2)); + /* + exec('cd ' + __dirname + '/../;' + + ' npm run install-and-build', function(err) { + if (err) { + return callback(err); + } + self.indexFile = self.filterIndexHTML(fs.readFileSync(__dirname + '/../app/www/index.html', {encoding: 'utf8'})); + callback(); + }); + */ + self.indexFile = self.filterIndexHTML(fs.readFileSync(__dirname + '/../app/www/index.html', {encoding: 'utf8'})); + callback(); +}; + +InsightUI.prototype.getRoutePrefix = function() { + return this.routePrefix; +}; + +InsightUI.prototype.setupRoutes = function(app, express) { + var self = this; + app.use(express.static(__dirname + '/../app/www')); + // if not in found, fall back to indexFile (404 is handled client-side) + /* + app.use(function(req, res) { + res.setHeader('Content-Type', 'text/html'); + res.send(self.indexFile); + }); + */ +}; + +InsightUI.prototype.filterIndexHTML = function(data) { + var transformed = data; + if (this.routePrefix !== '') { + transformed = transformed.replace('