flex-combo
Advanced tools
Comparing version 0.9.6 to 0.9.7
37
api.js
@@ -53,4 +53,4 @@ var urlLib = require("url"); | ||
if (confJSON.filter) { | ||
this.param.filter = Helper.merge(confJSON.filter, param.filter || {}); | ||
if (confJSON.filter || param.filter) { | ||
this.param.filter = Helper.merge(confJSON.filter || {}, param.filter || {}); | ||
} | ||
@@ -119,4 +119,5 @@ | ||
if (supportedFile) { | ||
suffix = supportedFile.split('|'); | ||
suffix = suffix.concat(supportedFile.split('|')); | ||
} | ||
var engines = this.param.engine || {}; | ||
@@ -131,2 +132,6 @@ for (var k in engines) { | ||
suffix = suffix.filter(function(elem, pos) { | ||
return suffix.indexOf(elem) == pos; | ||
}); | ||
return this.URL.match(new RegExp(suffix.join('|'))) ? true : false; | ||
@@ -346,24 +351,26 @@ }, | ||
var tmpFile; | ||
for (var i = 0; i < FLen; i++) { | ||
tmpFile = files[i]; | ||
Q.push( | ||
(function (i) { | ||
(function (f) { | ||
return function (cb) { | ||
self.engineHandler(files[i], cb); | ||
self.engineHandler(f, cb); | ||
} | ||
})(i), | ||
(function (i) { | ||
})(tmpFile), | ||
(function (f) { | ||
return function (cb) { | ||
self.staticHandler(files[i], cb); | ||
self.staticHandler(f, cb); | ||
} | ||
})(i), | ||
(function (i) { | ||
})(tmpFile), | ||
(function (f) { | ||
return function (cb) { | ||
self.cacheHandler(files[i], cb); | ||
self.cacheHandler(f, cb); | ||
} | ||
})(i), | ||
(function (i) { | ||
})(tmpFile), | ||
(function (f) { | ||
return function (cb) { | ||
self.fetchHandler(files[i], cb); | ||
self.fetchHandler(f, cb); | ||
} | ||
})(i) | ||
})(tmpFile) | ||
); | ||
@@ -370,0 +377,0 @@ } |
/** | ||
* 二次开发示例,更灵活定义功能 | ||
* require("flex-combo/api") | ||
* require("flex-combo").API | ||
* */ | ||
var http = require("http"); | ||
var FlexCombo = require("flex-combo/api"); | ||
var API = require("flex-combo").API; | ||
// 自定义URL解析规则 | ||
FlexCombo.prototype.defineParser(function (url) { | ||
API.prototype.defineParser(function (url) { | ||
return []; | ||
@@ -16,4 +16,4 @@ }); | ||
// 例如要加入stylus支持,首先要在配置文件supportedFile中加入相应后缀匹配\\.styl$,然后通过addEngine添加动态编译逻辑 | ||
FlexCombo.prototype.addEngine("\\.styl$", function (absPath, url, param, callback) { | ||
callback(err, text, filepath); | ||
API.prototype.addEngine("\\.styl$", function (absPath, url, param, callback) { | ||
callback(err, text, [filepath]); | ||
}); | ||
@@ -23,3 +23,3 @@ | ||
.createServer(function (req, res) { | ||
var fcInst = new FlexCombo(); | ||
var fcInst = new API(); | ||
fcInst.handle(req, res, function () { | ||
@@ -26,0 +26,0 @@ res.writeHead(404, {"Content-Type": "text/plain"}); |
13
index.js
@@ -5,7 +5,7 @@ /** | ||
* */ | ||
var FlexCombo = require("./api"); | ||
var API = require("./api"); | ||
var DAC = require("dac"); | ||
FlexCombo.prototype.addEngine("\\.less$|\\.less\\.css$", DAC.less); | ||
FlexCombo.prototype.addEngine("\\.jpl$", DAC.jpl); | ||
FlexCombo.prototype.addEngine("\\.html.js", function(htmlfile, _url, param, cb) { | ||
API.prototype.addEngine("\\.less$|\\.less\\.css$", DAC.less); | ||
API.prototype.addEngine("\\.jpl$", DAC.jpl); | ||
API.prototype.addEngine("\\.html.js", function(htmlfile, _url, param, cb) { | ||
DAC.jpl(htmlfile, _url, param, function(err, result, filepath) { | ||
@@ -22,3 +22,3 @@ var fs = require("fs"); | ||
return function () { | ||
var fcInst = new FlexCombo(param, dir); | ||
var fcInst = new API(param, dir); | ||
@@ -57,2 +57,3 @@ var req, res, next; | ||
exports.API = API; | ||
exports.engine = function(param, dir) { | ||
@@ -63,3 +64,3 @@ param = param || {}; | ||
var pathLib = require("path"); | ||
var fcInst = new FlexCombo(param, dir); | ||
var fcInst = new API(param, dir); | ||
fcInst.param.traceRule = false; | ||
@@ -66,0 +67,0 @@ |
{ | ||
"name": "flex-combo", | ||
"version": "0.9.6", | ||
"version": "0.9.7", | ||
"description": "A combo tool designed for web front-end developer, which support various kinds of combo format by modify configuration(eg. yahoo combo).", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -260,6 +260,6 @@ # Flex Combo 介绍 | ||
var http = require("http"); | ||
var FlexCombo = require("flex-combo/api"); | ||
var API = require("flex-combo").API; | ||
// 自定义URL解析规则 | ||
FlexCombo.prototype.defineParser(function (url) { | ||
API.prototype.defineParser(function (url) { | ||
return []; | ||
@@ -270,3 +270,3 @@ }); | ||
// 例如要加入stylus支持,首先要在配置文件supportedFile中加入相应后缀匹配\\.styl$,然后通过addEngine添加动态编译逻辑 | ||
FlexCombo.prototype.addEngine("\\.styl$", function (absPath, url, param, callback) { | ||
API.prototype.addEngine("\\.styl$", function (absPath, url, param, callback) { | ||
callback(err, text, filepath); | ||
@@ -277,3 +277,3 @@ }); | ||
.createServer(function (req, res) { | ||
var fcInst = new FlexCombo(); | ||
var fcInst = new API(); | ||
fcInst.handle(req, res, function () { | ||
@@ -280,0 +280,0 @@ res.writeHead(404, {"Content-Type": "text/plain"}); |
45997
613