mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-20 01:47:35 +00:00
Minify and Cache objects moved to object.js module, minify moved to node_modules
This commit is contained in:
parent
1b11871f45
commit
683ee6a15c
5 changed files with 209 additions and 172 deletions
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 8e2ebf6aa28f727d1d3d1887334187c5ca758e3b
|
||||
172
lib/server/object.js
Normal file
172
lib/server/object.js
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
/* Module contains Cloud Commander SS(Server Side) objects.
|
||||
*
|
||||
* List of objects:
|
||||
* - Cache
|
||||
* - Minify
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Обьект для работы с кэшем
|
||||
* аналог клиентского обьекта
|
||||
* с тем отличием, что в нём
|
||||
* будут храниться серверные
|
||||
* данные, такие как файлы
|
||||
* отдаваемые клиенту
|
||||
* (файлы проэкта по большому
|
||||
* счёту, для ускорения
|
||||
* первичной загрузки)
|
||||
*/
|
||||
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={};
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
/* Обьект для сжатия скриптов и стилей
|
||||
* по умолчанию - сжимаються
|
||||
*/
|
||||
exports.Minify={
|
||||
/* pathes to directories */
|
||||
CSSDIR :'./css',
|
||||
INDEX :'index.html',
|
||||
/* приватный переключатель минимизации */
|
||||
_allowed :{css:true,js:true,html:true, img: true},
|
||||
|
||||
/* функция разрешает или
|
||||
* запрещает минимизировать
|
||||
* css/js/html
|
||||
* @pAllowed: - структура, в которой
|
||||
* передаються параметры
|
||||
* минификации, вида
|
||||
* {js:true,css:true,html:false; img:true}
|
||||
* img отвечает за перевод картинок в base64
|
||||
* и сохранение их в css-файл
|
||||
*/
|
||||
setAllowed :(function(pAllowed){
|
||||
if(pAllowed){
|
||||
this._allowed.css=pAllowed.css;
|
||||
this._allowed.js=pAllowed.js;
|
||||
this._allowed.html=pAllowed.html;
|
||||
this._allowed.img=pAllowed.img;
|
||||
}
|
||||
}),
|
||||
|
||||
/*
|
||||
* Функция минимизирует css/js/html
|
||||
* если установлены параметры минимизации
|
||||
*/
|
||||
doit :(function(){
|
||||
if(this._allowed.css ||
|
||||
this._allowed.js ||
|
||||
this._allowed.html){
|
||||
var lMinify;
|
||||
try{
|
||||
lMinify = require('minify');
|
||||
}catch(pError){
|
||||
try{
|
||||
console.log(pError);
|
||||
lMinify = require('minify');
|
||||
}catch(pError){
|
||||
return console.log('Could not minify' +
|
||||
'withou minify module\n' +
|
||||
'for fixing type:\n' +
|
||||
'git submodule init\n' +
|
||||
'git submodule update\n' +
|
||||
'or\n' +
|
||||
'npm i minify');
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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 lMinFolder=this.MinFolder;
|
||||
|
||||
/* post processing function for file
|
||||
* client.js
|
||||
*/
|
||||
var lPostProcessing_f = function(pFinalCode){
|
||||
console.log('file name of ' +
|
||||
'cloudfunc.js' +
|
||||
' in ' +
|
||||
'client.js' +
|
||||
' changed. size:',
|
||||
(pFinalCode = pFinalCode
|
||||
.replace('cloudfunc.js','cloudfunc.min.js')
|
||||
.replace('keyBinding.js','keyBinding.min.js')
|
||||
.replace('/lib/', lMinFolder)
|
||||
.replace('/lib/client/',
|
||||
lMinFolder)).length);
|
||||
return pFinalCode;
|
||||
};
|
||||
|
||||
this.done.js=this._allowed.js?
|
||||
lMinify.jsScripts([{
|
||||
'client.js': lPostProcessing_f},
|
||||
'lib/cloudfunc.js',
|
||||
'lib/client/keyBinding.js'],
|
||||
true)
|
||||
:false;
|
||||
|
||||
this.done.html=this._allowed.html?
|
||||
lMinify.html(this.INDEX):false;
|
||||
|
||||
this.done.css=this._allowed.css?
|
||||
lMinify.cssStyles([this.CSSDIR + '/style.css',
|
||||
this.CSSDIR + '/reset.css'],
|
||||
this._allowed.img):false;
|
||||
|
||||
this.Cache = lMinify.Cache;
|
||||
}
|
||||
}),
|
||||
/* свойство показывающее случилась ли ошибка*/
|
||||
done:{js: false,css: false, html:false},
|
||||
|
||||
/* minification folder name */
|
||||
MinFolder :'',
|
||||
Cache :{}
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue