[READ-ONLY] Mirror of https://github.com/Schniz/create-debugger. Providing a simple, composable, chainable debug utilities based on the tj's wonderful debug module
0

Configure Feed

Select the types of activity you want to include in your feed.

initial commit

Gal Schlezinger (Feb 22, 2016, 1:44 PM +0200) e18b188b

+98
+3
.babelrc
··· 1 + { 2 + presets: ["es2015", "stage-0"] 3 + }
+2
.gitignore
··· 1 + /dist 2 + /node_modules
+1
.npmignore
··· 1 + /node_modules
+46
README.md
··· 1 + # Simple [`debug`](https://www.npmjs.com/package/debug) factory 2 + 3 + Providing a simple, composable, chainable debug utilities based on the tj's wonderful `debug` module 4 + 5 + ## Installation 6 + 7 + `npm install --save create-debugger` 8 + 9 + ## Usage 10 + 11 + ```javascript 12 + import createDebugger from 'create-debugger'; 13 + const logger = createDebugger('myapp'); 14 + logger.warn('hey'); // Debug with key `myapp:warn` - 'hey' 15 + ``` 16 + 17 + ### Chaining keys 18 + ```javascript 19 + import createDebugger from 'create-debugger'; 20 + 21 + const logger = createDebugger('myapp'); 22 + const subLogger = logger('sublogger'); 23 + 24 + logger.warn('hey'); // Debug with key `myapp:warn` - 'hey' 25 + subLogger.warn('ho'); // Debug with key `myapp:sublogger:warn` - 'ho' 26 + ``` 27 + 28 + ### Composing 29 + ```javascript 30 + import createDebugger from 'create-debugger'; 31 + const logger = createDebugger('myapp'); 32 + 33 + // then somewhere in your code.. 34 + 35 + const myVar = logger.debug('some text'); // Debugs 'some text' and returns 'some text'. 36 + 37 + // if you use ramda/lodash compose: 38 + 39 + const something = compose(logger.debug, someMethod); // and the log is a part of your function. 40 + ``` 41 + 42 + ## Subdebuggers 43 + - `info` 44 + - `debug` 45 + - `warn` 46 + - `error`
+22
package.json
··· 1 + { 2 + "name": "create-debugger", 3 + "version": "1.0.0", 4 + "description": "", 5 + "main": "./dist/index.js", 6 + "scripts": { 7 + "build": "babel --out-dir dist lib", 8 + "prepublish": "npm run build", 9 + "test": "echo \"Error: no test specified\" && exit 1" 10 + }, 11 + "keywords": [], 12 + "author": "", 13 + "license": "ISC", 14 + "dependencies": { 15 + "debug": "^2.2.0" 16 + }, 17 + "devDependencies": { 18 + "babel-cli": "^6.5.1", 19 + "babel-preset-es2015": "^6.5.0", 20 + "babel-preset-stage-0": "^6.5.0" 21 + } 22 + }
+24
lib/index.js
··· 1 + import createDebugger from 'debug'; 2 + 3 + function chainedDebugger(type, tag) { 4 + let debug = createDebugger(`${tag}:${type}`); 5 + return (...data) => { 6 + let printedData = data.map(e => { 7 + if (typeof e === 'string') return e; 8 + return JSON.stringify(e, null, ' '); 9 + }); 10 + debug(...printedData); 11 + return data[1] ? data : data[0]; 12 + }; 13 + } 14 + 15 + const create = tag => { 16 + const fn = newTag => create(tag + ':' + newTag); 17 + fn.debug = chainedDebugger('debug', tag); 18 + fn.error = chainedDebugger('error', tag); 19 + fn.info = chainedDebugger('info', tag); 20 + fn.warn = chainedDebugger('warn', tag); 21 + return fn; 22 + }; 23 + 24 + export default create;