This commit is contained in:
LetterN
2021-10-28 17:34:52 +08:00
parent 49940c373e
commit f7b898a2a9
346 changed files with 13714 additions and 8493 deletions
+3 -2
View File
@@ -4,11 +4,12 @@
* @license MIT
*/
import axios from 'axios';
import { exec } from 'child_process';
import { createLogger } from 'common/logging.js';
import { promisify } from 'util';
import { createLogger } from './logging.js';
import { require } from './require.js';
const axios = require('axios');
const logger = createLogger('dreamseeker');
const instanceByPid = new Map();
@@ -1,5 +0,0 @@
const esmRequire = require('esm')(module, {
cache: false,
});
esmRequire('./index.js');
@@ -37,7 +37,7 @@ if (process.env.NODE_ENV !== 'production') {
window.onunload = () => socket && socket.close();
}
export const subscribe = fn => subscribers.push(fn);
const subscribe = fn => subscribers.push(fn);
/**
* A json serializer which handles circular references and other junk.
@@ -91,7 +91,7 @@ const serializeObject = obj => {
return json;
};
export const sendMessage = msg => {
const sendMessage = msg => {
if (process.env.NODE_ENV !== 'production') {
const json = serializeObject(msg);
// Send message using WebSocket
@@ -119,7 +119,7 @@ export const sendMessage = msg => {
}
};
export const sendLogEntry = (level, ns, ...args) => {
const sendLogEntry = (level, ns, ...args) => {
if (process.env.NODE_ENV !== 'production') {
try {
sendMessage({
@@ -135,7 +135,7 @@ export const sendLogEntry = (level, ns, ...args) => {
}
};
export const setupHotReloading = () => {
const setupHotReloading = () => {
if (process.env.NODE_ENV !== 'production'
&& process.env.WEBPACK_HMR_ENABLED
&& window.WebSocket) {
@@ -168,3 +168,10 @@ export const setupHotReloading = () => {
}
}
};
module.exports = {
subscribe,
sendMessage,
sendLogEntry,
setupHotReloading,
};
@@ -4,13 +4,15 @@
* @license MIT
*/
import { createLogger } from 'common/logging.js';
import fs from 'fs';
import { basename } from 'path';
import SourceMap from 'source-map';
import { parse as parseStackTrace } from 'stacktrace-parser';
import { createLogger } from '../logging.js';
import { require } from '../require.js';
import { resolveGlob } from '../util.js';
const SourceMap = require('source-map');
const { parse: parseStackTrace } = require('stacktrace-parser');
const logger = createLogger('retrace');
const { SourceMapConsumer } = SourceMap;
+5 -3
View File
@@ -4,11 +4,13 @@
* @license MIT
*/
import { createLogger, directLog } from 'common/logging.js';
import http from 'http';
import { inspect } from 'util';
import WebSocket from 'ws';
import { retrace, loadSourceMaps } from './retrace.js';
import { createLogger, directLog } from '../logging.js';
import { require } from '../require.js';
import { loadSourceMaps, retrace } from './retrace.js';
const WebSocket = require('ws');
const logger = createLogger('link');
+72
View File
@@ -0,0 +1,72 @@
/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
*/
const inception = Date.now();
// Runtime detection
const isNode = process && process.release && process.release.name === 'node';
let isChrome = false;
try {
isChrome = window.navigator.userAgent.toLowerCase().includes('chrome');
}
catch {}
// Timestamping function
const getTimestamp = () => {
const timestamp = String(Date.now() - inception)
.padStart(4, '0')
.padStart(7, ' ');
const seconds = timestamp.substr(0, timestamp.length - 3);
const millis = timestamp.substr(-3);
return `${seconds}.${millis}`;
};
const getPrefix = (() => {
if (isNode) {
// Escape sequences
const ESC = {
dimmed: '\x1b[38;5;240m',
bright: '\x1b[37;1m',
reset: '\x1b[0m',
};
return ns => [
`${ESC.dimmed}${getTimestamp()} ${ESC.bright}${ns}${ESC.reset}`,
];
}
if (isChrome) {
// Styles
const styles = {
dimmed: 'color: #888',
bright: 'font-weight: bold',
};
return ns => [
`%c${getTimestamp()}%c ${ns}`,
styles.dimmed,
styles.bright,
];
}
return ns => [
`${getTimestamp()} ${ns}`,
];
})();
/**
* Creates a logger object.
*/
export const createLogger = ns => ({
log: (...args) => console.log(...getPrefix(ns), ...args),
trace: (...args) => console.trace(...getPrefix(ns), ...args),
debug: (...args) => console.debug(...getPrefix(ns), ...args),
info: (...args) => console.info(...getPrefix(ns), ...args),
warn: (...args) => console.warn(...getPrefix(ns), ...args),
error: (...args) => console.error(...getPrefix(ns), ...args),
});
/**
* Explicitly log with chosen namespace.
*/
export const directLog = (ns, ...args) =>
console.log(...getPrefix(ns), ...args);
+3 -4
View File
@@ -2,13 +2,12 @@
"private": true,
"name": "tgui-dev-server",
"version": "4.3.0",
"type": "module",
"dependencies": {
"axios": "^0.21.1",
"common": "workspace:*",
"esm": "^3.2.25",
"glob": "^7.1.6",
"glob": "^7.1.7",
"source-map": "^0.7.3",
"stacktrace-parser": "^0.1.10",
"ws": "^7.4.6"
"ws": "^7.5.3"
}
}
+2 -2
View File
@@ -4,13 +4,13 @@
* @license MIT
*/
import { createLogger } from 'common/logging.js';
import fs from 'fs';
import os from 'os';
import { basename } from 'path';
import { DreamSeeker } from './dreamseeker.js';
import { createLogger } from './logging.js';
import { resolveGlob, resolvePath } from './util.js';
import { regQuery } from './winreg.js';
import { DreamSeeker } from './dreamseeker.js';
const logger = createLogger('reloader');
+9
View File
@@ -0,0 +1,9 @@
/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
*/
import { createRequire } from 'module';
export const require = createRequire(import.meta.url);
+11 -11
View File
@@ -4,26 +4,26 @@
* @license MIT
*/
import glob from 'glob';
import { resolve as resolvePath } from 'path';
import fs from 'fs';
import { promisify } from 'util';
import path from 'path';
import { require } from './require.js';
export { resolvePath };
const globPkg = require('glob');
export const resolvePath = path.resolve;
/**
* Combines path.resolve with glob patterns.
*/
export const resolveGlob = async (...sections) => {
const unsafePaths = await promisify(glob)(
resolvePath(...sections), {
strict: false,
silent: true,
});
export const resolveGlob = (...sections) => {
const unsafePaths = globPkg.sync(path.resolve(...sections), {
strict: false,
silent: true,
});
const safePaths = [];
for (let path of unsafePaths) {
try {
await promisify(fs.stat)(path);
fs.statSync(path);
safePaths.push(path);
}
catch {}
+1 -1
View File
@@ -4,11 +4,11 @@
* @license MIT
*/
import { createLogger } from 'common/logging.js';
import fs from 'fs';
import { createRequire } from 'module';
import { dirname } from 'path';
import { loadSourceMaps, setupLink } from './link/server.js';
import { createLogger } from './logging.js';
import { reloadByondCache } from './reloader.js';
import { resolveGlob } from './util.js';
+1 -1
View File
@@ -7,8 +7,8 @@
*/
import { exec } from 'child_process';
import { createLogger } from 'common/logging.js';
import { promisify } from 'util';
import { createLogger } from './logging.js';
const logger = createLogger('winreg');