snapmaker-luban
Version:
A web-based interface for Snapmaker 3-in-1 3D Printer
69 lines (50 loc) • 3.08 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _path = _interopRequireDefault(require("path"));
var _commander = _interopRequireDefault(require("commander"));
var _isElectron = _interopRequireDefault(require("is-electron"));
var _package = _interopRequireDefault(require("./package.json"));
/* eslint max-len: 0 */
/* eslint no-console: 0 */
// Defaults to 'production'
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
var increaseVerbosityLevel = function increaseVerbosityLevel(val, total) {
return total + 1;
};
var defaultHost = (0, _isElectron["default"])() ? '127.0.0.1' : '0.0.0.0';
var defaultPort = (0, _isElectron["default"])() ? 0 : 8000;
_commander["default"].version(_package["default"].version).usage('[options]').option('-p, --port <port>', "Set listen port (default: ".concat(defaultPort, ")"), defaultPort).option('-H, --host <host>', "Set listen address or hostname (default: ".concat(defaultHost, ")"), defaultHost).option('-b, --backlog <backlog>', 'Set listen backlog (default: 511)', 511).option('-v, --verbose', 'Increase the verbosity level (-v, -vv, -vvv)', increaseVerbosityLevel, 0).option('-w, --watch-directory <path>', 'Watch a directory for changes').option('--access-token-lifetime <lifetime>', 'Access token lifetime in seconds or a time span string (default: 30d)').option('--allow-remote-access', 'Allow remote access to the server (default: false)'); // Commander assumes that the first two values in argv are 'node' and appname, and then followed by the args.
// This is not the case when running from a packaged Electron server. Here you have the first value appname and then args.
var normalizedArgv = String(process.argv[0]).indexOf(_package["default"].name) >= 0 ? ['node', _package["default"].name].concat((0, _toConsumableArray2["default"])(process.argv.slice(1))) : process.argv;
if (normalizedArgv.length > 1) {
_commander["default"].parse(normalizedArgv);
}
var launchServer = function launchServer() {
return new Promise(function (resolve, reject) {
// Change working directory to 'server' before require('./server')
process.chdir(_path["default"].resolve(__dirname, 'server'));
require('./server').createServer({
port: _commander["default"].port,
host: _commander["default"].host,
backlog: _commander["default"].backlog,
verbosity: _commander["default"].verbose,
watchDirectory: _commander["default"].watchDirectory,
accessTokenLifetime: _commander["default"].accessTokenLifetime,
allowRemoteAccess: !!_commander["default"].allowRemoteAccess,
controller: _commander["default"].controller
}, function (err, data) {
if (err) {
reject(err);
return;
}
resolve(data);
});
});
};
var _default = launchServer;
exports["default"] = _default;