• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dev-ignis / cross-log / 16982792483

15 Aug 2025 04:15AM UTC coverage: 85.706% (-9.9%) from 95.62%
16982792483

push

github

dev-ignis
test: - ci;

489 of 647 branches covered (75.58%)

Branch coverage included in aggregate %.

944 of 1025 relevant lines covered (92.1%)

357.96 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.75
/src/index.ts
1
/**
2
 * Universal Logger - Main entry point
3
 * 
4
 * Automatically detects environment and provides appropriate logger implementation
5
 */
6

7
import { BrowserLogger } from './loggers/browser';
24✔
8
import { NodeLogger } from './loggers/node';
24✔
9
import { EdgeLogger } from './loggers/edge';
24✔
10
import { ILogger, PartialLoggerConfig } from './core/types';
11
import { detectRuntimeType, RuntimeType } from './core/environment';
24✔
12

13
/**
14
 * Create a logger instance with automatic environment detection
15
 */
16
export function createLogger(config?: PartialLoggerConfig): ILogger {
24✔
17
  const runtime = detectRuntimeType();
438✔
18
  
19
  switch (runtime) {
438!
20
    case RuntimeType.BROWSER:
21
      return new BrowserLogger(config);
60✔
22
    case RuntimeType.EDGE:
23
      return new EdgeLogger(config);
×
24
    case RuntimeType.NODE:
25
    case RuntimeType.BUN:
26
      return new NodeLogger(config);
342✔
27
    case RuntimeType.DENO:
28
      // Deno can use Edge logger as it has similar restrictions
29
      return new EdgeLogger(config);
×
30
    default:
31
      // Fallback to edge logger for unknown environments (safest option)
32
      return new EdgeLogger(config);
36✔
33
  }
34
}
35

36
/**
37
 * Default logger instance
38
 */
39
const defaultLogger = createLogger();
24✔
40

41
// Export the default logger methods for convenience
42
export const debug = defaultLogger.debug.bind(defaultLogger);
24✔
43
export const info = defaultLogger.info.bind(defaultLogger);
24✔
44
export const warn = defaultLogger.warn.bind(defaultLogger);
24✔
45
export const error = defaultLogger.error.bind(defaultLogger);
24✔
46
export const setLevel = defaultLogger.setLevel.bind(defaultLogger);
24✔
47
export const configure = defaultLogger.configure.bind(defaultLogger);
24✔
48
export const enableCategory = defaultLogger.enableCategory.bind(defaultLogger);
24✔
49
export const disableCategory = defaultLogger.disableCategory.bind(defaultLogger);
24✔
50
export const enableAll = defaultLogger.enableAll.bind(defaultLogger);
24✔
51
export const disableAll = defaultLogger.disableAll.bind(defaultLogger);
24✔
52
export const getConfig = defaultLogger.getConfig.bind(defaultLogger);
24✔
53
export const isEnabled = defaultLogger.isEnabled.bind(defaultLogger);
24✔
54
export const Level = defaultLogger.Level;
24✔
55

56
// Named exports for specific environments
57
export { BrowserLogger } from './loggers/browser';
42✔
58
export { NodeLogger } from './loggers/node';
42✔
59
export { EdgeLogger } from './loggers/edge';
24✔
60
export { BaseLogger } from './loggers/base';
24✔
61

62
// Export types
63
export { 
24✔
64
  LogLevel, 
240✔
65
  LoggerConfig, 
66
  CategoryConfig, 
67
  ColorConfig,
68
  BrowserColorConfig,
69
  AnsiColorConfig,
70
  StorageConfig,
71
  BrowserControlsConfig,
72
  Environment,
73
  ILogger,
74
  LogEntry,
75
  EnvConfig,
76
  // Type utilities
77
  DeepPartial,
78
  PartialLoggerConfig,
79
  LogLevelValue,
80
  // Type guards and utilities
81
  isLogLevel,
24✔
82
  isLogLevelString,
24✔
83
  mergeConfig
24✔
84
} from './core/types';
85

86
// Export utilities
87
export { 
24✔
88
  detectEnvironment,
24✔
89
  parseLogLevel,
24✔
90
  parseEnvBoolean,
24✔
91
  parseEnvInt,
24✔
92
  formatTimestamp,
24✔
93
  isLoggingEnabled,
24✔
94
  formatMessage
24✔
95
} from './core/utils';
96

97
// Export environment utilities
98
export {
24✔
99
  detectRuntimeType,
24✔
100
  RuntimeType,
24✔
101
  getEnvironmentVariable,
24✔
102
  isProductionEnvironment,
24✔
103
  type RuntimeTypeValue
104
} from './core/environment';
105

106
// Export configuration manager
107
export { ConfigManager } from './core/config';
24✔
108

109
// Export plugins
110
export { 
24✔
111
  plugins,
24✔
112
  createApiPlugin,
24✔
113
  createDatabasePlugin,
24✔
114
  createAnalyticsPlugin,
24✔
115
  createPerformancePlugin,
24✔
116
  createSecurityPlugin,
24✔
117
  PluginManager,
24✔
118
  Plugin,
119
  PluginConfig,
120
  PluginContext,
121
  LoggerWithPlugins,
122
  ApiPlugin,
123
  DatabasePlugin,
124
  AnalyticsPlugin,
125
  PerformancePlugin,
126
  SecurityPlugin,
127
  ApiPluginConfig,
128
  DatabasePluginConfig,
129
  AnalyticsPluginConfig,
130
  PerformancePluginConfig,
131
  SecurityPluginConfig,
132
  WebVitalsMetrics,
133
  SecuritySeverity
134
} from './plugins';
135

136
// Default export
137
export default defaultLogger;
24✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc