@re-shell/cli
Version:
Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja
55 lines (54 loc) • 1.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mark = mark;
exports.getStartupTime = getStartupTime;
exports.getMarks = getMarks;
exports.defer = defer;
exports.getFromCache = getFromCache;
exports.setCache = setCache;
exports.isVersionRequest = isVersionRequest;
exports.isHelpRequest = isHelpRequest;
/**
* Startup optimization utilities
*/
const perf_hooks_1 = require("perf_hooks");
// Simple performance tracking
const startTime = perf_hooks_1.performance.now();
const marks = [];
function mark(name) {
marks.push({ name, time: perf_hooks_1.performance.now() });
}
function getStartupTime() {
return perf_hooks_1.performance.now() - startTime;
}
function getMarks() {
let lastTime = startTime;
return marks.map(m => {
const delta = m.time - lastTime;
lastTime = m.time;
return { ...m, delta };
});
}
// Defer heavy operations
function defer(fn) {
setTimeout(fn, 0);
}
// Cache for expensive operations
const cache = new Map();
function getFromCache(key) {
return cache.get(key);
}
function setCache(key, value) {
if (cache.size > 100) {
const firstKey = cache.keys().next().value;
cache.delete(firstKey);
}
cache.set(key, value);
}
// Fast path for version display
function isVersionRequest() {
return process.argv.includes('--version') || process.argv.includes('-v');
}
function isHelpRequest() {
return process.argv.includes('--help') || process.argv.includes('-h') || process.argv.length <= 2;
}