brackets-npm-registry
Version:
Install your extensions into Brackets using npm
95 lines (81 loc) • 3.36 kB
JavaScript
/*eslint strict:0, no-console:0, no-process-env:0*/
;
var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
var express = require('express');
var fs = require('fs');
var path = require('path');
var buffspawn = require('buffered-spawn');
var nodeEnsure = require('../node/node-ensure');
var app = express();
var registryFilePath = path.resolve(__dirname, '../../tmp/registry.json');
var logger = function logger() {
console.log.apply(console, arguments);
};
var utils = require('../node/utils');
var registryJson = undefined;
var buildRegistry = undefined;
var buildRegistryInterval = undefined;
var scheduleBuild = function scheduleBuild() {
// call now
setTimeout(buildRegistry, 1);
// clear current interval
clearInterval(buildRegistryInterval);
// and then every 30 minutes
buildRegistryInterval = setInterval(buildRegistry, 30 * 60000);
};
buildRegistry = function () {
nodeEnsure().then(function (nodePath) {
logger('going to build a registry.json file to', registryFilePath);
var args = ['../node/registry-builder.js', registryFilePath];
return buffspawn(nodePath, args, {
cwd: __dirname,
env: utils.processEnvWithPath(path.dirname(nodePath))
}).progress(function (buff) {
if (buff.type === 'stderr') {
logger('buildRegistry progress =>', buff.toString());
}
}).then(function (_ref) {
var _ref2 = _slicedToArray(_ref, 1);
var stdout = _ref2[0];
logger('registry file built at', registryFilePath);
try {
registryJson = JSON.parse(stdout);
logger('parsed registryJson from stdout');
} catch (err) {
registryJson = null;
logger('failed to parse registryJson from stdout: ' + err);
}
})['catch'](function () {
logger('failed to build registry');
scheduleBuild();
});
})['catch'](function (err) {
logger('failed to build a registry at', registryFilePath);
logger(err.name, ':', err.message, '\n', err.stack);
});
};
app.set('port', process.env.PORT || 5000);
app.get('/registry', function (request, response, next) {
if (registryJson) {
response.send(registryJson);
return;
}
fs.readFile(registryFilePath, { encoding: 'utf8' }, function (err, str) {
if (err) {
return next(err);
}
try {
response.send(JSON.parse(str));
} catch (err2) {
next(err2);
}
});
});
app.get('/', function (request, response) {
response.send('Hello World!');
});
app.listen(app.get('port'), function () {
logger('Node app is running at localhost:' + app.get('port'));
scheduleBuild();
});
//# sourceMappingURL=C:\Users\Zaggi\AppData\Roaming\Brackets-Electron\extensions\user\brackets-npm-registry\dist//server/index.js.map