A lightweight wrapper for all console
methods that automatically suppresses output in production environments.
npm install @onamfc/developer-log
Import and use just like you would use the native console
object:
import { dev } from '@onamfc/developer-log';
// Basic logging
dev.log('Hello, world!');
dev.error('An error occurred');
dev.warn('This is a warning');
dev.info('Informational message');
dev.debug('Debug information');
// Advanced methods
dev.table([{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }]);
dev.trace('Stack trace');
dev.dir({ foo: 'bar' });
// Grouping
dev.group('My Group');
dev.log('Inside group');
dev.groupEnd();
dev.groupCollapsed('Collapsed Group');
dev.log('Hidden by default');
dev.groupEnd();
// Timing
dev.time('operation');
// ... your code ...
dev.timeEnd('operation');
dev.timeLog('operation', 'Checkpoint');
// Counting
dev.count('clicks');
dev.count('clicks');
dev.countReset('clicks');
// Assertions
dev.assert(value === expected, 'Values do not match');
// Other methods
dev.clear();
dev.dirxml(document.body);
You can also use the default export:
import dev from '@onamfc/developer-log';
dev.log('Using default export');
The package checks process.env.NODE_ENV
and suppresses all output when it equals 'production'
. In all other environments (development, test, etc.), it behaves exactly like the native console
methods.
All standard console methods are supported:
log
- General loggingerror
- Error messageswarn
- Warning messagesinfo
- Informational messagesdebug
- Debug messagestrace
- Stack tracetable
- Tabular datadir
- Object inspectiondirxml
- XML/HTML element inspectiongroup
- Create a message groupgroupCollapsed
- Create a collapsed message groupgroupEnd
- End a message groupclear
- Clear the consolecount
- Count occurrencescountReset
- Reset counterassert
- Assertion testingtime
- Start a timertimeEnd
- End a timertimeLog
- Log elapsed time
- Clean production builds: No need to manually remove debug statements
- Type-safe: Full TypeScript support
- Zero dependencies: Lightweight and efficient
- Drop-in replacement: Works exactly like
console
in development - Performance: No overhead in production (all methods are no-ops)
Simply replace console
with dev
:
// Before
console.log('Debug message');
console.error('Error message');
console.table(data);
// After
import { dev } from '@onamfc/developer-log';
dev.log('Debug message');
dev.error('Error message');
dev.table(data);
This package is written in TypeScript and includes type definitions out of the box.
MIT