simple-console
v0.1.1
Published
A small, cross-browser-friendly console wrapper.
Downloads
7
Readme
Simple Console
Provides a simple, but useful cross-browser-compatible console
logger.
Features
- Proxies to native functionality wherever possible.
- Enables
.apply
and.bind
usage withconsole.OPERATION
. - Buildable from straight CommonJS source.
- Available as minified distributions as well.
Installation
Install via npm:
$ npm install simple-console
or bower:
$ bower install simple-console
Usage
Import the SimpleConsole
class into your code (via AMD, CommonJS, etc) and
use as a drop-in replacement for console.OPERATION
. Creating a new object
does not effect the existing window.console
object.
AMD
define(["simple-console"], function (SimpleConsole) {
var con = new SimpleConsole();
con.log("Hello world!");
});
CommonJS
var SimpleConsole = require("simple-console");
var con = new SimpleConsole();
con.log("Hello world!");
VanillaJS
In your HTML:
<!-- Option One: Minified -->
<script src="PATH/TO/simple-console/dist/simple-console.min.js"></script>
<!-- Option Two: Raw source -->
<script src="PATH/TO/simple-console/simple-console.js"></script>
In your JS:
var con = new window.SimpleConsole();
con.log("Hello world!");
Noop Logger
There are some cases where you will want to conditionally silence the logger.
You can do this by passing setting the noop
option:
var con = new SimpleConsole({ noop: true });
con.log("Hello world!"); // => Should _not_ output anything.
This is usually useful in a case where you build different capabilities based on some external information, for example, React-style, this could be something like:
var con = new SimpleConsole({
noop: process.env.NODE_ENV === "production"
});
con.log("Hello world!"); // => Should _not_ output anything in `production`.
Polyfill
If you are looking to polyfill console
, then you can:
new SimpleConsole({ patch: true });
This will mutate the window.console
object in ways that are not easily
undone, so consider this a "one way" patch. Moreover, if window.console
does not exist, it will create the object.
You can even go further and patch and noop the logger with:
new SimpleConsole({ patch: true, noop: true });
which ensures that nothing logs anything.
Note: In addition to filling/patching missing behavior, the polyfill will
replace behavior that already exists and works. This is presently due to
complexities likely normalizing and ensuring things like .bind
, .apply
and .call
work on all log methods.
Development
Run checks, then development server:
$ gulp
Separated:
$ gulp check
$ gulp dev
Node demo:
$ node examples/demo.js
Navigations:
- Test Page: http://127.0.0.1:4321/test/test.html
- Demo Page: http://127.0.0.1:4321/examples/demo.html
Release process:
- Bump versions in
package.json
,bower.json
- Run
npm run-script everything
- Edit
HISTORY.md
- Run
gulp check:all
Also See
Similar projects that can help with console
:
License
Copyright 2015 Formidable Labs, Inc. Released under the MIT License,