Doric command line tool refact to typescript
This commit is contained in:
@@ -1,83 +1,96 @@
|
||||
const chokidar = require('chokidar')
|
||||
const ws = require('./server')
|
||||
const fs = require("fs")
|
||||
const doMerge = require("./command").doMerge
|
||||
const chokidar = require("chokidar");
|
||||
const ws = require("./server");
|
||||
const fs = require("fs");
|
||||
const doMerge = require("./command").doMerge;
|
||||
const { exec } = require("child_process");
|
||||
require("colors");
|
||||
require("shelljs/global");
|
||||
|
||||
require('shelljs/global')
|
||||
const tscProcess = exec("node node_modules/.bin/tsc -w -p .");
|
||||
const rollupProcess = exec("node node_modules/.bin/rollup -c -w");
|
||||
|
||||
console.warn("Waiting ...");
|
||||
|
||||
exec('npm run dev >/dev/null 2>&1', { async: true })
|
||||
console.warn('Waiting ...')
|
||||
setTimeout(() => {
|
||||
console.warn('Start watching')
|
||||
ws.listen(7777)
|
||||
chokidar.watch(process.cwd() + "/bundle", {
|
||||
ignored: /(^|[\/\\])\../,
|
||||
awaitWriteFinish: true,
|
||||
alwaysStat: true,
|
||||
}).on('change', (path) => {
|
||||
if (ws.debugging) {
|
||||
console.log("debugging, hot reload by pass")
|
||||
return
|
||||
console.warn("Start watching");
|
||||
ws.listen(7777);
|
||||
chokidar
|
||||
.watch(process.cwd() + "/bundle", {
|
||||
ignored: /(^|[\/\\])\../,
|
||||
awaitWriteFinish: true,
|
||||
alwaysStat: true,
|
||||
})
|
||||
.on("change", (path) => {
|
||||
if (ws.debugging) {
|
||||
console.log("debugging, hot reload by pass");
|
||||
return;
|
||||
}
|
||||
fs.readFile(path, "utf-8", (error, data) => {
|
||||
if (!path.endsWith(".map")) {
|
||||
try {
|
||||
const sourceMap = doMerge(path + ".map");
|
||||
ws.connections.forEach((e) => {
|
||||
e.sendText(
|
||||
JSON.stringify({
|
||||
cmd: "RELOAD",
|
||||
script: data,
|
||||
source: path.match(/[^/\\]*$/)[0],
|
||||
sourceMap,
|
||||
})
|
||||
);
|
||||
});
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
fs.readFile(path, 'utf-8', (error, data) => {
|
||||
if (!path.endsWith('.map')) {
|
||||
try {
|
||||
const sourceMap = doMerge(path + ".map")
|
||||
ws.connections.forEach(e => {
|
||||
e.sendText(JSON.stringify({
|
||||
cmd: 'RELOAD',
|
||||
script: data,
|
||||
source: path.match(/[^/\\]*$/)[0],
|
||||
sourceMap,
|
||||
}))
|
||||
})
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
});
|
||||
}, 3000);
|
||||
const os = require('os');
|
||||
const os = require("os");
|
||||
|
||||
function getIPAdress() {
|
||||
const ret = []
|
||||
var interfaces = os.networkInterfaces();
|
||||
for (var devName in interfaces) {
|
||||
var iface = interfaces[devName];
|
||||
for (var i = 0; i < iface.length; i++) {
|
||||
var alias = iface[i];
|
||||
if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
|
||||
ret.push(alias.address);
|
||||
}
|
||||
}
|
||||
const ret = [];
|
||||
var interfaces = os.networkInterfaces();
|
||||
for (var devName in interfaces) {
|
||||
var iface = interfaces[devName];
|
||||
for (var i = 0; i < iface.length; i++) {
|
||||
var alias = iface[i];
|
||||
if (
|
||||
alias.family === "IPv4" &&
|
||||
alias.address !== "127.0.0.1" &&
|
||||
!alias.internal
|
||||
) {
|
||||
ret.push(alias.address);
|
||||
}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
const qrcode = require("qrcode-terminal");
|
||||
|
||||
const qrcode = require('qrcode-terminal');
|
||||
const ips = getIPAdress();
|
||||
ips.forEach((e) => {
|
||||
console.log(`IP:${e}`);
|
||||
qrcode.generate(e, { small: false });
|
||||
});
|
||||
|
||||
const ips = getIPAdress()
|
||||
ips.forEach(e => {
|
||||
console.log(`IP:${e}`)
|
||||
qrcode.generate(e, { small: false });
|
||||
})
|
||||
|
||||
const keypress = require('keypress');
|
||||
const keypress = require("keypress");
|
||||
|
||||
keypress(process.stdin);
|
||||
process.stdin.on('keypress', function (ch, key) {
|
||||
if (key && key.ctrl && key.name == 'r') {
|
||||
ips.forEach(e => {
|
||||
console.log(`IP:${e}`)
|
||||
qrcode.generate(e, { small: false });
|
||||
})
|
||||
}
|
||||
if (key && key.ctrl && key.name == 'c') {
|
||||
process.stdin.pause();
|
||||
process.exit(0);
|
||||
}
|
||||
process.stdin.on("keypress", function (ch, key) {
|
||||
if (key && key.ctrl && key.name == "r") {
|
||||
ips.forEach((e) => {
|
||||
console.log(`IP:${e}`);
|
||||
qrcode.generate(e, { small: false });
|
||||
});
|
||||
}
|
||||
if (key && key.ctrl && key.name == "c") {
|
||||
process.stdin.pause();
|
||||
tscProcess.kill("SIGABRT");
|
||||
rollupProcess.kill("SIGABRT");
|
||||
process.exit(0);
|
||||
}
|
||||
});
|
||||
process.stdin.setRawMode(true);
|
||||
process.stdin.resume();
|
||||
process.stdin.resume();
|
||||
|
Reference in New Issue
Block a user