Browse Source

Initial commit

master
Sven Slootweg 6 years ago
parent
commit
165d408a6d
  1. 29
      README.md
  2. 24
      gulpfile.js
  3. 3
      index.js
  4. 52
      lib/index.js
  5. 33
      package.json
  6. 46
      src/index.js

29
README.md

@ -0,0 +1,29 @@
# gulp-named-log
A logging utility, primarily intended for use with Gulp or other Vinyl streams, that outputs fancy name/severity-prefixed log lines.
## License
[WTFPL](http://www.wtfpl.net/txt/copying/) or [CC0](https://creativecommons.org/publicdomain/zero/1.0/), whichever you prefer. A donation and/or attribution are appreciated, but not required.
## Donate
My income consists largely of donations for my projects. If this module is useful to you, consider [making a donation](http://cryto.net/~joepie91/donate.html)!
You can donate using Bitcoin, PayPal, Flattr, cash-in-mail, SEPA transfers, and pretty much anything else.
## Contributing
Pull requests welcome. Please make sure your modifications are in line with the overall code style, and ensure that you're editing the files in `src/`, not those in `lib/`.
Build tool of choice is `gulp`; simply run `gulp` while developing, and it will watch for changes.
Be aware that by making a pull request, you agree to release your modifications under the licenses stated above.
## Usage
Example coming soon.
## API
API documentation coming soon.

24
gulpfile.js

@ -0,0 +1,24 @@
var gulp = require('gulp');
var gutil = require('gulp-util');
var babel = require('gulp-babel');
var cache = require('gulp-cached');
var remember = require('gulp-remember');
var plumber = require('gulp-plumber');
var source = ["src/**/*.js"]
gulp.task('babel', function() {
return gulp.src(source)
.pipe(plumber())
.pipe(cache("babel"))
.pipe(babel({presets: ["es2015"]}).on('error', gutil.log)).on('data', gutil.log)
.pipe(remember("babel"))
.pipe(gulp.dest("lib/"));
});
gulp.task('watch', function () {
gulp.watch(source, ['babel']);
});
gulp.task('default', ['babel', 'watch']);

3
index.js

@ -0,0 +1,3 @@
'use strict';
module.exports = require("./lib");

52
lib/index.js

@ -0,0 +1,52 @@
'use strict';
var chalk = require("chalk");
var spy = require("through2-spy");
var fancyLog = require("fancy-log");
var padWidth = 5;
var typeColors = {
error: "red",
warn: "yellow",
info: "cyan",
debug: "gray"
};
module.exports = function namedLog(name) {
var prefix = "[" + chalk.green(name) + "]";
function createLog(type) {
var prefixes = [prefix];
if (type) {
var typeColor = typeColors[type] != null ? typeColors[type] : "white";
var typePrefix = "[" + chalk[typeColor](type) + "]";
prefixes.push(typePrefix);
}
return function log() {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
fancyLog.apply(null, prefixes.concat(args));
};
}
return {
debug: createLog("debug"),
info: createLog("info"),
warn: createLog("warn"),
error: createLog("error"),
log: createLog(),
stream: function stream() {
var _this = this;
return spy.obj(function (file) {
_this.info(file.path, file.contents);
});
}
};
};

33
package.json

@ -0,0 +1,33 @@
{
"name": "gulp-named-log",
"version": "0.0.1",
"description": "A simple utility module for name-prefixed logging, especially in Gulp",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://git.cryto.net/joepie91/node-gulp-named-log.git"
},
"keywords": [
"gulp",
"logging"
],
"author": "Sven Slootweg",
"license": "WTFPL",
"dependencies": {
"chalk": "^1.1.1",
"fancy-log": "^1.2.0",
"through2-spy": "^2.0.0"
},
"devDependencies": {
"babel-preset-es2015": "^6.6.0",
"gulp": "^3.9.1",
"gulp-babel": "^6.1.2",
"gulp-cached": "^1.1.0",
"gulp-plumber": "^1.1.0",
"gulp-remember": "^0.3.0",
"gulp-util": "^3.0.7"
}
}

46
src/index.js

@ -0,0 +1,46 @@
'use strict';
const chalk = require("chalk");
const spy = require("through2-spy");
const fancyLog = require("fancy-log");
const padWidth = 5;
const typeColors = {
error: "red",
warn: "yellow",
info: "cyan",
debug: "gray"
}
module.exports = function namedLog(name) {
let prefix = `[${chalk.green(name)}]`;
function createLog(type) {
let prefixes = [prefix];
if (type) {
let typeColor = (typeColors[type] != null) ? typeColors[type] : "white";
let typePrefix = `[${chalk[typeColor](type)}]`;
prefixes.push(typePrefix);
}
return function log(...args) {
fancyLog.apply(null, prefixes.concat(args));
}
}
return {
debug: createLog("debug"),
info: createLog("info"),
warn: createLog("warn"),
error: createLog("error"),
log: createLog(),
stream: function() {
return spy.obj((file) => {
this.info(file.path, file.contents);
});
}
}
}
Loading…
Cancel
Save