Skip to content

Commit

Permalink
缓存 ylod namespace 对象
Browse files Browse the repository at this point in the history
  • Loading branch information
qiu8310 committed May 30, 2015
1 parent 7c86ec3 commit a2a9d3e
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ var ns = require('./ns'),


var eve = new EventEmitter();
var defaultYlog, ylogProtoKeys;
var ylogProtoKeys;


// 用于生成链式结构的 prototype
Expand Down Expand Up @@ -95,10 +95,14 @@ function appendFlag(flag) {
}

// ylog generator
var ylogMap = {};
function makeYlog(namespace, enabled) {
var cacheKey = namespace || 'default';
if (cacheKey in ylogMap) { return ylogMap[cacheKey]; }

// 没有指定 namespace 则表示默认使用 defaultYlog
// 只备份这个 default,其它的 namespace 没必要备份,因为一般像 debug 一样,只会调用一次
if (!namespace && defaultYlog) { return defaultYlog; }
//if (!namespace && defaultYlog) { return defaultYlog; }

var fn = function ylog(namespace) {
return makeYlog(namespace, ns.enabled(namespace));
Expand All @@ -107,7 +111,6 @@ function makeYlog(namespace, enabled) {
if (!namespace) {
fn.namespace = '';
fn.enabled = true;
defaultYlog = fn;
} else {
// 添加颜色值
fn.namespace = chalk.hasColor(namespace) ? namespace : randomBrush(namespace, 'ns');
Expand All @@ -118,6 +121,8 @@ function makeYlog(namespace, enabled) {
fn.__proto__ = ylogProto;
/* jshint ignore:end */

ylogMap[cacheKey] = fn;

return fn;
}

Expand Down

0 comments on commit a2a9d3e

Please sign in to comment.