New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

flex-combo

Package Overview
Dependencies
Maintainers
1
Versions
164
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flex-combo - npm Package Compare versions

Comparing version 0.1.5 to 0.1.6

71

flex-combo.js

@@ -8,2 +8,4 @@ var http = require('http')

, joinbuffers = require('joinbuffers')
, mkdirp = require('mkdirp')
, crypto = require('crypto')
, parse = require('url').parse;

@@ -34,8 +36,7 @@

},
supportedFile: '\\.js|\\.css|\\.png|\\.gif|\\.jpg|\\.swf|\\.xml\\.less',
supportedFile: '\\.js|\\.css|\\.png|\\.gif|\\.jpg|\\.swf|\\.xml|\\.less',
prjDir: ''
};
function adaptCharset(buff, outCharset){
var charset = isUtf8(buff) ? 'utf8' : 'gbk';
function adaptCharset(buff, outCharset, charset){
if (charset === outCharset) {

@@ -81,3 +82,4 @@ return buff;

var buff = fs.readFileSync(absPath);
return adaptCharset(buff, param.charset);
var charset = isUtf8(buff) ? 'utf8' : 'gbk';
return adaptCharset(buff, param.charset, charset);
}

@@ -95,3 +97,26 @@ }

var cacheFile = function(fullPath, content, encode){
var absPath = path.join(param.cacheDir, fullPath);
var lastDir = absPath.slice(0, absPath.lastIndexOf('/'));
console.log(lastDir);
if(!fs.existsSync(lastDir)){
console.log(' is not exist');
mkdirp(lastDir, function(){
fs.writeFileSync(absPath, content, encode);
});
return;
}
fs.writeFileSync(absPath, content, encode);
}
var readFromCache = function(fullPath){
var absPath = path.join(param.cacheDir, fullPath);
if(fs.existsSync(absPath)){
var buff = fs.readFileSync(absPath);
var charset = isUtf8(buff) ? 'utf8' : 'gbk';
return adaptCharset(buff, param.charset, charset);
}
return null;
}
exports = module.exports = function(prjDir, urls, options){

@@ -101,2 +126,7 @@ if(urls){

}
param.cacheDir = cacheDir = path.join(prjDir , '.flex-combo/cache');
if(!fs.existsSync(cacheDir)){
mkdirp(cacheDir);
}
if(options){

@@ -131,2 +161,8 @@ options.urls = param.urls;

var cachedFile = readFromCache(url);
if(cachedFile){
res.end(cachedFile);
return;
}
//本地没有,从服务器获取

@@ -136,2 +172,6 @@ console.log('send http request:'+ param.host+ url);

var buffs = [];
if(resp.statusCode !== 200){
res.end('File ' + url + ' not found.');
return;
}
resp.on('data', function(chunk) {

@@ -144,3 +184,4 @@ buffs.push(chunk);

var singleFileContent = adaptCharset(buff, param.charset);
var singleFileContent = adaptCharset(buff, param.charset, charset);
cacheFile(url, buff, charset);
res.end(singleFileContent );

@@ -197,5 +238,20 @@ return;

}
var cacheName = crypto.createHash('md5').update(reqArray[i].file).digest('hex');
var cachedContent = readFromCache('/' + cacheName);
if(cachedContent){
reqArray[i].content = cachedContent;
reqArray[i].ready = true;
continue;
}
(function(id) {
console.log('define request: '+ reqArray[i].file);
http.get({host: param.host, port: 80, path: reqPath + reqArray[id].file}, function(resp) {
if(resp.statusCode !== 200){
reqArray[id].ready = true;
reqArray[id].content = 'File'+ reqArray[id].file +' not found.';
sendData();
return;
}
var buffs = [];

@@ -209,3 +265,6 @@ console.log('request: ' + reqPath + reqArray[id].file);

var buff = joinbuffers(buffs);
reqArray[id].content = adaptCharset(buff, param.charset);
var charset = isUtf8(buff) ? 'utf8' : 'gbk';
reqArray[id].content = adaptCharset(buff, param.charset, charset);
var fileName = crypto.createHash('md5').update(reqArray[id].file).digest('hex');
cacheFile('/'+fileName, buff, charset);
sendData();

@@ -212,0 +271,0 @@ });

2

package.json
{
"name": "flex-combo",
"version": "0.1.5",
"version": "0.1.6",
"description": "The Flex-combo is combo tool designed for web front-end developer. It support various kinds of combo format by modify configuration(eg. yahoo combo).",

@@ -5,0 +5,0 @@ "main": "flex-combo.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc