moved object.js to two files ccache.js and minify.js

This commit is contained in:
coderaiser 2012-11-02 11:40:55 -04:00
parent d0ebde23cb
commit 4b25c5a4d4
2 changed files with 190 additions and 0 deletions

61
lib/server/cache.js Normal file
View file

@ -0,0 +1,61 @@
(function(){
"use strict";
var DIR = process.cwd() + '/',
main = require(DIR + 'lib/server/main.js'),
SRVDIR = main.SRVDIR;
/*
* Обьект для работы с кэшем
* аналог клиентского обьекта
* с тем отличием, что в нём
* будут храниться серверные
* данные, такие как файлы
* отдаваемые клиенту
* (файлы проэкта по большому
* счёту, для ускорения
* первичной загрузки)
*/
exports.Cache = {
/* приватный переключатель возможности работы с кэшем */
_allowed :true,
/* данные в которых храняться файлы
* в формате <поле> : <значение>
* _data[name]=pData;
* одному имени соответствуют
* одни данные
*/
_data :{},
/* функция говорит можно ли работать с кэшем */
isAllowed :(function(){
return this._allowed;
}),
/* функция устанавливает возможность работать с кэшем */
setAllowed :(function(pAllowed){
this._allowed=pAllowed;
}),
/* Если доступен кэш
* сохраняем в него данные
*/
set :(function(pName, pData){
if(this._allowed && pName && pData){
this._data[pName]=pData;
}
}),
/* Если доступен Cache принимаем из него данные*/
get :(function(pName){
if(this._allowed && pName){
return this._data[pName];
}
else return null;
}),
/* Функция очищает кэш*/
clear :(function(){
if(this._allowed){
this._data={};
}
})
};
})();

129
lib/server/minify.js Normal file
View file

@ -0,0 +1,129 @@
/* Обьект для сжатия скриптов и стилей по умолчанию - сжимаються */
(function(){
"use strict";
var DIR = process.cwd() + '/',
main = require(DIR + 'lib/server/main.js'),
SRVDIR = main.SRVDIR;
exports.Minify = {
/* pathes to directories */
INDEX :'index.html',
/* приватный переключатель минимизации */
_allowed :{
css : true,
js : true,
html : true,
img : true
},
/* minimize even if file not changed */
forse : false,
/* функция разрешает или
* запрещает минимизировать
* css/js/html
* @pAllowed: - структура, в которой
* передаються параметры
* минификации, вида
* {js:true,css:true,html:false; img:true}
* img отвечает за перевод картинок в base64
* и сохранение их в css-файл
*/
setAllowed :(function(pAllowed){
if(pAllowed){
this._allowed = pAllowed;
}
}),
/*
* Функция минимизирует css/js/html
* если установлены параметры минимизации
*/
doit :(function(){
if(this._allowed.css ||
this._allowed.js ||
this._allowed.html){
var lMinify;
try{
lMinify = require('minify');
}catch(pError){
this._allowed = {js:false,css:false,html:false};
console.log('You coud install minify ' +
'for better download spead:\n' +
'npm i minify');
return this._allowed;
}
/*
* temporary changed dir path,
* becouse directory lib is write
* protected by others by default
* so if node process is started
* from other user (root for example
* in nodester) we can not write
* minified versions
*/
this.MinFolder = '/' + lMinify.MinFolder;
var lOptimizeParams = [];
if (this._allowed.js) {
lOptimizeParams.push('client.js');
}
if (this._allowed.html)
lOptimizeParams.push(this.INDEX);
if (this._allowed.css) {
lOptimizeParams.push({
'./css/style.css' : this._allowed.img
});
lOptimizeParams.push({
'./css/reset.css': this._allowed.img
});
}
if (lOptimizeParams)
lMinify.optimize(lOptimizeParams);
this.Cache = lMinify.Cache;
return this._allowed;
}
}),
optimize: function(pName, pParams){
var lResult = true;
pParams.force = this.force;
if(this._allowed.css ||
this._allowed.js ||
this._allowed.html){
var lMinify = main.require('minify');
if(lMinify)
lMinify.optimize(pName, pParams);
else{
lResult = false;
this._allowed = {js:false,css:false,html:false};
console.log('Could not minify ' +
'without minify module\n' +
'npm i minify');
}
}
else lResult = false;
return lResult;
},
/* minification folder name */
MinFolder : '',
Cache : {}
};
})();