前端代码
This commit is contained in:
104
node_modules/localtunnel/bin/lt.js
generated
vendored
Normal file
104
node_modules/localtunnel/bin/lt.js
generated
vendored
Normal file
@ -0,0 +1,104 @@
|
||||
#!/usr/bin/env node
|
||||
/* eslint-disable no-console */
|
||||
|
||||
const openurl = require('openurl');
|
||||
const yargs = require('yargs');
|
||||
|
||||
const localtunnel = require('../localtunnel');
|
||||
const { version } = require('../package');
|
||||
|
||||
const { argv } = yargs
|
||||
.usage('Usage: lt --port [num] <options>')
|
||||
.env(true)
|
||||
.option('p', {
|
||||
alias: 'port',
|
||||
describe: 'Internal HTTP server port',
|
||||
})
|
||||
.option('h', {
|
||||
alias: 'host',
|
||||
describe: 'Upstream server providing forwarding',
|
||||
default: 'https://localtunnel.me',
|
||||
})
|
||||
.option('s', {
|
||||
alias: 'subdomain',
|
||||
describe: 'Request this subdomain',
|
||||
})
|
||||
.option('l', {
|
||||
alias: 'local-host',
|
||||
describe: 'Tunnel traffic to this host instead of localhost, override Host header to this host',
|
||||
})
|
||||
.option('local-https', {
|
||||
describe: 'Tunnel traffic to a local HTTPS server',
|
||||
})
|
||||
.option('local-cert', {
|
||||
describe: 'Path to certificate PEM file for local HTTPS server',
|
||||
})
|
||||
.option('local-key', {
|
||||
describe: 'Path to certificate key file for local HTTPS server',
|
||||
})
|
||||
.option('local-ca', {
|
||||
describe: 'Path to certificate authority file for self-signed certificates',
|
||||
})
|
||||
.option('allow-invalid-cert', {
|
||||
describe: 'Disable certificate checks for your local HTTPS server (ignore cert/key/ca options)',
|
||||
})
|
||||
.options('o', {
|
||||
alias: 'open',
|
||||
describe: 'Opens the tunnel URL in your browser',
|
||||
})
|
||||
.option('print-requests', {
|
||||
describe: 'Print basic request info',
|
||||
})
|
||||
.require('port')
|
||||
.boolean('local-https')
|
||||
.boolean('allow-invalid-cert')
|
||||
.boolean('print-requests')
|
||||
.help('help', 'Show this help and exit')
|
||||
.version(version);
|
||||
|
||||
if (typeof argv.port !== 'number') {
|
||||
yargs.showHelp();
|
||||
console.error('\nInvalid argument: `port` must be a number');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
(async () => {
|
||||
const tunnel = await localtunnel({
|
||||
port: argv.port,
|
||||
host: argv.host,
|
||||
subdomain: argv.subdomain,
|
||||
local_host: argv.localHost,
|
||||
local_https: argv.localHttps,
|
||||
local_cert: argv.localCert,
|
||||
local_key: argv.localKey,
|
||||
local_ca: argv.localCa,
|
||||
allow_invalid_cert: argv.allowInvalidCert,
|
||||
}).catch(err => {
|
||||
throw err;
|
||||
});
|
||||
|
||||
tunnel.on('error', err => {
|
||||
throw err;
|
||||
});
|
||||
|
||||
console.log('your url is: %s', tunnel.url);
|
||||
|
||||
/**
|
||||
* `cachedUrl` is set when using a proxy server that support resource caching.
|
||||
* This URL generally remains available after the tunnel itself has closed.
|
||||
* @see https://github.com/localtunnel/localtunnel/pull/319#discussion_r319846289
|
||||
*/
|
||||
if (tunnel.cachedUrl) {
|
||||
console.log('your cachedUrl is: %s', tunnel.cachedUrl);
|
||||
}
|
||||
|
||||
if (argv.open) {
|
||||
openurl.open(tunnel.url);
|
||||
}
|
||||
|
||||
if (argv['print-requests']) {
|
||||
tunnel.on('request', info => {
|
||||
console.log(new Date().toString(), info.method, info.path);
|
||||
});
|
||||
}
|
||||
})();
|
Reference in New Issue
Block a user