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

fest

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fest - npm Package Compare versions

Comparing version 0.3.2 to 0.3.3

bin/fest-build

71

lib/build.js

@@ -1,5 +0,6 @@

var fs = require('fs'),
var
fs = require('fs'),
path = require('path'),
compile = require('./compile'),
cmd = require('./cmd');
fest = require('./fest'),
cmd = require('./cmd');
var existsSync = fs.existsSync || path.existsSync;

@@ -10,9 +11,12 @@

'Usage:',
' fest-watch --dir=... [--out=...]',
' fest-watch --dir=... [--out=...] [--wrapper=...] [--exclude=...]',
'',
'Options:',
' --dir directory where .xml files are',
' --out out directory for compiled files if omited --out = --dir',
' --version current version',
' --help display these usage instructions',
' --dir directory where .xml files are',
' --wrapper type of postcompile wrappers, fest|jsLoader|source|variable (default is fest)',
' --exclude regexp, which files ignore',
' --out out directory for compiled files if omited --out = --dir',
'',
' --version current version',
' --help display these usage instructions',
''

@@ -33,3 +37,2 @@ ].join('\n'));

}
var prefix = '';

@@ -40,3 +43,4 @@ var recursive = cmd.recursive !== 'no';

if (!dir){
console.log('You need to print directory "fest-watch dir=..."');
console.log('You need to print directory "fest-watch dir=..."\n');
help();
process.exit(1);

@@ -57,10 +61,10 @@ }

}
var fest = (cmd.fest === 'no' ? false : true);
var not_anonymous = cmd.anonymous === 'no';
if (not_anonymous) fest = false;
var wrapper = cmd.wrapper || 'fest';
var watched_files = {};
var excludeRegexp = cmd.exclude ? new RegExp("^" + dir + "(" + cmd.exclude + ")") : null;
function do_compile(file, dir, out_dir, prefix){
console.log('compile: ' + dir + file);
var source = compile(dir + file, '', '');
var source = fest.compile(dir + file, cmd.compile || '', '');
var file_name = (out_dir + file).replace(/\.xml/, '.js');

@@ -70,23 +74,28 @@ if (!existsSync(out_dir)){

}
if (fest){
fs.writeFileSync(file_name, ';(function(){var x=Function("return this")();if(!x.fest)x.fest={};x.fest["' + prefix + file.replace(/\.xml$/, '') + '"]=' + source + '})();', 'utf8');
} else if (not_anonymous) {
fs.writeFileSync(file_name, "var " + prefix + file.replace(/\.xml$/, '') + "=" + source, 'utf8');
} else {
fs.writeFileSync(file_name, source, 'utf8');
}
fs.writeFileSync(file_name, fest.compileTpl(prefix + file.replace(/\.xml$/, ''), source, wrapper), 'utf8');
}
function findfiles(dir, out_dir, prefix){
if(excludeRegexp && excludeRegexp.test(dir)) {
console.log('exclude dir: ' + dir);
return;
}
fs.readdir(dir, function(err, files){
files.filter(function(file){return file.indexOf('.xml') > 0;})
.forEach(function(file){
console.log('watch: ' + file);
do_compile(file, dir, out_dir, prefix);
});
files.filter(function(file){
return file.indexOf('.xml') > 0;
}).forEach(function(file){
console.log('watch: ' + file);
do_compile(file, dir, out_dir, prefix);
});
if (recursive){
files.filter(function(file){ return fs.statSync(dir + file).isDirectory() })
.forEach(function(file){
console.log('watch directory: ' + dir + file);
findfiles(dir + file + '/', out_dir + file + '/', prefix + file + '/');
});
files.filter(function(file){
return fs.statSync(dir + file).isDirectory()
}).forEach(function(file){
console.log('watch directory: ' + dir + file);
findfiles(dir + file + '/', out_dir + file + '/', prefix + file + '/');
});
}

@@ -93,0 +102,0 @@ });

module.exports = function() {
var result = [];
process.argv.slice(2).forEach(function (arg) {
if (0 === arg.indexOf('--')) {
var kv = arg.slice(2).split(/\s*=\s*/);
result[kv[0]] = typeof kv[1] === 'undefined' ? true : kv[1];
var key = kv[0];
var value = typeof kv[1] === 'undefined' ? true : kv[1];
if(value === 'true') {
value = true;
}
if(value === 'false') {
value = false;
}
// support for multilevel parameters
if(key.indexOf('.')) {
var arr = result;
var parts = key.split('.');
parts.forEach(function(part, i) {
if(i < parts.length - 1) {
if(arr[part] == undefined) {
arr[part] = {};
}
arr = arr[part];
} else {
arr[part] = value;
}
})
} else {
result[key] = value;
}
} else {

@@ -11,3 +46,4 @@ result.push(arg);

})
return result;
}()

@@ -622,2 +622,3 @@ var compile = (function(){

build_template(_compile(file, '__fest_context', callbacks, options));
if (options.beautify) template = js_beautify(template);

@@ -624,0 +625,0 @@ } catch (e) {

@@ -9,2 +9,3 @@ var fs = require('fs'),

compile: compile,
render: function (file, json, options) {

@@ -14,2 +15,18 @@ var compiled = this.compile(file, options),

return template(json);
},
compileTpl: function(file, source, wrapper) {
var wrapperFile = __dirname + '/wrappers/' + wrapper;
try {
var wrapperTemplate = fs.readFileSync(wrapperFile, 'utf-8');
file = file.replace(/\'/g, "\\'").replace(/\"/g, '\\"').replace(/\\/g, '\\');
return wrapperTemplate.replace(/##file##/g, file).replace(/##source##/g, source);
} catch(e) {
console.error('Postcompile wrapper template file '+wrapperFile+' dosn\'t exists')
process.exit();
}
}

@@ -16,0 +33,0 @@ };

@@ -99,3 +99,3 @@ /**

console.log(err.message);
return compileErrorTpl(file, srcPath+file + ' -- template not found');
return compileErrorTpl(file, srcPath+file + ' -- template not found', options);
}

@@ -108,11 +108,11 @@

console.log(err.message);
return compileErrorTpl(file, 'fest.compile failed');
return compileErrorTpl(file, 'fest.compile failed', options);
}
return complieTpl(file, source);
return compileTpl(file, source, options);
}
function complieTpl(file, source){
return ';(function(){var x=Function("return this")();if(!x.fest)x.fest={};x.fest["'+file+'"]='+source+'})();';
function compileTpl(file, source, options){
return fest.compileTpl(file, source, options.wrapper);
}

@@ -122,3 +122,3 @@

function compileErrorTpl(file, txt){
return complieTpl(file, 'function(){return "[fest.proxy.compile.error] '+ txt +'"}');
return compileTpl(file, 'function(){return "[fest.proxy.compile.error] '+ txt +'"}');
}

@@ -125,0 +125,0 @@

@@ -1,91 +0,1 @@

var fs = require('fs'),
path = require('path'),
compile = require('./compile'),
cmd = require('./cmd');
var existsSync = fs.existsSync || path.existsSync;
function help() {
console.log([
'Usage:',
' fest-watch --dir=... [--out=...]',
'',
'Options:',
' --dir directory where .xml files are',
' --out out directory for compiled files if omited --out = --dir',
' --version current version',
' --help display these usage instructions',
''
].join('\n'));
process.exit(0);
}
function version() {
console.log(JSON.parse(fs.readFileSync(__dirname + '/../package.json')).version);
process.exit(0);
}
if (cmd.help) {
help();
} else if (cmd.version) {
version();
}
var prefix = '';
var recursive = cmd.recursive !== 'no';
var dir = cmd.dir;
if (!dir){
console.log('You need to print directory "fest-watch dir=..."');
process.exit(1);
}
if (dir[0] !== '/'){
dir = process.env.PWD + '/' + dir;
}
dir = dir.replace(/\/$/, '') + '/';
if (!existsSync(dir)){
console.log('directory "' + dir + '" does not exists');
process.exit(1);
}
var out_dir = cmd.out || dir;
out_dir = out_dir.replace(/\/$/, '') + '/';
if (out_dir[0] !== '/'){
out_dir = process.env.PWD + '/' + out_dir;
}
var fest = (cmd.fest === 'no' ? false : true);
var not_anonymous = cmd.anonymous === 'no';
if (not_anonymous) fest = false;
var watched_files = {};
function do_compile(file, dir, out_dir, prefix){
console.log('compile: ' + dir + file);
var source = compile(dir + file, '', '');
var file_name = (out_dir + file).replace(/\.xml/, '.js');
if (!existsSync(out_dir)){
fs.mkdirSync(out_dir);
}
if (fest){
fs.writeFileSync(file_name, ';(function(){var x=Function("return this")();if(!x.fest)x.fest={};x.fest["' + prefix + file.replace(/\.xml$/, '') + '"]=' + source + '})();', 'utf8');
} else if (not_anonymous) {
fs.writeFileSync(file_name, "var " + prefix + file.replace(/\.xml$/, '') + "=" + source, 'utf8');
} else {
fs.writeFileSync(file_name, source, 'utf8');
}
}
function findfiles(dir, out_dir, prefix){
fs.readdir(dir, function(err, files){
files.filter(function(file){return file.indexOf('.xml') > 0;})
.forEach(function(file){
console.log('watch: ' + file);
do_compile(file, dir, out_dir, prefix);
});
if (recursive){
files.filter(function(file){ return fs.statSync(dir + file).isDirectory() })
.forEach(function(file){
console.log('watch directory: ' + dir + file);
findfiles(dir + file + '/', out_dir + file + '/', prefix + file + '/');
});
}
});
}
findfiles(dir, out_dir, prefix);
require('./build')();

@@ -5,3 +5,3 @@ {

"keywords": ["template", "templating", "html", "xml"],
"version": "0.3.2",
"version": "0.3.3",
"repository": {

@@ -8,0 +8,0 @@ "type": "git",

@@ -42,4 +42,2 @@ # Fest

```xml

@@ -49,2 +47,12 @@ <fest:get name="name">{'some': 'data'}</fest:get>

Если указать тег select, то выражение внутри выполнится и результирующая строка будет именем блока set.
```xml
<fest:script>
var name = 'foo'
</fest:srcipt>
<fest:get select="name"/>
<fest:set name="foo">foo</fest:set>
<fest:set name="bar">bar</fest:set>
```
### fest:element

@@ -51,0 +59,0 @@

Sorry, the diff of this file is not supported yet

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