mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-19 01:17:18 +00:00
moved object.js to two files ccache.js and minify.js
This commit is contained in:
parent
d0ebde23cb
commit
4b25c5a4d4
2 changed files with 190 additions and 0 deletions
61
lib/server/cache.js
Normal file
61
lib/server/cache.js
Normal 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
129
lib/server/minify.js
Normal 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 : {}
|
||||
};
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue